From 266de716f01b8bc1eecc23e6636c42642e216d6d Mon Sep 17 00:00:00 2001 From: "alexey.lysiuk" Date: Wed, 18 Oct 2023 10:45:29 +0300 Subject: [PATCH] deps: update vulkan-headers to 1.3.268 --- .../vk_video/vulkan_video_codec_h264std.h | 1 + .../vulkan_video_codec_h264std_encode.h | 9 +- .../vk_video/vulkan_video_codec_h265std.h | 1 + .../vulkan_video_codec_h265std_encode.h | 35 +- .../vulkan-headers/include/vulkan/vulkan.cppm | 240 +- deps/vulkan-headers/include/vulkan/vulkan.hpp | 917 +- .../include/vulkan/vulkan_android.h | 26 + .../include/vulkan/vulkan_beta.h | 11 +- .../include/vulkan/vulkan_core.h | 369 +- .../include/vulkan/vulkan_enums.hpp | 656 +- .../vulkan/vulkan_extension_inspection.hpp | 71 +- .../include/vulkan/vulkan_funcs.hpp | 131 + .../include/vulkan/vulkan_handles.hpp | 116 + .../include/vulkan/vulkan_hash.hpp | 436 + .../include/vulkan/vulkan_hpp_macros.hpp | 270 + .../include/vulkan/vulkan_raii.hpp | 262 +- .../include/vulkan/vulkan_shared.hpp | 988 + .../vulkan/vulkan_static_assertions.hpp | 223 + .../include/vulkan/vulkan_structs.hpp | 3226 +- .../include/vulkan/vulkan_to_string.hpp | 259 +- .../include/vulkan/vulkan_video.hpp | 55 +- .../VulkanHeadersConfigVersion.cmake | 6 +- .../share/vulkan/registry/genvk.py | 3 +- .../share/vulkan/registry/validusage.json | 58554 +++++++++++----- .../share/vulkan/registry/video.xml | 52 +- .../share/vulkan/registry/vk.xml | 556 +- 26 files changed, 48441 insertions(+), 19032 deletions(-) create mode 100644 deps/vulkan-headers/include/vulkan/vulkan_hpp_macros.hpp create mode 100644 deps/vulkan-headers/include/vulkan/vulkan_shared.hpp diff --git a/deps/vulkan-headers/include/vk_video/vulkan_video_codec_h264std.h b/deps/vulkan-headers/include/vk_video/vulkan_video_codec_h264std.h index a23789c6..ef7eaf74 100644 --- a/deps/vulkan-headers/include/vk_video/vulkan_video_codec_h264std.h +++ b/deps/vulkan-headers/include/vk_video/vulkan_video_codec_h264std.h @@ -29,6 +29,7 @@ extern "C" { #define STD_VIDEO_H264_SCALING_LIST_8X8_NUM_ELEMENTS 64 #define STD_VIDEO_H264_MAX_NUM_LIST_REF 32 #define STD_VIDEO_H264_MAX_CHROMA_PLANES 2 +#define STD_VIDEO_H264_NO_REFERENCE_PICTURE 0xFF typedef enum StdVideoH264ChromaFormatIdc { STD_VIDEO_H264_CHROMA_FORMAT_IDC_MONOCHROME = 0, diff --git a/deps/vulkan-headers/include/vk_video/vulkan_video_codec_h264std_encode.h b/deps/vulkan-headers/include/vk_video/vulkan_video_codec_h264std_encode.h index 2e0d706f..58b8bdb2 100644 --- a/deps/vulkan-headers/include/vk_video/vulkan_video_codec_h264std_encode.h +++ b/deps/vulkan-headers/include/vk_video/vulkan_video_codec_h264std_encode.h @@ -23,9 +23,9 @@ extern "C" { #define vulkan_video_codec_h264std_encode 1 #include "vulkan_video_codec_h264std.h" // Vulkan 0.9 provisional Vulkan video H.264 encode std specification version number -#define VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_API_VERSION_0_9_10 VK_MAKE_VIDEO_STD_VERSION(0, 9, 10) +#define VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_API_VERSION_0_9_11 VK_MAKE_VIDEO_STD_VERSION(0, 9, 11) -#define VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_SPEC_VERSION VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_API_VERSION_0_9_10 +#define VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_SPEC_VERSION VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_API_VERSION_0_9_11 #define VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_EXTENSION_NAME "VK_STD_vulkan_video_codec_h264_encode" typedef struct StdVideoEncodeH264WeightTableFlags { uint32_t luma_weight_l0_flag; @@ -81,7 +81,7 @@ typedef struct StdVideoEncodeH264RefListModEntry { } StdVideoEncodeH264RefListModEntry; typedef struct StdVideoEncodeH264RefPicMarkingEntry { - StdVideoH264MemMgmtControlOp operation; + StdVideoH264MemMgmtControlOp memory_management_control_operation; uint16_t difference_of_pic_nums_minus1; uint16_t long_term_pic_num; uint16_t long_term_frame_idx; @@ -132,7 +132,8 @@ typedef struct StdVideoEncodeH264SliceHeader { StdVideoH264SliceType slice_type; int8_t slice_alpha_c0_offset_div2; int8_t slice_beta_offset_div2; - uint16_t reserved1; + int8_t slice_qp_delta; + uint8_t reserved1; StdVideoH264CabacInitIdc cabac_init_idc; StdVideoH264DisableDeblockingFilterIdc disable_deblocking_filter_idc; const StdVideoEncodeH264WeightTable* pWeightTable; diff --git a/deps/vulkan-headers/include/vk_video/vulkan_video_codec_h265std.h b/deps/vulkan-headers/include/vk_video/vulkan_video_codec_h265std.h index 793bdbcf..ff5d0dac 100644 --- a/deps/vulkan-headers/include/vk_video/vulkan_video_codec_h265std.h +++ b/deps/vulkan-headers/include/vk_video/vulkan_video_codec_h265std.h @@ -44,6 +44,7 @@ extern "C" { #define STD_VIDEO_H265_MAX_LONG_TERM_REF_PICS_SPS 32 #define STD_VIDEO_H265_MAX_LONG_TERM_PICS 16 #define STD_VIDEO_H265_MAX_DELTA_POC 48 +#define STD_VIDEO_H265_NO_REFERENCE_PICTURE 0xFF typedef enum StdVideoH265ChromaFormatIdc { STD_VIDEO_H265_CHROMA_FORMAT_IDC_MONOCHROME = 0, diff --git a/deps/vulkan-headers/include/vk_video/vulkan_video_codec_h265std_encode.h b/deps/vulkan-headers/include/vk_video/vulkan_video_codec_h265std_encode.h index 25740398..2a7024ca 100644 --- a/deps/vulkan-headers/include/vk_video/vulkan_video_codec_h265std_encode.h +++ b/deps/vulkan-headers/include/vk_video/vulkan_video_codec_h265std_encode.h @@ -23,9 +23,9 @@ extern "C" { #define vulkan_video_codec_h265std_encode 1 #include "vulkan_video_codec_h265std.h" // Vulkan 0.9 provisional Vulkan video H.265 encode std specification version number -#define VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_API_VERSION_0_9_11 VK_MAKE_VIDEO_STD_VERSION(0, 9, 11) +#define VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_API_VERSION_0_9_12 VK_MAKE_VIDEO_STD_VERSION(0, 9, 12) -#define VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_SPEC_VERSION VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_API_VERSION_0_9_11 +#define VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_SPEC_VERSION VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_API_VERSION_0_9_12 #define VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_EXTENSION_NAME "VK_STD_vulkan_video_codec_h265_encode" typedef struct StdVideoEncodeH265WeightTableFlags { uint16_t luma_weight_l0_flag; @@ -77,7 +77,8 @@ typedef struct StdVideoEncodeH265SliceSegmentHeader { int8_t slice_act_y_qp_offset; int8_t slice_act_cb_qp_offset; int8_t slice_act_cr_qp_offset; - uint8_t reserved1[3]; + int8_t slice_qp_delta; + uint16_t reserved1; const StdVideoEncodeH265WeightTable* pWeightTable; } StdVideoEncodeH265SliceSegmentHeader; @@ -110,7 +111,7 @@ typedef struct StdVideoEncodeH265PictureInfoFlags { uint32_t reserved : 23; } StdVideoEncodeH265PictureInfoFlags; -typedef struct StdVideoEncodeH265SliceSegmentLongTermRefPics { +typedef struct StdVideoEncodeH265LongTermRefPics { uint8_t num_long_term_sps; uint8_t num_long_term_pics; uint8_t lt_idx_sps[STD_VIDEO_H265_MAX_LONG_TERM_REF_PICS_SPS]; @@ -118,21 +119,21 @@ typedef struct StdVideoEncodeH265SliceSegmentLongTermRefPics { uint16_t used_by_curr_pic_lt_flag; uint8_t delta_poc_msb_present_flag[STD_VIDEO_H265_MAX_DELTA_POC]; uint8_t delta_poc_msb_cycle_lt[STD_VIDEO_H265_MAX_DELTA_POC]; -} StdVideoEncodeH265SliceSegmentLongTermRefPics; +} StdVideoEncodeH265LongTermRefPics; typedef struct StdVideoEncodeH265PictureInfo { - StdVideoEncodeH265PictureInfoFlags flags; - StdVideoH265PictureType pic_type; - uint8_t sps_video_parameter_set_id; - uint8_t pps_seq_parameter_set_id; - uint8_t pps_pic_parameter_set_id; - uint8_t short_term_ref_pic_set_idx; - int32_t PicOrderCntVal; - uint8_t TemporalId; - uint8_t reserved1[7]; - const StdVideoEncodeH265ReferenceListsInfo* pRefLists; - const StdVideoH265ShortTermRefPicSet* pShortTermRefPicSet; - const StdVideoEncodeH265SliceSegmentLongTermRefPics* pLongTermRefPics; + StdVideoEncodeH265PictureInfoFlags flags; + StdVideoH265PictureType pic_type; + uint8_t sps_video_parameter_set_id; + uint8_t pps_seq_parameter_set_id; + uint8_t pps_pic_parameter_set_id; + uint8_t short_term_ref_pic_set_idx; + int32_t PicOrderCntVal; + uint8_t TemporalId; + uint8_t reserved1[7]; + const StdVideoEncodeH265ReferenceListsInfo* pRefLists; + const StdVideoH265ShortTermRefPicSet* pShortTermRefPicSet; + const StdVideoEncodeH265LongTermRefPics* pLongTermRefPics; } StdVideoEncodeH265PictureInfo; typedef struct StdVideoEncodeH265ReferenceInfoFlags { diff --git a/deps/vulkan-headers/include/vulkan/vulkan.cppm b/deps/vulkan-headers/include/vulkan/vulkan.cppm index cc693b8d..9a2cad55 100644 --- a/deps/vulkan-headers/include/vulkan/vulkan.cppm +++ b/deps/vulkan-headers/include/vulkan/vulkan.cppm @@ -5,6 +5,9 @@ // This header is generated from the Khronos Vulkan XML API Registry. +// Note: This module is still in an experimental state. +// Any feedback is welcome on https://github.com/KhronosGroup/Vulkan-Hpp/issues. + module; #include @@ -12,10 +15,9 @@ module; #include #include #include +#include -export module vulkan; - -VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE +export module vulkan_hpp; export namespace VULKAN_HPP_NAMESPACE { @@ -25,6 +27,7 @@ export namespace VULKAN_HPP_NAMESPACE using VULKAN_HPP_NAMESPACE::ArrayWrapper1D; using VULKAN_HPP_NAMESPACE::ArrayWrapper2D; using VULKAN_HPP_NAMESPACE::DispatchLoaderBase; + using VULKAN_HPP_NAMESPACE::DispatchLoaderDynamic; using VULKAN_HPP_NAMESPACE::Flags; using VULKAN_HPP_NAMESPACE::FlagTraits; @@ -44,14 +47,19 @@ export namespace VULKAN_HPP_NAMESPACE using VULKAN_HPP_NAMESPACE::Optional; using VULKAN_HPP_NAMESPACE::StridedArrayProxy; using VULKAN_HPP_NAMESPACE::StructureChain; - using VULKAN_HPP_NAMESPACE::UniqueHandle; #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ #if !defined( VULKAN_HPP_NO_SMART_HANDLE ) using VULKAN_HPP_NAMESPACE::ObjectDestroy; + using VULKAN_HPP_NAMESPACE::ObjectDestroyShared; using VULKAN_HPP_NAMESPACE::ObjectFree; + using VULKAN_HPP_NAMESPACE::ObjectFreeShared; using VULKAN_HPP_NAMESPACE::ObjectRelease; + using VULKAN_HPP_NAMESPACE::ObjectReleaseShared; using VULKAN_HPP_NAMESPACE::PoolFree; + using VULKAN_HPP_NAMESPACE::PoolFreeShared; + using VULKAN_HPP_NAMESPACE::SharedHandle; + using VULKAN_HPP_NAMESPACE::UniqueHandle; #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ //================== @@ -110,6 +118,8 @@ export namespace VULKAN_HPP_NAMESPACE using VULKAN_HPP_NAMESPACE::DescriptorType; using VULKAN_HPP_NAMESPACE::DeviceCreateFlagBits; using VULKAN_HPP_NAMESPACE::DeviceCreateFlags; + using VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlagBits; + using VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags; using VULKAN_HPP_NAMESPACE::DynamicState; using VULKAN_HPP_NAMESPACE::EventCreateFlagBits; using VULKAN_HPP_NAMESPACE::EventCreateFlags; @@ -148,13 +158,21 @@ export namespace VULKAN_HPP_NAMESPACE using VULKAN_HPP_NAMESPACE::ObjectType; using VULKAN_HPP_NAMESPACE::PhysicalDeviceType; using VULKAN_HPP_NAMESPACE::PipelineBindPoint; + using VULKAN_HPP_NAMESPACE::PipelineCacheCreateFlagBits; + using VULKAN_HPP_NAMESPACE::PipelineCacheCreateFlags; using VULKAN_HPP_NAMESPACE::PipelineCacheHeaderVersion; + using VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateFlagBits; + using VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateFlags; using VULKAN_HPP_NAMESPACE::PipelineCreateFlagBits; using VULKAN_HPP_NAMESPACE::PipelineCreateFlags; + using VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateFlagBits; + using VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateFlags; using VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateFlagBits; using VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateFlags; using VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateFlagBits; using VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateFlags; + using VULKAN_HPP_NAMESPACE::PipelineLayoutCreateFlagBits; + using VULKAN_HPP_NAMESPACE::PipelineLayoutCreateFlags; using VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateFlagBits; using VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateFlags; using VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateFlagBits; @@ -222,8 +240,6 @@ export namespace VULKAN_HPP_NAMESPACE using VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateFlags; using VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType; using VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateTypeKHR; - using VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlagBits; - using VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags; using VULKAN_HPP_NAMESPACE::ExternalFenceFeatureFlagBits; using VULKAN_HPP_NAMESPACE::ExternalFenceFeatureFlagBitsKHR; using VULKAN_HPP_NAMESPACE::ExternalFenceFeatureFlags; @@ -669,10 +685,6 @@ export namespace VULKAN_HPP_NAMESPACE using VULKAN_HPP_NAMESPACE::DeviceMemoryReportFlagBitsEXT; using VULKAN_HPP_NAMESPACE::DeviceMemoryReportFlagsEXT; - //=== VK_EXT_pipeline_creation_cache_control === - using VULKAN_HPP_NAMESPACE::PipelineCacheCreateFlagBits; - using VULKAN_HPP_NAMESPACE::PipelineCacheCreateFlags; - #if defined( VK_ENABLE_BETA_EXTENSIONS ) //=== VK_KHR_video_encode_queue === using VULKAN_HPP_NAMESPACE::VideoEncodeCapabilityFlagBitsKHR; @@ -705,8 +717,6 @@ export namespace VULKAN_HPP_NAMESPACE //=== VK_EXT_graphics_pipeline_library === using VULKAN_HPP_NAMESPACE::GraphicsPipelineLibraryFlagBitsEXT; using VULKAN_HPP_NAMESPACE::GraphicsPipelineLibraryFlagsEXT; - using VULKAN_HPP_NAMESPACE::PipelineLayoutCreateFlagBits; - using VULKAN_HPP_NAMESPACE::PipelineLayoutCreateFlags; //=== VK_NV_fragment_shading_rate_enums === using VULKAN_HPP_NAMESPACE::FragmentShadingRateNV; @@ -748,6 +758,10 @@ export namespace VULKAN_HPP_NAMESPACE using VULKAN_HPP_NAMESPACE::ImageFormatConstraintsFlagsFUCHSIA; #endif /*VK_USE_PLATFORM_FUCHSIA*/ + //=== VK_EXT_frame_boundary === + using VULKAN_HPP_NAMESPACE::FrameBoundaryFlagBitsEXT; + using VULKAN_HPP_NAMESPACE::FrameBoundaryFlagsEXT; + #if defined( VK_USE_PLATFORM_SCREEN_QNX ) //=== VK_QNX_screen_surface === using VULKAN_HPP_NAMESPACE::ScreenSurfaceCreateFlagBitsQNX; @@ -782,12 +796,6 @@ export namespace VULKAN_HPP_NAMESPACE using VULKAN_HPP_NAMESPACE::DirectDriverLoadingFlagsLUNARG; using VULKAN_HPP_NAMESPACE::DirectDriverLoadingModeLUNARG; - //=== VK_EXT_rasterization_order_attachment_access === - using VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateFlagBits; - using VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateFlags; - using VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateFlagBits; - using VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateFlags; - //=== VK_NV_optical_flow === using VULKAN_HPP_NAMESPACE::OpticalFlowExecuteFlagBitsNV; using VULKAN_HPP_NAMESPACE::OpticalFlowExecuteFlagsNV; @@ -814,12 +822,25 @@ export namespace VULKAN_HPP_NAMESPACE //=== VK_NV_ray_tracing_invocation_reorder === using VULKAN_HPP_NAMESPACE::RayTracingInvocationReorderModeNV; + //=== VK_NV_low_latency2 === + using VULKAN_HPP_NAMESPACE::LatencyMarkerNV; + using VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeNV; + //=== VK_KHR_cooperative_matrix === using VULKAN_HPP_NAMESPACE::ComponentTypeKHR; using VULKAN_HPP_NAMESPACE::ComponentTypeNV; using VULKAN_HPP_NAMESPACE::ScopeKHR; using VULKAN_HPP_NAMESPACE::ScopeNV; + //=== VK_QCOM_image_processing2 === + using VULKAN_HPP_NAMESPACE::BlockMatchWindowCompareModeQCOM; + + //=== VK_QCOM_filter_cubic_weights === + using VULKAN_HPP_NAMESPACE::CubicFilterWeightsQCOM; + + //=== VK_MSFT_layered_driver === + using VULKAN_HPP_NAMESPACE::LayeredDriverUnderlyingApiMSFT; + //========================= //=== Index Type Traits === //========================= @@ -925,40 +946,40 @@ export namespace VULKAN_HPP_NAMESPACE using VULKAN_HPP_NAMESPACE::MaxDriverNameSize; //=== VK_KHR_device_group_creation === - using VULKAN_HPP_NAMESPACE::MaxDeviceGroupSizeKhr; + using VULKAN_HPP_NAMESPACE::MaxDeviceGroupSizeKHR; //=== VK_KHR_external_memory_capabilities === - using VULKAN_HPP_NAMESPACE::LuidSizeKhr; + using VULKAN_HPP_NAMESPACE::LuidSizeKHR; //=== VK_KHR_external_memory === - using VULKAN_HPP_NAMESPACE::QueueFamilyExternalKhr; + using VULKAN_HPP_NAMESPACE::QueueFamilyExternalKHR; #if defined( VK_ENABLE_BETA_EXTENSIONS ) //=== VK_AMDX_shader_enqueue === - using VULKAN_HPP_NAMESPACE::ShaderIndexUnusedAmdx; + using VULKAN_HPP_NAMESPACE::ShaderIndexUnusedAMDX; #endif /*VK_ENABLE_BETA_EXTENSIONS*/ //=== VK_KHR_ray_tracing_pipeline === - using VULKAN_HPP_NAMESPACE::ShaderUnusedKhr; + using VULKAN_HPP_NAMESPACE::ShaderUnusedKHR; //=== VK_NV_ray_tracing === - using VULKAN_HPP_NAMESPACE::ShaderUnusedNv; + using VULKAN_HPP_NAMESPACE::ShaderUnusedNV; //=== VK_KHR_global_priority === - using VULKAN_HPP_NAMESPACE::MaxGlobalPrioritySizeKhr; + using VULKAN_HPP_NAMESPACE::MaxGlobalPrioritySizeKHR; //=== VK_KHR_driver_properties === - using VULKAN_HPP_NAMESPACE::MaxDriverInfoSizeKhr; - using VULKAN_HPP_NAMESPACE::MaxDriverNameSizeKhr; + using VULKAN_HPP_NAMESPACE::MaxDriverInfoSizeKHR; + using VULKAN_HPP_NAMESPACE::MaxDriverNameSizeKHR; //=== VK_EXT_global_priority_query === - using VULKAN_HPP_NAMESPACE::MaxGlobalPrioritySizeExt; + using VULKAN_HPP_NAMESPACE::MaxGlobalPrioritySizeEXT; //=== VK_EXT_image_sliced_view_of_3d === - using VULKAN_HPP_NAMESPACE::Remaining3DSlicesExt; + using VULKAN_HPP_NAMESPACE::Remaining3DSlicesEXT; //=== VK_EXT_shader_module_identifier === - using VULKAN_HPP_NAMESPACE::MaxShaderModuleIdentifierSizeExt; + using VULKAN_HPP_NAMESPACE::MaxShaderModuleIdentifierSizeEXT; //======================== //=== CONSTEXPR VALUEs === @@ -2416,6 +2437,10 @@ export namespace VULKAN_HPP_NAMESPACE using VULKAN_HPP_NAMESPACE::PhysicalDevicePipelinePropertiesFeaturesEXT; using VULKAN_HPP_NAMESPACE::PipelinePropertiesIdentifierEXT; + //=== VK_EXT_frame_boundary === + using VULKAN_HPP_NAMESPACE::FrameBoundaryEXT; + using VULKAN_HPP_NAMESPACE::PhysicalDeviceFrameBoundaryFeaturesEXT; + //=== VK_EXT_multisampled_render_to_single_sampled === using VULKAN_HPP_NAMESPACE::MultisampledRenderToSingleSampledInfoEXT; using VULKAN_HPP_NAMESPACE::PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT; @@ -2540,6 +2565,10 @@ export namespace VULKAN_HPP_NAMESPACE using VULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessingFeaturesQCOM; using VULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessingPropertiesQCOM; + //=== VK_EXT_nested_command_buffer === + using VULKAN_HPP_NAMESPACE::PhysicalDeviceNestedCommandBufferFeaturesEXT; + using VULKAN_HPP_NAMESPACE::PhysicalDeviceNestedCommandBufferPropertiesEXT; + //=== VK_EXT_external_memory_acquire_unmodified === using VULKAN_HPP_NAMESPACE::ExternalMemoryAcquireUnmodifiedEXT; @@ -2586,6 +2615,13 @@ export namespace VULKAN_HPP_NAMESPACE //=== VK_EXT_pipeline_protected_access === using VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineProtectedAccessFeaturesEXT; +#if defined( VK_USE_PLATFORM_ANDROID_KHR ) + //=== VK_ANDROID_external_format_resolve === + using VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatResolvePropertiesANDROID; + using VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFormatResolveFeaturesANDROID; + using VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFormatResolvePropertiesANDROID; +#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ + //=== VK_KHR_maintenance5 === using VULKAN_HPP_NAMESPACE::BufferUsageFlags2CreateInfoKHR; using VULKAN_HPP_NAMESPACE::DeviceImageSubresourceInfoKHR; @@ -2621,6 +2657,10 @@ export namespace VULKAN_HPP_NAMESPACE using VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingInvocationReorderFeaturesNV; using VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingInvocationReorderPropertiesNV; + //=== VK_NV_extended_sparse_address_space === + using VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV; + using VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedSparseAddressSpacePropertiesNV; + //=== VK_EXT_mutable_descriptor_type === using VULKAN_HPP_NAMESPACE::MutableDescriptorTypeCreateInfoEXT; using VULKAN_HPP_NAMESPACE::MutableDescriptorTypeCreateInfoVALVE; @@ -2639,6 +2679,17 @@ export namespace VULKAN_HPP_NAMESPACE //=== VK_EXT_dynamic_rendering_unused_attachments === using VULKAN_HPP_NAMESPACE::PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT; + //=== VK_NV_low_latency2 === + using VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV; + using VULKAN_HPP_NAMESPACE::LatencySleepInfoNV; + using VULKAN_HPP_NAMESPACE::LatencySleepModeInfoNV; + using VULKAN_HPP_NAMESPACE::LatencySubmissionPresentIdNV; + using VULKAN_HPP_NAMESPACE::LatencySurfaceCapabilitiesNV; + using VULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV; + using VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeInfoNV; + using VULKAN_HPP_NAMESPACE::SetLatencyMarkerInfoNV; + using VULKAN_HPP_NAMESPACE::SwapchainLatencyCreateInfoNV; + //=== VK_KHR_cooperative_matrix === using VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesKHR; using VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesKHR; @@ -2648,6 +2699,23 @@ export namespace VULKAN_HPP_NAMESPACE using VULKAN_HPP_NAMESPACE::MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM; using VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM; + //=== VK_QCOM_image_processing2 === + using VULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessing2FeaturesQCOM; + using VULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessing2PropertiesQCOM; + using VULKAN_HPP_NAMESPACE::SamplerBlockMatchWindowCreateInfoQCOM; + + //=== VK_QCOM_filter_cubic_weights === + using VULKAN_HPP_NAMESPACE::BlitImageCubicWeightsInfoQCOM; + using VULKAN_HPP_NAMESPACE::PhysicalDeviceCubicWeightsFeaturesQCOM; + using VULKAN_HPP_NAMESPACE::SamplerCubicWeightsCreateInfoQCOM; + + //=== VK_QCOM_ycbcr_degamma === + using VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrDegammaFeaturesQCOM; + using VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM; + + //=== VK_QCOM_filter_cubic_clamp === + using VULKAN_HPP_NAMESPACE::PhysicalDeviceCubicClampFeaturesQCOM; + //=== VK_EXT_attachment_feedback_loop_dynamic_state === using VULKAN_HPP_NAMESPACE::PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT; @@ -2660,6 +2728,12 @@ export namespace VULKAN_HPP_NAMESPACE using VULKAN_HPP_NAMESPACE::ScreenBufferPropertiesQNX; #endif /*VK_USE_PLATFORM_SCREEN_QNX*/ + //=== VK_MSFT_layered_driver === + using VULKAN_HPP_NAMESPACE::PhysicalDeviceLayeredDriverPropertiesMSFT; + + //=== VK_NV_descriptor_pool_overallocation === + using VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorPoolOverallocationFeaturesNV; + //=============== //=== HANDLEs === //=============== @@ -2845,6 +2919,104 @@ export namespace VULKAN_HPP_NAMESPACE using VULKAN_HPP_NAMESPACE::UniqueShaderEXT; #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ + //====================== + //=== SHARED HANDLEs === + //====================== + +#if !defined( VULKAN_HPP_NO_SMART_HANDLE ) + + //=== VK_VERSION_1_0 === + using VULKAN_HPP_NAMESPACE::SharedBuffer; + using VULKAN_HPP_NAMESPACE::SharedBufferView; + using VULKAN_HPP_NAMESPACE::SharedCommandBuffer; + using VULKAN_HPP_NAMESPACE::SharedCommandPool; + using VULKAN_HPP_NAMESPACE::SharedDescriptorPool; + using VULKAN_HPP_NAMESPACE::SharedDescriptorSet; + using VULKAN_HPP_NAMESPACE::SharedDescriptorSetLayout; + using VULKAN_HPP_NAMESPACE::SharedDevice; + using VULKAN_HPP_NAMESPACE::SharedDeviceMemory; + using VULKAN_HPP_NAMESPACE::SharedEvent; + using VULKAN_HPP_NAMESPACE::SharedFence; + using VULKAN_HPP_NAMESPACE::SharedFramebuffer; + using VULKAN_HPP_NAMESPACE::SharedImage; + using VULKAN_HPP_NAMESPACE::SharedImageView; + using VULKAN_HPP_NAMESPACE::SharedInstance; + using VULKAN_HPP_NAMESPACE::SharedPhysicalDevice; + using VULKAN_HPP_NAMESPACE::SharedPipeline; + using VULKAN_HPP_NAMESPACE::SharedPipelineCache; + using VULKAN_HPP_NAMESPACE::SharedPipelineLayout; + using VULKAN_HPP_NAMESPACE::SharedQueryPool; + using VULKAN_HPP_NAMESPACE::SharedQueue; + using VULKAN_HPP_NAMESPACE::SharedRenderPass; + using VULKAN_HPP_NAMESPACE::SharedSampler; + using VULKAN_HPP_NAMESPACE::SharedSemaphore; + using VULKAN_HPP_NAMESPACE::SharedShaderModule; + + //=== VK_VERSION_1_1 === + using VULKAN_HPP_NAMESPACE::SharedDescriptorUpdateTemplate; + using VULKAN_HPP_NAMESPACE::SharedSamplerYcbcrConversion; + + //=== VK_VERSION_1_3 === + using VULKAN_HPP_NAMESPACE::SharedPrivateDataSlot; + + //=== VK_KHR_surface === + using VULKAN_HPP_NAMESPACE::SharedSurfaceKHR; + + //=== VK_KHR_swapchain === + using VULKAN_HPP_NAMESPACE::SharedSwapchainKHR; + + //=== VK_KHR_display === + using VULKAN_HPP_NAMESPACE::SharedDisplayKHR; + using VULKAN_HPP_NAMESPACE::SharedDisplayModeKHR; + + //=== VK_EXT_debug_report === + using VULKAN_HPP_NAMESPACE::SharedDebugReportCallbackEXT; + + //=== VK_KHR_video_queue === + using VULKAN_HPP_NAMESPACE::SharedVideoSessionKHR; + using VULKAN_HPP_NAMESPACE::SharedVideoSessionParametersKHR; + + //=== VK_NVX_binary_import === + using VULKAN_HPP_NAMESPACE::SharedCuFunctionNVX; + using VULKAN_HPP_NAMESPACE::SharedCuModuleNVX; + + //=== VK_EXT_debug_utils === + using VULKAN_HPP_NAMESPACE::SharedDebugUtilsMessengerEXT; + + //=== VK_KHR_acceleration_structure === + using VULKAN_HPP_NAMESPACE::SharedAccelerationStructureKHR; + + //=== VK_EXT_validation_cache === + using VULKAN_HPP_NAMESPACE::SharedValidationCacheEXT; + + //=== VK_NV_ray_tracing === + using VULKAN_HPP_NAMESPACE::SharedAccelerationStructureNV; + + //=== VK_INTEL_performance_query === + using VULKAN_HPP_NAMESPACE::SharedPerformanceConfigurationINTEL; + + //=== VK_KHR_deferred_host_operations === + using VULKAN_HPP_NAMESPACE::SharedDeferredOperationKHR; + + //=== VK_NV_device_generated_commands === + using VULKAN_HPP_NAMESPACE::SharedIndirectCommandsLayoutNV; + +# if defined( VK_USE_PLATFORM_FUCHSIA ) + //=== VK_FUCHSIA_buffer_collection === + using VULKAN_HPP_NAMESPACE::SharedBufferCollectionFUCHSIA; +# endif /*VK_USE_PLATFORM_FUCHSIA*/ + + //=== VK_EXT_opacity_micromap === + using VULKAN_HPP_NAMESPACE::SharedMicromapEXT; + + //=== VK_NV_optical_flow === + using VULKAN_HPP_NAMESPACE::SharedOpticalFlowSessionNV; + + //=== VK_EXT_shader_object === + using VULKAN_HPP_NAMESPACE::SharedHandleTraits; + using VULKAN_HPP_NAMESPACE::SharedShaderEXT; +#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ + //=========================== //=== COMMAND Definitions === //=========================== @@ -2865,8 +3037,6 @@ export namespace VULKAN_HPP_NAMESPACE using VULKAN_HPP_NAMESPACE::DynamicLoader; #endif /*VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL*/ - using VULKAN_HPP_NAMESPACE::DispatchLoaderDynamic; - //===================== //=== Format Traits === //===================== @@ -2906,6 +3076,7 @@ export namespace VULKAN_HPP_NAMESPACE using VULKAN_HPP_NAMESPACE::isObsoletedExtension; using VULKAN_HPP_NAMESPACE::isPromotedExtension; +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) && !defined( VULKAN_HPP_NO_EXCEPTIONS ) namespace VULKAN_HPP_RAII_NAMESPACE { //====================== @@ -3004,10 +3175,10 @@ export namespace VULKAN_HPP_NAMESPACE //=== VK_NV_device_generated_commands === using VULKAN_HPP_RAII_NAMESPACE::IndirectCommandsLayoutNV; -#if defined( VK_USE_PLATFORM_FUCHSIA ) +# if defined( VK_USE_PLATFORM_FUCHSIA ) //=== VK_FUCHSIA_buffer_collection === using VULKAN_HPP_RAII_NAMESPACE::BufferCollectionFUCHSIA; -#endif /*VK_USE_PLATFORM_FUCHSIA*/ +# endif /*VK_USE_PLATFORM_FUCHSIA*/ //=== VK_EXT_opacity_micromap === using VULKAN_HPP_RAII_NAMESPACE::MicromapEXT; @@ -3020,4 +3191,5 @@ export namespace VULKAN_HPP_NAMESPACE using VULKAN_HPP_RAII_NAMESPACE::ShaderEXTs; } // namespace VULKAN_HPP_RAII_NAMESPACE +#endif } // namespace VULKAN_HPP_NAMESPACE diff --git a/deps/vulkan-headers/include/vulkan/vulkan.hpp b/deps/vulkan-headers/include/vulkan/vulkan.hpp index 03789305..37f72277 100644 --- a/deps/vulkan-headers/include/vulkan/vulkan.hpp +++ b/deps/vulkan-headers/include/vulkan/vulkan.hpp @@ -8,37 +8,17 @@ #ifndef VULKAN_HPP #define VULKAN_HPP -#if defined( _MSVC_LANG ) -# define VULKAN_HPP_CPLUSPLUS _MSVC_LANG -#else -# define VULKAN_HPP_CPLUSPLUS __cplusplus -#endif - -#if 201703L < VULKAN_HPP_CPLUSPLUS -# define VULKAN_HPP_CPP_VERSION 20 -#elif 201402L < VULKAN_HPP_CPLUSPLUS -# define VULKAN_HPP_CPP_VERSION 17 -#elif 201103L < VULKAN_HPP_CPLUSPLUS -# define VULKAN_HPP_CPP_VERSION 14 -#elif 199711L < VULKAN_HPP_CPLUSPLUS -# define VULKAN_HPP_CPP_VERSION 11 -#else -# error "vulkan.hpp needs at least c++ standard version 11" -#endif - #include #include // ArrayWrapperND #include // std::string #include +#include + #if 17 <= VULKAN_HPP_CPP_VERSION # include // std::string_view #endif -#if defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) -# if !defined( VULKAN_HPP_NO_SMART_HANDLE ) -# define VULKAN_HPP_NO_SMART_HANDLE -# endif -#else +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) # include // std::tie # include // std::vector #endif @@ -47,43 +27,12 @@ # include // std::is_error_code_enum #endif -#if defined( VULKAN_HPP_NO_CONSTRUCTORS ) -# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) -# define VULKAN_HPP_NO_STRUCT_CONSTRUCTORS -# endif -# if !defined( VULKAN_HPP_NO_UNION_CONSTRUCTORS ) -# define VULKAN_HPP_NO_UNION_CONSTRUCTORS -# endif -#endif - -#if defined( VULKAN_HPP_NO_SETTERS ) -# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) -# define VULKAN_HPP_NO_STRUCT_SETTERS -# endif -# if !defined( VULKAN_HPP_NO_UNION_SETTERS ) -# define VULKAN_HPP_NO_UNION_SETTERS -# endif -#endif - -#if !defined( VULKAN_HPP_ASSERT ) +#if ( VULKAN_HPP_ASSERT == assert ) # include -# define VULKAN_HPP_ASSERT assert -#endif - -#if !defined( VULKAN_HPP_ASSERT_ON_RESULT ) -# define VULKAN_HPP_ASSERT_ON_RESULT VULKAN_HPP_ASSERT -#endif - -#if !defined( VULKAN_HPP_STATIC_ASSERT ) -# define VULKAN_HPP_STATIC_ASSERT static_assert -#endif - -#if !defined( VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL ) -# define VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL 1 #endif #if VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL == 1 -# if defined( __unix__ ) || defined( __APPLE__ ) || defined( __QNXNTO__ ) || defined( __Fuchsia__ ) +# if defined( __unix__ ) || defined( __APPLE__ ) || defined( __QNX__ ) || defined( __Fuchsia__ ) # include # elif defined( _WIN32 ) typedef struct HINSTANCE__ * HINSTANCE; @@ -98,31 +47,15 @@ extern "C" __declspec( dllimport ) FARPROC __stdcall GetProcAddress( HINSTANCE h # endif #endif -#if !defined( __has_include ) -# define __has_include( x ) false -#endif - -#if ( 201907 <= __cpp_lib_three_way_comparison ) && __has_include( ) && !defined( VULKAN_HPP_NO_SPACESHIP_OPERATOR ) -# define VULKAN_HPP_HAS_SPACESHIP_OPERATOR -#endif #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) # include #endif -#if ( 201803 <= __cpp_lib_span ) -# define VULKAN_HPP_SUPPORT_SPAN +#if defined( VULKAN_HPP_SUPPORT_SPAN ) # include #endif -static_assert( VK_HEADER_VERSION == 261, "Wrong VK_HEADER_VERSION!" ); - -// 32-bit vulkan is not typesafe for non-dispatchable handles, so don't allow copy constructors on this platform by default. -// To enable this feature on 32-bit platforms please define VULKAN_HPP_TYPESAFE_CONVERSION -#if ( VK_USE_64_BIT_PTR_DEFINES == 1 ) -# if !defined( VULKAN_HPP_TYPESAFE_CONVERSION ) -# define VULKAN_HPP_TYPESAFE_CONVERSION -# endif -#endif +static_assert( VK_HEADER_VERSION == 268, "Wrong VK_HEADER_VERSION!" ); // includes through some other header // this results in major(x) being resolved to gnu_dev_major(x) @@ -151,115 +84,6 @@ constexpr int True = 1; constexpr int False = 0; #endif -#if defined( __GNUC__ ) -# define GCC_VERSION ( __GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__ ) -#endif - -#if !defined( VULKAN_HPP_HAS_UNRESTRICTED_UNIONS ) -# if defined( __clang__ ) -# if __has_feature( cxx_unrestricted_unions ) -# define VULKAN_HPP_HAS_UNRESTRICTED_UNIONS -# endif -# elif defined( __GNUC__ ) -# if 40600 <= GCC_VERSION -# define VULKAN_HPP_HAS_UNRESTRICTED_UNIONS -# endif -# elif defined( _MSC_VER ) -# if 1900 <= _MSC_VER -# define VULKAN_HPP_HAS_UNRESTRICTED_UNIONS -# endif -# endif -#endif - -#if !defined( VULKAN_HPP_INLINE ) -# if defined( __clang__ ) -# if __has_attribute( always_inline ) -# define VULKAN_HPP_INLINE __attribute__( ( always_inline ) ) __inline__ -# else -# define VULKAN_HPP_INLINE inline -# endif -# elif defined( __GNUC__ ) -# define VULKAN_HPP_INLINE __attribute__( ( always_inline ) ) __inline__ -# elif defined( _MSC_VER ) -# define VULKAN_HPP_INLINE inline -# else -# define VULKAN_HPP_INLINE inline -# endif -#endif - -#if defined( VULKAN_HPP_TYPESAFE_CONVERSION ) -# define VULKAN_HPP_TYPESAFE_EXPLICIT -#else -# define VULKAN_HPP_TYPESAFE_EXPLICIT explicit -#endif - -#if defined( __cpp_constexpr ) -# define VULKAN_HPP_CONSTEXPR constexpr -# if 201304 <= __cpp_constexpr -# define VULKAN_HPP_CONSTEXPR_14 constexpr -# else -# define VULKAN_HPP_CONSTEXPR_14 -# endif -# if ( 201907 <= __cpp_constexpr ) && ( !defined( __GNUC__ ) || ( 110400 < GCC_VERSION ) ) -# define VULKAN_HPP_CONSTEXPR_20 constexpr -# else -# define VULKAN_HPP_CONSTEXPR_20 -# endif -# define VULKAN_HPP_CONST_OR_CONSTEXPR constexpr -#else -# define VULKAN_HPP_CONSTEXPR -# define VULKAN_HPP_CONSTEXPR_14 -# define VULKAN_HPP_CONST_OR_CONSTEXPR const -#endif - -#if !defined( VULKAN_HPP_CONSTEXPR_INLINE ) -# if 201606L <= __cpp_inline_variables -# define VULKAN_HPP_CONSTEXPR_INLINE VULKAN_HPP_CONSTEXPR inline -# else -# define VULKAN_HPP_CONSTEXPR_INLINE VULKAN_HPP_CONSTEXPR -# endif -#endif - -#if !defined( VULKAN_HPP_NOEXCEPT ) -# if defined( _MSC_VER ) && ( _MSC_VER <= 1800 ) -# define VULKAN_HPP_NOEXCEPT -# else -# define VULKAN_HPP_NOEXCEPT noexcept -# define VULKAN_HPP_HAS_NOEXCEPT 1 -# if defined( VULKAN_HPP_NO_EXCEPTIONS ) -# define VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS noexcept -# else -# define VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS -# endif -# endif -#endif - -#if 14 <= VULKAN_HPP_CPP_VERSION -# define VULKAN_HPP_DEPRECATED( msg ) [[deprecated( msg )]] -#else -# define VULKAN_HPP_DEPRECATED( msg ) -#endif - -#if ( 17 <= VULKAN_HPP_CPP_VERSION ) && !defined( VULKAN_HPP_NO_NODISCARD_WARNINGS ) -# define VULKAN_HPP_NODISCARD [[nodiscard]] -# if defined( VULKAN_HPP_NO_EXCEPTIONS ) -# define VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS [[nodiscard]] -# else -# define VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS -# endif -#else -# define VULKAN_HPP_NODISCARD -# define VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS -#endif - -#if !defined( VULKAN_HPP_NAMESPACE ) -# define VULKAN_HPP_NAMESPACE vk -#endif - -#define VULKAN_HPP_STRINGIFY2( text ) #text -#define VULKAN_HPP_STRINGIFY( text ) VULKAN_HPP_STRINGIFY2( text ) -#define VULKAN_HPP_NAMESPACE_STRING VULKAN_HPP_STRINGIFY( VULKAN_HPP_NAMESPACE ) - namespace VULKAN_HPP_NAMESPACE { template @@ -401,212 +225,6 @@ namespace VULKAN_HPP_NAMESPACE } }; - template - struct FlagTraits - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool isBitmask = false; - }; - - template - class Flags - { - public: - using MaskType = typename std::underlying_type::type; - - // constructors - VULKAN_HPP_CONSTEXPR Flags() VULKAN_HPP_NOEXCEPT : m_mask( 0 ) {} - - VULKAN_HPP_CONSTEXPR Flags( BitType bit ) VULKAN_HPP_NOEXCEPT : m_mask( static_cast( bit ) ) {} - - VULKAN_HPP_CONSTEXPR Flags( Flags const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - VULKAN_HPP_CONSTEXPR explicit Flags( MaskType flags ) VULKAN_HPP_NOEXCEPT : m_mask( flags ) {} - - // relational operators -#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) - auto operator<=>( Flags const & ) const = default; -#else - VULKAN_HPP_CONSTEXPR bool operator<( Flags const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_mask < rhs.m_mask; - } - - VULKAN_HPP_CONSTEXPR bool operator<=( Flags const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_mask <= rhs.m_mask; - } - - VULKAN_HPP_CONSTEXPR bool operator>( Flags const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_mask > rhs.m_mask; - } - - VULKAN_HPP_CONSTEXPR bool operator>=( Flags const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_mask >= rhs.m_mask; - } - - VULKAN_HPP_CONSTEXPR bool operator==( Flags const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_mask == rhs.m_mask; - } - - VULKAN_HPP_CONSTEXPR bool operator!=( Flags const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_mask != rhs.m_mask; - } -#endif - - // logical operator - VULKAN_HPP_CONSTEXPR bool operator!() const VULKAN_HPP_NOEXCEPT - { - return !m_mask; - } - - // bitwise operators - VULKAN_HPP_CONSTEXPR Flags operator&( Flags const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return Flags( m_mask & rhs.m_mask ); - } - - VULKAN_HPP_CONSTEXPR Flags operator|( Flags const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return Flags( m_mask | rhs.m_mask ); - } - - VULKAN_HPP_CONSTEXPR Flags operator^( Flags const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return Flags( m_mask ^ rhs.m_mask ); - } - - VULKAN_HPP_CONSTEXPR Flags operator~() const VULKAN_HPP_NOEXCEPT - { - return Flags( m_mask ^ FlagTraits::allFlags.m_mask ); - } - - // assignment operators - VULKAN_HPP_CONSTEXPR_14 Flags & operator=( Flags const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - VULKAN_HPP_CONSTEXPR_14 Flags & operator|=( Flags const & rhs ) VULKAN_HPP_NOEXCEPT - { - m_mask |= rhs.m_mask; - return *this; - } - - VULKAN_HPP_CONSTEXPR_14 Flags & operator&=( Flags const & rhs ) VULKAN_HPP_NOEXCEPT - { - m_mask &= rhs.m_mask; - return *this; - } - - VULKAN_HPP_CONSTEXPR_14 Flags & operator^=( Flags const & rhs ) VULKAN_HPP_NOEXCEPT - { - m_mask ^= rhs.m_mask; - return *this; - } - - // cast operators - explicit VULKAN_HPP_CONSTEXPR operator bool() const VULKAN_HPP_NOEXCEPT - { - return !!m_mask; - } - - explicit VULKAN_HPP_CONSTEXPR operator MaskType() const VULKAN_HPP_NOEXCEPT - { - return m_mask; - } - -#if defined( VULKAN_HPP_FLAGS_MASK_TYPE_AS_PUBLIC ) - public: -#else - private: -#endif - MaskType m_mask; - }; - -#if !defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) - // relational operators only needed for pre C++20 - template - VULKAN_HPP_CONSTEXPR bool operator<( BitType bit, Flags const & flags ) VULKAN_HPP_NOEXCEPT - { - return flags.operator>( bit ); - } - - template - VULKAN_HPP_CONSTEXPR bool operator<=( BitType bit, Flags const & flags ) VULKAN_HPP_NOEXCEPT - { - return flags.operator>=( bit ); - } - - template - VULKAN_HPP_CONSTEXPR bool operator>( BitType bit, Flags const & flags ) VULKAN_HPP_NOEXCEPT - { - return flags.operator<( bit ); - } - - template - VULKAN_HPP_CONSTEXPR bool operator>=( BitType bit, Flags const & flags ) VULKAN_HPP_NOEXCEPT - { - return flags.operator<=( bit ); - } - - template - VULKAN_HPP_CONSTEXPR bool operator==( BitType bit, Flags const & flags ) VULKAN_HPP_NOEXCEPT - { - return flags.operator==( bit ); - } - - template - VULKAN_HPP_CONSTEXPR bool operator!=( BitType bit, Flags const & flags ) VULKAN_HPP_NOEXCEPT - { - return flags.operator!=( bit ); - } -#endif - - // bitwise operators - template - VULKAN_HPP_CONSTEXPR Flags operator&( BitType bit, Flags const & flags ) VULKAN_HPP_NOEXCEPT - { - return flags.operator&( bit ); - } - - template - VULKAN_HPP_CONSTEXPR Flags operator|( BitType bit, Flags const & flags ) VULKAN_HPP_NOEXCEPT - { - return flags.operator|( bit ); - } - - template - VULKAN_HPP_CONSTEXPR Flags operator^( BitType bit, Flags const & flags ) VULKAN_HPP_NOEXCEPT - { - return flags.operator^( bit ); - } - - // bitwise operators on BitType - template ::isBitmask, bool>::type = true> - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR Flags operator&( BitType lhs, BitType rhs ) VULKAN_HPP_NOEXCEPT - { - return Flags( lhs ) & rhs; - } - - template ::isBitmask, bool>::type = true> - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR Flags operator|( BitType lhs, BitType rhs ) VULKAN_HPP_NOEXCEPT - { - return Flags( lhs ) | rhs; - } - - template ::isBitmask, bool>::type = true> - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR Flags operator^( BitType lhs, BitType rhs ) VULKAN_HPP_NOEXCEPT - { - return Flags( lhs ) ^ rhs; - } - - template ::isBitmask, bool>::type = true> - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR Flags operator~( BitType bit ) VULKAN_HPP_NOEXCEPT - { - return ~( Flags( bit ) ); - } - #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) template class ArrayProxy @@ -6093,6 +5711,36 @@ namespace VULKAN_HPP_NAMESPACE return ::vkGetDynamicRenderingTilePropertiesQCOM( device, pRenderingInfo, pProperties ); } + //=== VK_NV_low_latency2 === + + VkResult vkSetLatencySleepModeNV( VkDevice device, VkSwapchainKHR swapchain, const VkLatencySleepModeInfoNV * pSleepModeInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkSetLatencySleepModeNV( device, swapchain, pSleepModeInfo ); + } + + VkResult vkLatencySleepNV( VkDevice device, VkSwapchainKHR swapchain, const VkLatencySleepInfoNV * pSleepInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkLatencySleepNV( device, swapchain, pSleepInfo ); + } + + void vkSetLatencyMarkerNV( VkDevice device, VkSwapchainKHR swapchain, const VkSetLatencyMarkerInfoNV * pLatencyMarkerInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkSetLatencyMarkerNV( device, swapchain, pLatencyMarkerInfo ); + } + + void vkGetLatencyTimingsNV( VkDevice device, + VkSwapchainKHR swapchain, + uint32_t * pTimingCount, + VkGetLatencyMarkerInfoNV * pLatencyMarkerInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetLatencyTimingsNV( device, swapchain, pTimingCount, pLatencyMarkerInfo ); + } + + void vkQueueNotifyOutOfBandNV( VkQueue queue, const VkOutOfBandQueueTypeInfoNV * pQueueTypeInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkQueueNotifyOutOfBandNV( queue, pQueueTypeInfo ); + } + //=== VK_KHR_cooperative_matrix === VkResult vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR( VkPhysicalDevice physicalDevice, @@ -6120,76 +5768,12 @@ namespace VULKAN_HPP_NAMESPACE } # endif /*VK_USE_PLATFORM_SCREEN_QNX*/ }; -#endif - class DispatchLoaderDynamic; -#if !defined( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC ) -# if defined( VK_NO_PROTOTYPES ) -# define VULKAN_HPP_DISPATCH_LOADER_DYNAMIC 1 -# else -# define VULKAN_HPP_DISPATCH_LOADER_DYNAMIC 0 -# endif -#endif - -#if !defined( VULKAN_HPP_STORAGE_API ) -# if defined( VULKAN_HPP_STORAGE_SHARED ) -# if defined( _MSC_VER ) -# if defined( VULKAN_HPP_STORAGE_SHARED_EXPORT ) -# define VULKAN_HPP_STORAGE_API __declspec( dllexport ) -# else -# define VULKAN_HPP_STORAGE_API __declspec( dllimport ) -# endif -# elif defined( __clang__ ) || defined( __GNUC__ ) -# if defined( VULKAN_HPP_STORAGE_SHARED_EXPORT ) -# define VULKAN_HPP_STORAGE_API __attribute__( ( visibility( "default" ) ) ) -# else -# define VULKAN_HPP_STORAGE_API -# endif -# else -# define VULKAN_HPP_STORAGE_API -# pragma warning Unknown import / export semantics -# endif -# else -# define VULKAN_HPP_STORAGE_API -# endif -#endif - -#if !defined( VULKAN_HPP_DEFAULT_DISPATCHER ) -# if VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 -# define VULKAN_HPP_DEFAULT_DISPATCHER ::VULKAN_HPP_NAMESPACE::defaultDispatchLoaderDynamic -# define VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE \ - namespace VULKAN_HPP_NAMESPACE \ - { \ - VULKAN_HPP_STORAGE_API DispatchLoaderDynamic defaultDispatchLoaderDynamic; \ - } - extern VULKAN_HPP_STORAGE_API DispatchLoaderDynamic defaultDispatchLoaderDynamic; -# else inline ::VULKAN_HPP_NAMESPACE::DispatchLoaderStatic & getDispatchLoaderStatic() { static ::VULKAN_HPP_NAMESPACE::DispatchLoaderStatic dls; return dls; } -# define VULKAN_HPP_DEFAULT_DISPATCHER ::VULKAN_HPP_NAMESPACE::getDispatchLoaderStatic() -# define VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE -# endif -#endif - -#if !defined( VULKAN_HPP_DEFAULT_DISPATCHER_TYPE ) -# if VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 -# define VULKAN_HPP_DEFAULT_DISPATCHER_TYPE ::VULKAN_HPP_NAMESPACE::DispatchLoaderDynamic -# else -# define VULKAN_HPP_DEFAULT_DISPATCHER_TYPE ::VULKAN_HPP_NAMESPACE::DispatchLoaderStatic -# endif -#endif - -#if defined( VULKAN_HPP_NO_DEFAULT_DISPATCHER ) -# define VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT -# define VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT -# define VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT -#else -# define VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT = {} -# define VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT = nullptr -# define VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT = VULKAN_HPP_DEFAULT_DISPATCHER #endif #if !defined( VULKAN_HPP_NO_SMART_HANDLE ) @@ -7034,40 +6618,40 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_CONSTEXPR_INLINE uint32_t MaxDriverInfoSize = VK_MAX_DRIVER_INFO_SIZE; //=== VK_KHR_device_group_creation === - VULKAN_HPP_CONSTEXPR_INLINE uint32_t MaxDeviceGroupSizeKhr = VK_MAX_DEVICE_GROUP_SIZE_KHR; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t MaxDeviceGroupSizeKHR = VK_MAX_DEVICE_GROUP_SIZE_KHR; //=== VK_KHR_external_memory_capabilities === - VULKAN_HPP_CONSTEXPR_INLINE uint32_t LuidSizeKhr = VK_LUID_SIZE_KHR; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t LuidSizeKHR = VK_LUID_SIZE_KHR; //=== VK_KHR_external_memory === - VULKAN_HPP_CONSTEXPR_INLINE uint32_t QueueFamilyExternalKhr = VK_QUEUE_FAMILY_EXTERNAL_KHR; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t QueueFamilyExternalKHR = VK_QUEUE_FAMILY_EXTERNAL_KHR; #if defined( VK_ENABLE_BETA_EXTENSIONS ) //=== VK_AMDX_shader_enqueue === - VULKAN_HPP_CONSTEXPR_INLINE uint32_t ShaderIndexUnusedAmdx = VK_SHADER_INDEX_UNUSED_AMDX; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t ShaderIndexUnusedAMDX = VK_SHADER_INDEX_UNUSED_AMDX; #endif /*VK_ENABLE_BETA_EXTENSIONS*/ //=== VK_KHR_ray_tracing_pipeline === - VULKAN_HPP_CONSTEXPR_INLINE uint32_t ShaderUnusedKhr = VK_SHADER_UNUSED_KHR; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t ShaderUnusedKHR = VK_SHADER_UNUSED_KHR; //=== VK_NV_ray_tracing === - VULKAN_HPP_CONSTEXPR_INLINE uint32_t ShaderUnusedNv = VK_SHADER_UNUSED_NV; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t ShaderUnusedNV = VK_SHADER_UNUSED_NV; //=== VK_KHR_global_priority === - VULKAN_HPP_CONSTEXPR_INLINE uint32_t MaxGlobalPrioritySizeKhr = VK_MAX_GLOBAL_PRIORITY_SIZE_KHR; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t MaxGlobalPrioritySizeKHR = VK_MAX_GLOBAL_PRIORITY_SIZE_KHR; //=== VK_KHR_driver_properties === - VULKAN_HPP_CONSTEXPR_INLINE uint32_t MaxDriverNameSizeKhr = VK_MAX_DRIVER_NAME_SIZE_KHR; - VULKAN_HPP_CONSTEXPR_INLINE uint32_t MaxDriverInfoSizeKhr = VK_MAX_DRIVER_INFO_SIZE_KHR; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t MaxDriverNameSizeKHR = VK_MAX_DRIVER_NAME_SIZE_KHR; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t MaxDriverInfoSizeKHR = VK_MAX_DRIVER_INFO_SIZE_KHR; //=== VK_EXT_global_priority_query === - VULKAN_HPP_CONSTEXPR_INLINE uint32_t MaxGlobalPrioritySizeExt = VK_MAX_GLOBAL_PRIORITY_SIZE_EXT; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t MaxGlobalPrioritySizeEXT = VK_MAX_GLOBAL_PRIORITY_SIZE_EXT; //=== VK_EXT_image_sliced_view_of_3d === - VULKAN_HPP_CONSTEXPR_INLINE uint32_t Remaining3DSlicesExt = VK_REMAINING_3D_SLICES_EXT; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t Remaining3DSlicesEXT = VK_REMAINING_3D_SLICES_EXT; //=== VK_EXT_shader_module_identifier === - VULKAN_HPP_CONSTEXPR_INLINE uint32_t MaxShaderModuleIdentifierSizeExt = VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t MaxShaderModuleIdentifierSizeEXT = VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT; //======================== //=== CONSTEXPR VALUEs === @@ -9508,6 +9092,30 @@ namespace VULKAN_HPP_NAMESPACE }; }; template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> struct StructExtends { enum @@ -12249,6 +11857,56 @@ namespace VULKAN_HPP_NAMESPACE }; }; + //=== VK_EXT_frame_boundary === + 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_multisampled_render_to_single_sampled === template <> struct StructExtends @@ -12871,6 +12529,32 @@ namespace VULKAN_HPP_NAMESPACE }; }; + //=== VK_EXT_nested_command_buffer === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + //=== VK_EXT_external_memory_acquire_unmodified === template <> struct StructExtends @@ -13129,6 +12813,42 @@ namespace VULKAN_HPP_NAMESPACE }; }; +# if defined( VK_USE_PLATFORM_ANDROID_KHR ) + //=== VK_ANDROID_external_format_resolve === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; +# endif /*VK_USE_PLATFORM_ANDROID_KHR*/ + //=== VK_KHR_maintenance5 === template <> struct StructExtends @@ -13351,6 +13071,32 @@ namespace VULKAN_HPP_NAMESPACE }; }; + //=== VK_NV_extended_sparse_address_space === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + //=== VK_EXT_mutable_descriptor_type === template <> struct StructExtends @@ -13447,6 +13193,40 @@ namespace VULKAN_HPP_NAMESPACE }; }; + //=== VK_NV_low_latency2 === + 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_cooperative_matrix === template <> struct StructExtends @@ -13507,6 +13287,118 @@ namespace VULKAN_HPP_NAMESPACE }; }; + //=== VK_QCOM_image_processing2 === + 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_QCOM_filter_cubic_weights === + 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_QCOM_ycbcr_degamma === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_QCOM_filter_cubic_clamp === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + //=== VK_EXT_attachment_feedback_loop_dynamic_state === template <> struct StructExtends @@ -13577,6 +13469,34 @@ namespace VULKAN_HPP_NAMESPACE }; # endif /*VK_USE_PLATFORM_SCREEN_QNX*/ + //=== VK_MSFT_layered_driver === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_NV_descriptor_pool_overallocation === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + #endif // VULKAN_HPP_DISABLE_ENHANCED_MODE #if VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL @@ -13591,7 +13511,7 @@ namespace VULKAN_HPP_NAMESPACE { if ( !vulkanLibraryName.empty() ) { -# if defined( __unix__ ) || defined( __APPLE__ ) || defined( __QNXNTO__ ) || defined( __Fuchsia__ ) +# if defined( __unix__ ) || defined( __APPLE__ ) || defined( __QNX__ ) || defined( __Fuchsia__ ) m_library = dlopen( vulkanLibraryName.c_str(), RTLD_NOW | RTLD_LOCAL ); # elif defined( _WIN32 ) m_library = ::LoadLibraryA( vulkanLibraryName.c_str() ); @@ -13601,7 +13521,7 @@ namespace VULKAN_HPP_NAMESPACE } else { -# if defined( __unix__ ) || defined( __QNXNTO__ ) || defined( __Fuchsia__ ) +# if defined( __unix__ ) || defined( __QNX__ ) || defined( __Fuchsia__ ) m_library = dlopen( "libvulkan.so", RTLD_NOW | RTLD_LOCAL ); if ( m_library == nullptr ) { @@ -13644,7 +13564,7 @@ namespace VULKAN_HPP_NAMESPACE { if ( m_library ) { -# if defined( __unix__ ) || defined( __APPLE__ ) || defined( __QNXNTO__ ) || defined( __Fuchsia__ ) +# if defined( __unix__ ) || defined( __APPLE__ ) || defined( __QNX__ ) || defined( __Fuchsia__ ) dlclose( m_library ); # elif defined( _WIN32 ) ::FreeLibrary( m_library ); @@ -13657,7 +13577,7 @@ namespace VULKAN_HPP_NAMESPACE template T getProcAddress( const char * function ) const VULKAN_HPP_NOEXCEPT { -# if defined( __unix__ ) || defined( __APPLE__ ) || defined( __QNXNTO__ ) || defined( __Fuchsia__ ) +# if defined( __unix__ ) || defined( __APPLE__ ) || defined( __QNX__ ) || defined( __Fuchsia__ ) return (T)dlsym( m_library, function ); # elif defined( _WIN32 ) return ( T )::GetProcAddress( m_library, function ); @@ -13672,7 +13592,7 @@ namespace VULKAN_HPP_NAMESPACE } private: -# if defined( __unix__ ) || defined( __APPLE__ ) || defined( __QNXNTO__ ) || defined( __Fuchsia__ ) +# if defined( __unix__ ) || defined( __APPLE__ ) || defined( __QNX__ ) || defined( __Fuchsia__ ) void * m_library; # elif defined( _WIN32 ) ::HINSTANCE m_library; @@ -14763,6 +14683,13 @@ namespace VULKAN_HPP_NAMESPACE PFN_vkGetFramebufferTilePropertiesQCOM vkGetFramebufferTilePropertiesQCOM = 0; PFN_vkGetDynamicRenderingTilePropertiesQCOM vkGetDynamicRenderingTilePropertiesQCOM = 0; + //=== VK_NV_low_latency2 === + PFN_vkSetLatencySleepModeNV vkSetLatencySleepModeNV = 0; + PFN_vkLatencySleepNV vkLatencySleepNV = 0; + PFN_vkSetLatencyMarkerNV vkSetLatencyMarkerNV = 0; + PFN_vkGetLatencyTimingsNV vkGetLatencyTimingsNV = 0; + PFN_vkQueueNotifyOutOfBandNV vkQueueNotifyOutOfBandNV = 0; + //=== VK_KHR_cooperative_matrix === PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR = 0; @@ -14785,6 +14712,33 @@ namespace VULKAN_HPP_NAMESPACE init( getInstanceProcAddr ); } + // This interface does not require a linked vulkan library. + DispatchLoaderDynamic( VkInstance instance, + PFN_vkGetInstanceProcAddr getInstanceProcAddr, + VkDevice device = {}, + PFN_vkGetDeviceProcAddr getDeviceProcAddr = nullptr ) VULKAN_HPP_NOEXCEPT + { + init( instance, getInstanceProcAddr, device, getDeviceProcAddr ); + } + + template + void init() + { + static DynamicLoader dl; + init( dl ); + } + + template + void init( DynamicLoader const & dl ) VULKAN_HPP_NOEXCEPT + { + PFN_vkGetInstanceProcAddr getInstanceProcAddr = dl.template getProcAddress( "vkGetInstanceProcAddr" ); + init( getInstanceProcAddr ); + } + void init( PFN_vkGetInstanceProcAddr getInstanceProcAddr ) VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getInstanceProcAddr ); @@ -14801,15 +14755,6 @@ namespace VULKAN_HPP_NAMESPACE vkEnumerateInstanceVersion = PFN_vkEnumerateInstanceVersion( vkGetInstanceProcAddr( NULL, "vkEnumerateInstanceVersion" ) ); } - // This interface does not require a linked vulkan library. - DispatchLoaderDynamic( VkInstance instance, - PFN_vkGetInstanceProcAddr getInstanceProcAddr, - VkDevice device = {}, - PFN_vkGetDeviceProcAddr getDeviceProcAddr = nullptr ) VULKAN_HPP_NOEXCEPT - { - init( instance, getInstanceProcAddr, device, getDeviceProcAddr ); - } - // This interface does not require a linked vulkan library. void init( VkInstance instance, PFN_vkGetInstanceProcAddr getInstanceProcAddr, @@ -16106,6 +16051,13 @@ namespace VULKAN_HPP_NAMESPACE vkGetDynamicRenderingTilePropertiesQCOM = PFN_vkGetDynamicRenderingTilePropertiesQCOM( vkGetInstanceProcAddr( instance, "vkGetDynamicRenderingTilePropertiesQCOM" ) ); + //=== VK_NV_low_latency2 === + vkSetLatencySleepModeNV = PFN_vkSetLatencySleepModeNV( vkGetInstanceProcAddr( instance, "vkSetLatencySleepModeNV" ) ); + vkLatencySleepNV = PFN_vkLatencySleepNV( vkGetInstanceProcAddr( instance, "vkLatencySleepNV" ) ); + vkSetLatencyMarkerNV = PFN_vkSetLatencyMarkerNV( vkGetInstanceProcAddr( instance, "vkSetLatencyMarkerNV" ) ); + vkGetLatencyTimingsNV = PFN_vkGetLatencyTimingsNV( vkGetInstanceProcAddr( instance, "vkGetLatencyTimingsNV" ) ); + vkQueueNotifyOutOfBandNV = PFN_vkQueueNotifyOutOfBandNV( vkGetInstanceProcAddr( instance, "vkQueueNotifyOutOfBandNV" ) ); + //=== VK_KHR_cooperative_matrix === vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR = PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR" ) ); @@ -17113,6 +17065,13 @@ namespace VULKAN_HPP_NAMESPACE vkGetDynamicRenderingTilePropertiesQCOM = PFN_vkGetDynamicRenderingTilePropertiesQCOM( vkGetDeviceProcAddr( device, "vkGetDynamicRenderingTilePropertiesQCOM" ) ); + //=== VK_NV_low_latency2 === + vkSetLatencySleepModeNV = PFN_vkSetLatencySleepModeNV( vkGetDeviceProcAddr( device, "vkSetLatencySleepModeNV" ) ); + vkLatencySleepNV = PFN_vkLatencySleepNV( vkGetDeviceProcAddr( device, "vkLatencySleepNV" ) ); + vkSetLatencyMarkerNV = PFN_vkSetLatencyMarkerNV( vkGetDeviceProcAddr( device, "vkSetLatencyMarkerNV" ) ); + vkGetLatencyTimingsNV = PFN_vkGetLatencyTimingsNV( vkGetDeviceProcAddr( device, "vkGetLatencyTimingsNV" ) ); + vkQueueNotifyOutOfBandNV = PFN_vkQueueNotifyOutOfBandNV( vkGetDeviceProcAddr( device, "vkQueueNotifyOutOfBandNV" ) ); + //=== VK_EXT_attachment_feedback_loop_dynamic_state === vkCmdSetAttachmentFeedbackLoopEnableEXT = PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetAttachmentFeedbackLoopEnableEXT" ) ); diff --git a/deps/vulkan-headers/include/vulkan/vulkan_android.h b/deps/vulkan-headers/include/vulkan/vulkan_android.h index d86f43f2..40b3c67b 100644 --- a/deps/vulkan-headers/include/vulkan/vulkan_android.h +++ b/deps/vulkan-headers/include/vulkan/vulkan_android.h @@ -120,6 +120,32 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryAndroidHardwareBufferANDROID( struct AHardwareBuffer** pBuffer); #endif + +// VK_ANDROID_external_format_resolve is a preprocessor guard. Do not pass it to API calls. +#define VK_ANDROID_external_format_resolve 1 +#define VK_ANDROID_EXTERNAL_FORMAT_RESOLVE_SPEC_VERSION 1 +#define VK_ANDROID_EXTERNAL_FORMAT_RESOLVE_EXTENSION_NAME "VK_ANDROID_external_format_resolve" +typedef struct VkPhysicalDeviceExternalFormatResolveFeaturesANDROID { + VkStructureType sType; + void* pNext; + VkBool32 externalFormatResolve; +} VkPhysicalDeviceExternalFormatResolveFeaturesANDROID; + +typedef struct VkPhysicalDeviceExternalFormatResolvePropertiesANDROID { + VkStructureType sType; + void* pNext; + VkBool32 nullColorAttachmentWithExternalFormatResolve; + VkChromaLocation externalFormatResolveChromaOffsetX; + VkChromaLocation externalFormatResolveChromaOffsetY; +} VkPhysicalDeviceExternalFormatResolvePropertiesANDROID; + +typedef struct VkAndroidHardwareBufferFormatResolvePropertiesANDROID { + VkStructureType sType; + void* pNext; + VkFormat colorAttachmentFormat; +} VkAndroidHardwareBufferFormatResolvePropertiesANDROID; + + #ifdef __cplusplus } #endif diff --git a/deps/vulkan-headers/include/vulkan/vulkan_beta.h b/deps/vulkan-headers/include/vulkan/vulkan_beta.h index f00ed3ff..1871651d 100644 --- a/deps/vulkan-headers/include/vulkan/vulkan_beta.h +++ b/deps/vulkan-headers/include/vulkan/vulkan_beta.h @@ -53,7 +53,7 @@ typedef struct VkPhysicalDevicePortabilitySubsetPropertiesKHR { // VK_KHR_video_encode_queue is a preprocessor guard. Do not pass it to API calls. #define VK_KHR_video_encode_queue 1 -#define VK_KHR_VIDEO_ENCODE_QUEUE_SPEC_VERSION 9 +#define VK_KHR_VIDEO_ENCODE_QUEUE_SPEC_VERSION 10 #define VK_KHR_VIDEO_ENCODE_QUEUE_EXTENSION_NAME "VK_KHR_video_encode_queue" typedef enum VkVideoEncodeTuningModeKHR { @@ -68,6 +68,7 @@ typedef VkFlags VkVideoEncodeFlagsKHR; typedef enum VkVideoEncodeCapabilityFlagBitsKHR { VK_VIDEO_ENCODE_CAPABILITY_PRECEDING_EXTERNALLY_ENCODED_BYTES_BIT_KHR = 0x00000001, + VK_VIDEO_ENCODE_CAPABILITY_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_DETECTION_BIT_KHR = 0x00000002, VK_VIDEO_ENCODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF } VkVideoEncodeCapabilityFlagBitsKHR; typedef VkFlags VkVideoEncodeCapabilityFlagsKHR; @@ -227,7 +228,7 @@ VKAPI_ATTR void VKAPI_CALL vkCmdEncodeVideoKHR( #define VK_EXT_video_encode_h264 1 #include "vk_video/vulkan_video_codec_h264std.h" #include "vk_video/vulkan_video_codec_h264std_encode.h" -#define VK_EXT_VIDEO_ENCODE_H264_SPEC_VERSION 11 +#define VK_EXT_VIDEO_ENCODE_H264_SPEC_VERSION 12 #define VK_EXT_VIDEO_ENCODE_H264_EXTENSION_NAME "VK_EXT_video_encode_h264" typedef enum VkVideoEncodeH264CapabilityFlagBitsEXT { @@ -263,6 +264,8 @@ typedef enum VkVideoEncodeH264StdFlagBitsEXT { VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_DISABLED_BIT_EXT = 0x00008000, VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_ENABLED_BIT_EXT = 0x00010000, VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_PARTIAL_BIT_EXT = 0x00020000, + VK_VIDEO_ENCODE_H264_STD_SLICE_QP_DELTA_BIT_EXT = 0x00080000, + VK_VIDEO_ENCODE_H264_STD_DIFFERENT_SLICE_QP_DELTA_BIT_EXT = 0x00100000, VK_VIDEO_ENCODE_H264_STD_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF } VkVideoEncodeH264StdFlagBitsEXT; typedef VkFlags VkVideoEncodeH264StdFlagsEXT; @@ -424,7 +427,7 @@ typedef struct VkVideoEncodeH264GopRemainingFrameInfoEXT { #define VK_EXT_video_encode_h265 1 #include "vk_video/vulkan_video_codec_h265std.h" #include "vk_video/vulkan_video_codec_h265std_encode.h" -#define VK_EXT_VIDEO_ENCODE_H265_SPEC_VERSION 11 +#define VK_EXT_VIDEO_ENCODE_H265_SPEC_VERSION 12 #define VK_EXT_VIDEO_ENCODE_H265_EXTENSION_NAME "VK_EXT_video_encode_h265" typedef enum VkVideoEncodeH265CapabilityFlagBitsEXT { @@ -462,6 +465,8 @@ typedef enum VkVideoEncodeH265StdFlagBitsEXT { VK_VIDEO_ENCODE_H265_STD_DEBLOCKING_FILTER_OVERRIDE_ENABLED_FLAG_SET_BIT_EXT = 0x00010000, VK_VIDEO_ENCODE_H265_STD_DEPENDENT_SLICE_SEGMENTS_ENABLED_FLAG_SET_BIT_EXT = 0x00020000, VK_VIDEO_ENCODE_H265_STD_DEPENDENT_SLICE_SEGMENT_FLAG_SET_BIT_EXT = 0x00040000, + VK_VIDEO_ENCODE_H265_STD_SLICE_QP_DELTA_BIT_EXT = 0x00080000, + VK_VIDEO_ENCODE_H265_STD_DIFFERENT_SLICE_QP_DELTA_BIT_EXT = 0x00100000, VK_VIDEO_ENCODE_H265_STD_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF } VkVideoEncodeH265StdFlagBitsEXT; typedef VkFlags VkVideoEncodeH265StdFlagsEXT; diff --git a/deps/vulkan-headers/include/vulkan/vulkan_core.h b/deps/vulkan-headers/include/vulkan/vulkan_core.h index c5748581..77bdf094 100644 --- a/deps/vulkan-headers/include/vulkan/vulkan_core.h +++ b/deps/vulkan-headers/include/vulkan/vulkan_core.h @@ -27,7 +27,7 @@ extern "C" { #ifndef VK_USE_64_BIT_PTR_DEFINES - #if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__) + #if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__) || (defined(__riscv) && __riscv_xlen == 64) #define VK_USE_64_BIT_PTR_DEFINES 1 #else #define VK_USE_64_BIT_PTR_DEFINES 0 @@ -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 261 +#define VK_HEADER_VERSION 268 // Complete version of this file #define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 3, VK_HEADER_VERSION) @@ -992,6 +992,8 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV = 1000371001, VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT = 1000372000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT = 1000372001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT = 1000375000, + VK_STRUCTURE_TYPE_FRAME_BOUNDARY_EXT = 1000375001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT = 1000376000, VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT = 1000376001, VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT = 1000376002, @@ -1055,6 +1057,8 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM = 1000440000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM = 1000440001, VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM = 1000440002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT = 1000451000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT = 1000451001, VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT = 1000453000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT = 1000455000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT = 1000455001, @@ -1078,6 +1082,9 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV = 1000464010, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT = 1000465000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT = 1000466000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID = 1000468000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID = 1000468001, + VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID = 1000468002, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR = 1000470000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR = 1000470001, VK_STRUCTURE_TYPE_RENDERING_AREA_INFO_KHR = 1000470003, @@ -1097,23 +1104,45 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM = 1000488000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV = 1000490000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV = 1000490001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV = 1000492000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV = 1000492001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT = 1000351000, VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT = 1000351002, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM = 1000497000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM = 1000497001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT = 1000498000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT = 1000499000, + VK_STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NV = 1000505000, + VK_STRUCTURE_TYPE_LATENCY_SLEEP_INFO_NV = 1000505001, + VK_STRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NV = 1000505002, + VK_STRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NV = 1000505003, + VK_STRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NV = 1000505004, + VK_STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV = 1000505005, + VK_STRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NV = 1000505006, + VK_STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV = 1000505007, + VK_STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV = 1000505008, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR = 1000506000, VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_KHR = 1000506001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR = 1000506002, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM = 1000510000, VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM = 1000510001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM = 1000518000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM = 1000518001, + VK_STRUCTURE_TYPE_SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM = 1000518002, + VK_STRUCTURE_TYPE_SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM = 1000519000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM = 1000519001, + VK_STRUCTURE_TYPE_BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM = 1000519002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM = 1000520000, + 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_SCREEN_BUFFER_PROPERTIES_QNX = 1000529000, VK_STRUCTURE_TYPE_SCREEN_BUFFER_FORMAT_PROPERTIES_QNX = 1000529001, VK_STRUCTURE_TYPE_IMPORT_SCREEN_BUFFER_INFO_QNX = 1000529002, VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_QNX = 1000529003, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX = 1000529004, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT = 1000530000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV = 1000546000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES, VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT, @@ -2163,6 +2192,7 @@ typedef enum VkIndexType { typedef enum VkSubpassContents { VK_SUBPASS_CONTENTS_INLINE = 0, VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 1, + VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT = 1000451000, VK_SUBPASS_CONTENTS_MAX_ENUM = 0x7FFFFFFF } VkSubpassContents; @@ -2714,6 +2744,8 @@ typedef enum VkDescriptorPoolCreateFlagBits { VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001, VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT = 0x00000002, VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT = 0x00000004, + VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_SETS_BIT_NV = 0x00000008, + VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_POOLS_BIT_NV = 0x00000010, VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT = VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT, VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE = VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT, VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF @@ -5784,6 +5816,7 @@ typedef enum VkDriverId { VK_DRIVER_ID_MESA_DOZEN = 23, VK_DRIVER_ID_MESA_NVK = 24, VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA = 25, + VK_DRIVER_ID_MESA_AGXV = 26, VK_DRIVER_ID_AMD_PROPRIETARY_KHR = VK_DRIVER_ID_AMD_PROPRIETARY, VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR = VK_DRIVER_ID_AMD_OPEN_SOURCE, VK_DRIVER_ID_MESA_RADV_KHR = VK_DRIVER_ID_MESA_RADV, @@ -5813,6 +5846,7 @@ typedef enum VkSamplerReductionMode { VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE = 0, VK_SAMPLER_REDUCTION_MODE_MIN = 1, VK_SAMPLER_REDUCTION_MODE_MAX = 2, + VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM = 1000521000, VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT = VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, VK_SAMPLER_REDUCTION_MODE_MIN_EXT = VK_SAMPLER_REDUCTION_MODE_MIN, VK_SAMPLER_REDUCTION_MODE_MAX_EXT = VK_SAMPLER_REDUCTION_MODE_MAX, @@ -5833,6 +5867,7 @@ 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_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, @@ -6711,6 +6746,7 @@ typedef enum VkRenderingFlagBits { VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT = 0x00000001, VK_RENDERING_SUSPENDING_BIT = 0x00000002, VK_RENDERING_RESUMING_BIT = 0x00000004, + VK_RENDERING_CONTENTS_INLINE_BIT_EXT = 0x00000010, VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT = 0x00000008, VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR = VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT, VK_RENDERING_SUSPENDING_BIT_KHR = VK_RENDERING_SUSPENDING_BIT, @@ -7992,6 +8028,7 @@ typedef enum VkQueryResultStatusKHR { VK_QUERY_RESULT_STATUS_ERROR_KHR = -1, VK_QUERY_RESULT_STATUS_NOT_READY_KHR = 0, VK_QUERY_RESULT_STATUS_COMPLETE_KHR = 1, + VK_QUERY_RESULT_STATUS_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_KHR = -1000299000, VK_QUERY_RESULT_STATUS_MAX_ENUM_KHR = 0x7FFFFFFF } VkQueryResultStatusKHR; @@ -15816,6 +15853,38 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelinePropertiesEXT( #endif +// VK_EXT_frame_boundary is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_frame_boundary 1 +#define VK_EXT_FRAME_BOUNDARY_SPEC_VERSION 1 +#define VK_EXT_FRAME_BOUNDARY_EXTENSION_NAME "VK_EXT_frame_boundary" + +typedef enum VkFrameBoundaryFlagBitsEXT { + VK_FRAME_BOUNDARY_FRAME_END_BIT_EXT = 0x00000001, + VK_FRAME_BOUNDARY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF +} VkFrameBoundaryFlagBitsEXT; +typedef VkFlags VkFrameBoundaryFlagsEXT; +typedef struct VkPhysicalDeviceFrameBoundaryFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 frameBoundary; +} VkPhysicalDeviceFrameBoundaryFeaturesEXT; + +typedef struct VkFrameBoundaryEXT { + VkStructureType sType; + const void* pNext; + VkFrameBoundaryFlagsEXT flags; + uint64_t frameID; + uint32_t imageCount; + const VkImage* pImages; + uint32_t bufferCount; + const VkBuffer* pBuffers; + uint64_t tagName; + size_t tagSize; + const void* pTag; +} VkFrameBoundaryEXT; + + + // VK_EXT_multisampled_render_to_single_sampled is a preprocessor guard. Do not pass it to API calls. #define VK_EXT_multisampled_render_to_single_sampled 1 #define VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_SPEC_VERSION 1 @@ -16728,6 +16797,26 @@ typedef struct VkPhysicalDeviceImageProcessingPropertiesQCOM { +// VK_EXT_nested_command_buffer is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_nested_command_buffer 1 +#define VK_EXT_NESTED_COMMAND_BUFFER_SPEC_VERSION 1 +#define VK_EXT_NESTED_COMMAND_BUFFER_EXTENSION_NAME "VK_EXT_nested_command_buffer" +typedef struct VkPhysicalDeviceNestedCommandBufferFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 nestedCommandBuffer; + VkBool32 nestedCommandBufferRendering; + VkBool32 nestedCommandBufferSimultaneousUse; +} VkPhysicalDeviceNestedCommandBufferFeaturesEXT; + +typedef struct VkPhysicalDeviceNestedCommandBufferPropertiesEXT { + VkStructureType sType; + void* pNext; + uint32_t maxCommandBufferNestingLevel; +} VkPhysicalDeviceNestedCommandBufferPropertiesEXT; + + + // VK_EXT_external_memory_acquire_unmodified is a preprocessor guard. Do not pass it to API calls. #define VK_EXT_external_memory_acquire_unmodified 1 #define VK_EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_SPEC_VERSION 1 @@ -17482,6 +17571,26 @@ typedef struct VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV { +// VK_NV_extended_sparse_address_space is a preprocessor guard. Do not pass it to API calls. +#define VK_NV_extended_sparse_address_space 1 +#define VK_NV_EXTENDED_SPARSE_ADDRESS_SPACE_SPEC_VERSION 1 +#define VK_NV_EXTENDED_SPARSE_ADDRESS_SPACE_EXTENSION_NAME "VK_NV_extended_sparse_address_space" +typedef struct VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 extendedSparseAddressSpace; +} VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV; + +typedef struct VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV { + VkStructureType sType; + void* pNext; + VkDeviceSize extendedSparseAddressSpaceSize; + VkImageUsageFlags extendedSparseImageUsageFlags; + VkBufferUsageFlags extendedSparseBufferUsageFlags; +} VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV; + + + // VK_EXT_mutable_descriptor_type is a preprocessor guard. Do not pass it to API calls. #define VK_EXT_mutable_descriptor_type 1 #define VK_EXT_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION 1 @@ -17532,6 +17641,138 @@ typedef struct VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT { +// VK_NV_low_latency2 is a preprocessor guard. Do not pass it to API calls. +#define VK_NV_low_latency2 1 +#define VK_NV_LOW_LATENCY_2_SPEC_VERSION 1 +#define VK_NV_LOW_LATENCY_2_EXTENSION_NAME "VK_NV_low_latency2" + +typedef enum VkLatencyMarkerNV { + VK_LATENCY_MARKER_SIMULATION_START_NV = 0, + VK_LATENCY_MARKER_SIMULATION_END_NV = 1, + VK_LATENCY_MARKER_RENDERSUBMIT_START_NV = 2, + VK_LATENCY_MARKER_RENDERSUBMIT_END_NV = 3, + VK_LATENCY_MARKER_PRESENT_START_NV = 4, + VK_LATENCY_MARKER_PRESENT_END_NV = 5, + VK_LATENCY_MARKER_INPUT_SAMPLE_NV = 6, + VK_LATENCY_MARKER_TRIGGER_FLASH_NV = 7, + VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_START_NV = 8, + VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_END_NV = 9, + VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_START_NV = 10, + VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_END_NV = 11, + VK_LATENCY_MARKER_MAX_ENUM_NV = 0x7FFFFFFF +} VkLatencyMarkerNV; + +typedef enum VkOutOfBandQueueTypeNV { + VK_OUT_OF_BAND_QUEUE_TYPE_RENDER_NV = 0, + VK_OUT_OF_BAND_QUEUE_TYPE_PRESENT_NV = 1, + VK_OUT_OF_BAND_QUEUE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF +} VkOutOfBandQueueTypeNV; +typedef struct VkLatencySleepModeInfoNV { + VkStructureType sType; + const void* pNext; + VkBool32 lowLatencyMode; + VkBool32 lowLatencyBoost; + uint32_t minimumIntervalUs; +} VkLatencySleepModeInfoNV; + +typedef struct VkLatencySleepInfoNV { + VkStructureType sType; + const void* pNext; + VkSemaphore signalSemaphore; + uint64_t value; +} VkLatencySleepInfoNV; + +typedef struct VkSetLatencyMarkerInfoNV { + VkStructureType sType; + const void* pNext; + uint64_t presentID; + VkLatencyMarkerNV marker; +} VkSetLatencyMarkerInfoNV; + +typedef struct VkLatencyTimingsFrameReportNV { + VkStructureType sType; + const void* pNext; + uint64_t presentID; + uint64_t inputSampleTimeUs; + uint64_t simStartTimeUs; + uint64_t simEndTimeUs; + uint64_t renderSubmitStartTimeUs; + uint64_t renderSubmitEndTimeUs; + uint64_t presentStartTimeUs; + uint64_t presentEndTimeUs; + uint64_t driverStartTimeUs; + uint64_t driverEndTimeUs; + uint64_t osRenderQueueStartTimeUs; + uint64_t osRenderQueueEndTimeUs; + uint64_t gpuRenderStartTimeUs; + uint64_t gpuRenderEndTimeUs; +} VkLatencyTimingsFrameReportNV; + +typedef struct VkGetLatencyMarkerInfoNV { + VkStructureType sType; + const void* pNext; + VkLatencyTimingsFrameReportNV* pTimings; +} VkGetLatencyMarkerInfoNV; + +typedef struct VkLatencySubmissionPresentIdNV { + VkStructureType sType; + const void* pNext; + uint64_t presentID; +} VkLatencySubmissionPresentIdNV; + +typedef struct VkSwapchainLatencyCreateInfoNV { + VkStructureType sType; + const void* pNext; + VkBool32 latencyModeEnable; +} VkSwapchainLatencyCreateInfoNV; + +typedef struct VkOutOfBandQueueTypeInfoNV { + VkStructureType sType; + const void* pNext; + VkOutOfBandQueueTypeNV queueType; +} VkOutOfBandQueueTypeInfoNV; + +typedef struct VkLatencySurfaceCapabilitiesNV { + VkStructureType sType; + const void* pNext; + uint32_t presentModeCount; + VkPresentModeKHR* pPresentModes; +} VkLatencySurfaceCapabilitiesNV; + +typedef VkResult (VKAPI_PTR *PFN_vkSetLatencySleepModeNV)(VkDevice device, VkSwapchainKHR swapchain, const VkLatencySleepModeInfoNV* pSleepModeInfo); +typedef VkResult (VKAPI_PTR *PFN_vkLatencySleepNV)(VkDevice device, VkSwapchainKHR swapchain, const VkLatencySleepInfoNV* pSleepInfo); +typedef void (VKAPI_PTR *PFN_vkSetLatencyMarkerNV)(VkDevice device, VkSwapchainKHR swapchain, const VkSetLatencyMarkerInfoNV* pLatencyMarkerInfo); +typedef void (VKAPI_PTR *PFN_vkGetLatencyTimingsNV)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pTimingCount, VkGetLatencyMarkerInfoNV* pLatencyMarkerInfo); +typedef void (VKAPI_PTR *PFN_vkQueueNotifyOutOfBandNV)(VkQueue queue, const VkOutOfBandQueueTypeInfoNV* pQueueTypeInfo); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkSetLatencySleepModeNV( + VkDevice device, + VkSwapchainKHR swapchain, + const VkLatencySleepModeInfoNV* pSleepModeInfo); + +VKAPI_ATTR VkResult VKAPI_CALL vkLatencySleepNV( + VkDevice device, + VkSwapchainKHR swapchain, + const VkLatencySleepInfoNV* pSleepInfo); + +VKAPI_ATTR void VKAPI_CALL vkSetLatencyMarkerNV( + VkDevice device, + VkSwapchainKHR swapchain, + const VkSetLatencyMarkerInfoNV* pLatencyMarkerInfo); + +VKAPI_ATTR void VKAPI_CALL vkGetLatencyTimingsNV( + VkDevice device, + VkSwapchainKHR swapchain, + uint32_t* pTimingCount, + VkGetLatencyMarkerInfoNV* pLatencyMarkerInfo); + +VKAPI_ATTR void VKAPI_CALL vkQueueNotifyOutOfBandNV( + VkQueue queue, + const VkOutOfBandQueueTypeInfoNV* pQueueTypeInfo); +#endif + + // VK_QCOM_multiview_per_view_render_areas is a preprocessor guard. Do not pass it to API calls. #define VK_QCOM_multiview_per_view_render_areas 1 #define VK_QCOM_MULTIVIEW_PER_VIEW_RENDER_AREAS_SPEC_VERSION 1 @@ -17551,6 +17792,100 @@ typedef struct VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM { +// VK_QCOM_image_processing2 is a preprocessor guard. Do not pass it to API calls. +#define VK_QCOM_image_processing2 1 +#define VK_QCOM_IMAGE_PROCESSING_2_SPEC_VERSION 1 +#define VK_QCOM_IMAGE_PROCESSING_2_EXTENSION_NAME "VK_QCOM_image_processing2" + +typedef enum VkBlockMatchWindowCompareModeQCOM { + VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MIN_QCOM = 0, + VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MAX_QCOM = 1, + VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MAX_ENUM_QCOM = 0x7FFFFFFF +} VkBlockMatchWindowCompareModeQCOM; +typedef struct VkPhysicalDeviceImageProcessing2FeaturesQCOM { + VkStructureType sType; + void* pNext; + VkBool32 textureBlockMatch2; +} VkPhysicalDeviceImageProcessing2FeaturesQCOM; + +typedef struct VkPhysicalDeviceImageProcessing2PropertiesQCOM { + VkStructureType sType; + void* pNext; + VkExtent2D maxBlockMatchWindow; +} VkPhysicalDeviceImageProcessing2PropertiesQCOM; + +typedef struct VkSamplerBlockMatchWindowCreateInfoQCOM { + VkStructureType sType; + const void* pNext; + VkExtent2D windowExtent; + VkBlockMatchWindowCompareModeQCOM windowCompareMode; +} VkSamplerBlockMatchWindowCreateInfoQCOM; + + + +// VK_QCOM_filter_cubic_weights is a preprocessor guard. Do not pass it to API calls. +#define VK_QCOM_filter_cubic_weights 1 +#define VK_QCOM_FILTER_CUBIC_WEIGHTS_SPEC_VERSION 1 +#define VK_QCOM_FILTER_CUBIC_WEIGHTS_EXTENSION_NAME "VK_QCOM_filter_cubic_weights" + +typedef enum VkCubicFilterWeightsQCOM { + VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM = 0, + VK_CUBIC_FILTER_WEIGHTS_ZERO_TANGENT_CARDINAL_QCOM = 1, + VK_CUBIC_FILTER_WEIGHTS_B_SPLINE_QCOM = 2, + VK_CUBIC_FILTER_WEIGHTS_MITCHELL_NETRAVALI_QCOM = 3, + VK_CUBIC_FILTER_WEIGHTS_MAX_ENUM_QCOM = 0x7FFFFFFF +} VkCubicFilterWeightsQCOM; +typedef struct VkPhysicalDeviceCubicWeightsFeaturesQCOM { + VkStructureType sType; + void* pNext; + VkBool32 selectableCubicWeights; +} VkPhysicalDeviceCubicWeightsFeaturesQCOM; + +typedef struct VkSamplerCubicWeightsCreateInfoQCOM { + VkStructureType sType; + const void* pNext; + VkCubicFilterWeightsQCOM cubicWeights; +} VkSamplerCubicWeightsCreateInfoQCOM; + +typedef struct VkBlitImageCubicWeightsInfoQCOM { + VkStructureType sType; + const void* pNext; + VkCubicFilterWeightsQCOM cubicWeights; +} VkBlitImageCubicWeightsInfoQCOM; + + + +// VK_QCOM_ycbcr_degamma is a preprocessor guard. Do not pass it to API calls. +#define VK_QCOM_ycbcr_degamma 1 +#define VK_QCOM_YCBCR_DEGAMMA_SPEC_VERSION 1 +#define VK_QCOM_YCBCR_DEGAMMA_EXTENSION_NAME "VK_QCOM_ycbcr_degamma" +typedef struct VkPhysicalDeviceYcbcrDegammaFeaturesQCOM { + VkStructureType sType; + void* pNext; + VkBool32 ycbcrDegamma; +} VkPhysicalDeviceYcbcrDegammaFeaturesQCOM; + +typedef struct VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM { + VkStructureType sType; + void* pNext; + VkBool32 enableYDegamma; + VkBool32 enableCbCrDegamma; +} VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM; + + + +// VK_QCOM_filter_cubic_clamp is a preprocessor guard. Do not pass it to API calls. +#define VK_QCOM_filter_cubic_clamp 1 +#define VK_QCOM_FILTER_CUBIC_CLAMP_SPEC_VERSION 1 +#define VK_QCOM_FILTER_CUBIC_CLAMP_EXTENSION_NAME "VK_QCOM_filter_cubic_clamp" +typedef struct VkPhysicalDeviceCubicClampFeaturesQCOM { + VkStructureType sType; + void* pNext; + VkBool32 cubicRangeClamp; +} VkPhysicalDeviceCubicClampFeaturesQCOM; + + + // VK_EXT_attachment_feedback_loop_dynamic_state is a preprocessor guard. Do not pass it to API calls. #define VK_EXT_attachment_feedback_loop_dynamic_state 1 #define VK_EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_SPEC_VERSION 1 @@ -17570,6 +17905,36 @@ VKAPI_ATTR void VKAPI_CALL vkCmdSetAttachmentFeedbackLoopEnableEXT( #endif +// VK_MSFT_layered_driver is a preprocessor guard. Do not pass it to API calls. +#define VK_MSFT_layered_driver 1 +#define VK_MSFT_LAYERED_DRIVER_SPEC_VERSION 1 +#define VK_MSFT_LAYERED_DRIVER_EXTENSION_NAME "VK_MSFT_layered_driver" + +typedef enum VkLayeredDriverUnderlyingApiMSFT { + VK_LAYERED_DRIVER_UNDERLYING_API_NONE_MSFT = 0, + VK_LAYERED_DRIVER_UNDERLYING_API_D3D12_MSFT = 1, + VK_LAYERED_DRIVER_UNDERLYING_API_MAX_ENUM_MSFT = 0x7FFFFFFF +} VkLayeredDriverUnderlyingApiMSFT; +typedef struct VkPhysicalDeviceLayeredDriverPropertiesMSFT { + VkStructureType sType; + void* pNext; + VkLayeredDriverUnderlyingApiMSFT underlyingAPI; +} VkPhysicalDeviceLayeredDriverPropertiesMSFT; + + + +// VK_NV_descriptor_pool_overallocation is a preprocessor guard. Do not pass it to API calls. +#define VK_NV_descriptor_pool_overallocation 1 +#define VK_NV_DESCRIPTOR_POOL_OVERALLOCATION_SPEC_VERSION 1 +#define VK_NV_DESCRIPTOR_POOL_OVERALLOCATION_EXTENSION_NAME "VK_NV_descriptor_pool_overallocation" +typedef struct VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 descriptorPoolOverallocation; +} VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV; + + + // VK_KHR_acceleration_structure is a preprocessor guard. Do not pass it to API calls. #define VK_KHR_acceleration_structure 1 #define VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION 13 diff --git a/deps/vulkan-headers/include/vulkan/vulkan_enums.hpp b/deps/vulkan-headers/include/vulkan/vulkan_enums.hpp index bac99333..d243cd40 100644 --- a/deps/vulkan-headers/include/vulkan/vulkan_enums.hpp +++ b/deps/vulkan-headers/include/vulkan/vulkan_enums.hpp @@ -10,6 +10,212 @@ namespace VULKAN_HPP_NAMESPACE { + template + struct FlagTraits + { + static VULKAN_HPP_CONST_OR_CONSTEXPR bool isBitmask = false; + }; + + template + class Flags + { + public: + using MaskType = typename std::underlying_type::type; + + // constructors + VULKAN_HPP_CONSTEXPR Flags() VULKAN_HPP_NOEXCEPT : m_mask( 0 ) {} + + VULKAN_HPP_CONSTEXPR Flags( BitType bit ) VULKAN_HPP_NOEXCEPT : m_mask( static_cast( bit ) ) {} + + VULKAN_HPP_CONSTEXPR Flags( Flags const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VULKAN_HPP_CONSTEXPR explicit Flags( MaskType flags ) VULKAN_HPP_NOEXCEPT : m_mask( flags ) {} + + // relational operators +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( Flags const & ) const = default; +#else + VULKAN_HPP_CONSTEXPR bool operator<( Flags const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return m_mask < rhs.m_mask; + } + + VULKAN_HPP_CONSTEXPR bool operator<=( Flags const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return m_mask <= rhs.m_mask; + } + + VULKAN_HPP_CONSTEXPR bool operator>( Flags const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return m_mask > rhs.m_mask; + } + + VULKAN_HPP_CONSTEXPR bool operator>=( Flags const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return m_mask >= rhs.m_mask; + } + + VULKAN_HPP_CONSTEXPR bool operator==( Flags const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return m_mask == rhs.m_mask; + } + + VULKAN_HPP_CONSTEXPR bool operator!=( Flags const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return m_mask != rhs.m_mask; + } +#endif + + // logical operator + VULKAN_HPP_CONSTEXPR bool operator!() const VULKAN_HPP_NOEXCEPT + { + return !m_mask; + } + + // bitwise operators + VULKAN_HPP_CONSTEXPR Flags operator&( Flags const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return Flags( m_mask & rhs.m_mask ); + } + + VULKAN_HPP_CONSTEXPR Flags operator|( Flags const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return Flags( m_mask | rhs.m_mask ); + } + + VULKAN_HPP_CONSTEXPR Flags operator^( Flags const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return Flags( m_mask ^ rhs.m_mask ); + } + + VULKAN_HPP_CONSTEXPR Flags operator~() const VULKAN_HPP_NOEXCEPT + { + return Flags( m_mask ^ FlagTraits::allFlags.m_mask ); + } + + // assignment operators + VULKAN_HPP_CONSTEXPR_14 Flags & operator=( Flags const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VULKAN_HPP_CONSTEXPR_14 Flags & operator|=( Flags const & rhs ) VULKAN_HPP_NOEXCEPT + { + m_mask |= rhs.m_mask; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 Flags & operator&=( Flags const & rhs ) VULKAN_HPP_NOEXCEPT + { + m_mask &= rhs.m_mask; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 Flags & operator^=( Flags const & rhs ) VULKAN_HPP_NOEXCEPT + { + m_mask ^= rhs.m_mask; + return *this; + } + + // cast operators + explicit VULKAN_HPP_CONSTEXPR operator bool() const VULKAN_HPP_NOEXCEPT + { + return !!m_mask; + } + + explicit VULKAN_HPP_CONSTEXPR operator MaskType() const VULKAN_HPP_NOEXCEPT + { + return m_mask; + } + +#if defined( VULKAN_HPP_FLAGS_MASK_TYPE_AS_PUBLIC ) + public: +#else + private: +#endif + MaskType m_mask; + }; + +#if !defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + // relational operators only needed for pre C++20 + template + VULKAN_HPP_CONSTEXPR bool operator<( BitType bit, Flags const & flags ) VULKAN_HPP_NOEXCEPT + { + return flags.operator>( bit ); + } + + template + VULKAN_HPP_CONSTEXPR bool operator<=( BitType bit, Flags const & flags ) VULKAN_HPP_NOEXCEPT + { + return flags.operator>=( bit ); + } + + template + VULKAN_HPP_CONSTEXPR bool operator>( BitType bit, Flags const & flags ) VULKAN_HPP_NOEXCEPT + { + return flags.operator<( bit ); + } + + template + VULKAN_HPP_CONSTEXPR bool operator>=( BitType bit, Flags const & flags ) VULKAN_HPP_NOEXCEPT + { + return flags.operator<=( bit ); + } + + template + VULKAN_HPP_CONSTEXPR bool operator==( BitType bit, Flags const & flags ) VULKAN_HPP_NOEXCEPT + { + return flags.operator==( bit ); + } + + template + VULKAN_HPP_CONSTEXPR bool operator!=( BitType bit, Flags const & flags ) VULKAN_HPP_NOEXCEPT + { + return flags.operator!=( bit ); + } +#endif + + // bitwise operators + template + VULKAN_HPP_CONSTEXPR Flags operator&( BitType bit, Flags const & flags ) VULKAN_HPP_NOEXCEPT + { + return flags.operator&( bit ); + } + + template + VULKAN_HPP_CONSTEXPR Flags operator|( BitType bit, Flags const & flags ) VULKAN_HPP_NOEXCEPT + { + return flags.operator|( bit ); + } + + template + VULKAN_HPP_CONSTEXPR Flags operator^( BitType bit, Flags const & flags ) VULKAN_HPP_NOEXCEPT + { + return flags.operator^( bit ); + } + + // bitwise operators on BitType + template ::isBitmask, bool>::type = true> + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR Flags operator&( BitType lhs, BitType rhs ) VULKAN_HPP_NOEXCEPT + { + return Flags( lhs ) & rhs; + } + + template ::isBitmask, bool>::type = true> + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR Flags operator|( BitType lhs, BitType rhs ) VULKAN_HPP_NOEXCEPT + { + return Flags( lhs ) | rhs; + } + + template ::isBitmask, bool>::type = true> + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR Flags operator^( BitType lhs, BitType rhs ) VULKAN_HPP_NOEXCEPT + { + return Flags( lhs ) ^ rhs; + } + + template ::isBitmask, bool>::type = true> + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR Flags operator~( BitType bit ) VULKAN_HPP_NOEXCEPT + { + return ~( Flags( bit ) ); + } + template struct CppType { @@ -1007,6 +1213,8 @@ namespace VULKAN_HPP_NAMESPACE ePipelinePropertiesIdentifierEXT = VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT, ePhysicalDevicePipelinePropertiesFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT, ePipelineInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_INFO_EXT, + ePhysicalDeviceFrameBoundaryFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT, + eFrameBoundaryEXT = VK_STRUCTURE_TYPE_FRAME_BOUNDARY_EXT, ePhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT, eSubpassResolvePerformanceQueryEXT = VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT, eMultisampledRenderToSingleSampledInfoEXT = VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT, @@ -1074,6 +1282,8 @@ namespace VULKAN_HPP_NAMESPACE ePhysicalDeviceImageProcessingFeaturesQCOM = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM, ePhysicalDeviceImageProcessingPropertiesQCOM = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM, eImageViewSampleWeightCreateInfoQCOM = VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM, + ePhysicalDeviceNestedCommandBufferFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT, + ePhysicalDeviceNestedCommandBufferPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT, eExternalMemoryAcquireUnmodifiedEXT = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT, ePhysicalDeviceExtendedDynamicState3FeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT, ePhysicalDeviceExtendedDynamicState3PropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT, @@ -1097,6 +1307,11 @@ namespace VULKAN_HPP_NAMESPACE eOpticalFlowSessionCreatePrivateDataInfoNV = VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV, ePhysicalDeviceLegacyDitheringFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT, ePhysicalDevicePipelineProtectedAccessFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT, +#if defined( VK_USE_PLATFORM_ANDROID_KHR ) + ePhysicalDeviceExternalFormatResolveFeaturesANDROID = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID, + ePhysicalDeviceExternalFormatResolvePropertiesANDROID = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID, + eAndroidHardwareBufferFormatResolvePropertiesANDROID = VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID, +#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ ePhysicalDeviceMaintenance5FeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR, ePhysicalDeviceMaintenance5PropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR, eRenderingAreaInfoKHR = VK_STRUCTURE_TYPE_RENDERING_AREA_INFO_KHR, @@ -1117,25 +1332,47 @@ namespace VULKAN_HPP_NAMESPACE ePhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM, ePhysicalDeviceRayTracingInvocationReorderFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV, ePhysicalDeviceRayTracingInvocationReorderPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV, + ePhysicalDeviceExtendedSparseAddressSpaceFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV, + ePhysicalDeviceExtendedSparseAddressSpacePropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV, ePhysicalDeviceMutableDescriptorTypeFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT, eMutableDescriptorTypeCreateInfoEXT = VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT, ePhysicalDeviceShaderCoreBuiltinsFeaturesARM = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM, ePhysicalDeviceShaderCoreBuiltinsPropertiesARM = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM, ePhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT, ePhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT, + eLatencySleepModeInfoNV = VK_STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NV, + eLatencySleepInfoNV = VK_STRUCTURE_TYPE_LATENCY_SLEEP_INFO_NV, + eSetLatencyMarkerInfoNV = VK_STRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NV, + eGetLatencyMarkerInfoNV = VK_STRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NV, + eLatencyTimingsFrameReportNV = VK_STRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NV, + eLatencySubmissionPresentIdNV = VK_STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV, + eOutOfBandQueueTypeInfoNV = VK_STRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NV, + eSwapchainLatencyCreateInfoNV = VK_STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV, + eLatencySurfaceCapabilitiesNV = VK_STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV, ePhysicalDeviceCooperativeMatrixFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR, eCooperativeMatrixPropertiesKHR = VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_KHR, ePhysicalDeviceCooperativeMatrixPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR, ePhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM, eMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM = VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM, + ePhysicalDeviceImageProcessing2FeaturesQCOM = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM, + ePhysicalDeviceImageProcessing2PropertiesQCOM = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM, + eSamplerBlockMatchWindowCreateInfoQCOM = VK_STRUCTURE_TYPE_SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM, + eSamplerCubicWeightsCreateInfoQCOM = VK_STRUCTURE_TYPE_SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM, + ePhysicalDeviceCubicWeightsFeaturesQCOM = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM, + eBlitImageCubicWeightsInfoQCOM = VK_STRUCTURE_TYPE_BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM, + ePhysicalDeviceYcbcrDegammaFeaturesQCOM = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM, + 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, #if defined( VK_USE_PLATFORM_SCREEN_QNX ) eScreenBufferPropertiesQNX = VK_STRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX, eScreenBufferFormatPropertiesQNX = VK_STRUCTURE_TYPE_SCREEN_BUFFER_FORMAT_PROPERTIES_QNX, eImportScreenBufferInfoQNX = VK_STRUCTURE_TYPE_IMPORT_SCREEN_BUFFER_INFO_QNX, eExternalFormatQNX = VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_QNX, - ePhysicalDeviceExternalMemoryScreenBufferFeaturesQNX = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX + ePhysicalDeviceExternalMemoryScreenBufferFeaturesQNX = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX, #endif /*VK_USE_PLATFORM_SCREEN_QNX*/ + ePhysicalDeviceLayeredDriverPropertiesMSFT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT, + ePhysicalDeviceDescriptorPoolOverallocationFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV }; enum class PipelineCacheHeaderVersion @@ -1843,6 +2080,20 @@ namespace VULKAN_HPP_NAMESPACE static VULKAN_HPP_CONST_OR_CONSTEXPR DeviceCreateFlags allFlags = {}; }; + enum class DeviceQueueCreateFlagBits : VkDeviceQueueCreateFlags + { + eProtected = VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT + }; + + using DeviceQueueCreateFlags = Flags; + + template <> + struct FlagTraits + { + static VULKAN_HPP_CONST_OR_CONSTEXPR bool isBitmask = true; + static VULKAN_HPP_CONST_OR_CONSTEXPR DeviceQueueCreateFlags allFlags = DeviceQueueCreateFlagBits::eProtected; + }; + enum class PipelineStageFlagBits : VkPipelineStageFlags { eTopOfPipe = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, @@ -2306,6 +2557,21 @@ namespace VULKAN_HPP_NAMESPACE static VULKAN_HPP_CONST_OR_CONSTEXPR ShaderModuleCreateFlags allFlags = {}; }; + enum class PipelineCacheCreateFlagBits : VkPipelineCacheCreateFlags + { + eExternallySynchronized = VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT, + eExternallySynchronizedEXT = VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT + }; + + using PipelineCacheCreateFlags = Flags; + + template <> + struct FlagTraits + { + static VULKAN_HPP_CONST_OR_CONSTEXPR bool isBitmask = true; + static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineCacheCreateFlags allFlags = PipelineCacheCreateFlagBits::eExternallySynchronized; + }; + enum class BlendFactor { eZero = VK_BLEND_FACTOR_ZERO, @@ -2720,6 +2986,41 @@ namespace VULKAN_HPP_NAMESPACE eInstance = VK_VERTEX_INPUT_RATE_INSTANCE }; + enum class PipelineColorBlendStateCreateFlagBits : VkPipelineColorBlendStateCreateFlags + { + eRasterizationOrderAttachmentAccessARM = VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM, + eRasterizationOrderAttachmentAccessEXT = VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT + }; + + using PipelineColorBlendStateCreateFlags = Flags; + + template <> + struct FlagTraits + { + static VULKAN_HPP_CONST_OR_CONSTEXPR bool isBitmask = true; + static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineColorBlendStateCreateFlags allFlags = + PipelineColorBlendStateCreateFlagBits::eRasterizationOrderAttachmentAccessEXT; + }; + + enum class PipelineDepthStencilStateCreateFlagBits : VkPipelineDepthStencilStateCreateFlags + { + eRasterizationOrderAttachmentDepthAccessARM = VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM, + eRasterizationOrderAttachmentStencilAccessARM = VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM, + eRasterizationOrderAttachmentDepthAccessEXT = VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT, + eRasterizationOrderAttachmentStencilAccessEXT = VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT + }; + + using PipelineDepthStencilStateCreateFlags = Flags; + + template <> + struct FlagTraits + { + static VULKAN_HPP_CONST_OR_CONSTEXPR bool isBitmask = true; + static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineDepthStencilStateCreateFlags allFlags = + PipelineDepthStencilStateCreateFlagBits::eRasterizationOrderAttachmentDepthAccessEXT | + PipelineDepthStencilStateCreateFlagBits::eRasterizationOrderAttachmentStencilAccessEXT; + }; + enum class PipelineDynamicStateCreateFlagBits : VkPipelineDynamicStateCreateFlags { }; @@ -2746,6 +3047,20 @@ namespace VULKAN_HPP_NAMESPACE static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineInputAssemblyStateCreateFlags allFlags = {}; }; + enum class PipelineLayoutCreateFlagBits : VkPipelineLayoutCreateFlags + { + eIndependentSetsEXT = VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT + }; + + using PipelineLayoutCreateFlags = Flags; + + template <> + struct FlagTraits + { + static VULKAN_HPP_CONST_OR_CONSTEXPR bool isBitmask = true; + static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineLayoutCreateFlags allFlags = PipelineLayoutCreateFlagBits::eIndependentSetsEXT; + }; + enum class PipelineMultisampleStateCreateFlagBits : VkPipelineMultisampleStateCreateFlags { }; @@ -2869,11 +3184,13 @@ namespace VULKAN_HPP_NAMESPACE enum class DescriptorPoolCreateFlagBits : VkDescriptorPoolCreateFlags { - eFreeDescriptorSet = VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT, - eUpdateAfterBind = VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT, - eUpdateAfterBindEXT = VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT, - eHostOnlyVALVE = VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE, - eHostOnlyEXT = VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT + eFreeDescriptorSet = VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT, + eUpdateAfterBind = VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT, + eUpdateAfterBindEXT = VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT, + eHostOnlyVALVE = VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE, + eHostOnlyEXT = VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT, + eAllowOverallocationSetsNV = VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_SETS_BIT_NV, + eAllowOverallocationPoolsNV = VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_POOLS_BIT_NV }; using DescriptorPoolCreateFlags = Flags; @@ -2883,7 +3200,8 @@ namespace VULKAN_HPP_NAMESPACE { static VULKAN_HPP_CONST_OR_CONSTEXPR bool isBitmask = true; static VULKAN_HPP_CONST_OR_CONSTEXPR DescriptorPoolCreateFlags allFlags = - DescriptorPoolCreateFlagBits::eFreeDescriptorSet | DescriptorPoolCreateFlagBits::eUpdateAfterBind | DescriptorPoolCreateFlagBits::eHostOnlyEXT; + DescriptorPoolCreateFlagBits::eFreeDescriptorSet | DescriptorPoolCreateFlagBits::eUpdateAfterBind | DescriptorPoolCreateFlagBits::eHostOnlyEXT | + DescriptorPoolCreateFlagBits::eAllowOverallocationSetsNV | DescriptorPoolCreateFlagBits::eAllowOverallocationPoolsNV; }; enum class DescriptorSetLayoutCreateFlagBits : VkDescriptorSetLayoutCreateFlags @@ -3232,8 +3550,9 @@ namespace VULKAN_HPP_NAMESPACE enum class SubpassContents { - eInline = VK_SUBPASS_CONTENTS_INLINE, - eSecondaryCommandBuffers = VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS + eInline = VK_SUBPASS_CONTENTS_INLINE, + eSecondaryCommandBuffers = VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS, + eInlineAndSecondaryCommandBuffersEXT = VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT }; //=== VK_VERSION_1_1 === @@ -3330,20 +3649,6 @@ namespace VULKAN_HPP_NAMESPACE }; using TessellationDomainOriginKHR = TessellationDomainOrigin; - enum class DeviceQueueCreateFlagBits : VkDeviceQueueCreateFlags - { - eProtected = VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT - }; - - using DeviceQueueCreateFlags = Flags; - - template <> - struct FlagTraits - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool isBitmask = true; - static VULKAN_HPP_CONST_OR_CONSTEXPR DeviceQueueCreateFlags allFlags = DeviceQueueCreateFlagBits::eProtected; - }; - enum class SamplerYcbcrModelConversion { eRgbIdentity = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY, @@ -3605,7 +3910,8 @@ namespace VULKAN_HPP_NAMESPACE eMesaVenus = VK_DRIVER_ID_MESA_VENUS, eMesaDozen = VK_DRIVER_ID_MESA_DOZEN, eMesaNvk = VK_DRIVER_ID_MESA_NVK, - eImaginationOpenSourceMESA = VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA + eImaginationOpenSourceMESA = VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA, + eMesaAgxv = VK_DRIVER_ID_MESA_AGXV }; using DriverIdKHR = DriverId; @@ -3644,7 +3950,10 @@ namespace VULKAN_HPP_NAMESPACE eSampleZero = VK_RESOLVE_MODE_SAMPLE_ZERO_BIT, eAverage = VK_RESOLVE_MODE_AVERAGE_BIT, eMin = VK_RESOLVE_MODE_MIN_BIT, - eMax = VK_RESOLVE_MODE_MAX_BIT + eMax = VK_RESOLVE_MODE_MAX_BIT, +#if defined( VK_USE_PLATFORM_ANDROID_KHR ) + eExternalFormatDownsampleANDROID = VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID +#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ }; using ResolveModeFlagBitsKHR = ResolveModeFlagBits; @@ -3655,15 +3964,20 @@ namespace VULKAN_HPP_NAMESPACE struct FlagTraits { static VULKAN_HPP_CONST_OR_CONSTEXPR bool isBitmask = true; - static VULKAN_HPP_CONST_OR_CONSTEXPR ResolveModeFlags allFlags = - ResolveModeFlagBits::eNone | ResolveModeFlagBits::eSampleZero | ResolveModeFlagBits::eAverage | ResolveModeFlagBits::eMin | ResolveModeFlagBits::eMax; + static VULKAN_HPP_CONST_OR_CONSTEXPR ResolveModeFlags allFlags = ResolveModeFlagBits::eNone | ResolveModeFlagBits::eSampleZero | + ResolveModeFlagBits::eAverage | ResolveModeFlagBits::eMin | ResolveModeFlagBits::eMax +#if defined( VK_USE_PLATFORM_ANDROID_KHR ) + | ResolveModeFlagBits::eExternalFormatDownsampleANDROID +#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ + ; }; enum class SamplerReductionMode { - eWeightedAverage = VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, - eMin = VK_SAMPLER_REDUCTION_MODE_MIN, - eMax = VK_SAMPLER_REDUCTION_MODE_MAX + eWeightedAverage = VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, + eMin = VK_SAMPLER_REDUCTION_MODE_MIN, + eMax = VK_SAMPLER_REDUCTION_MODE_MAX, + eWeightedAverageRangeclampQCOM = VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM }; using SamplerReductionModeEXT = SamplerReductionMode; @@ -3933,6 +4247,7 @@ namespace VULKAN_HPP_NAMESPACE eContentsSecondaryCommandBuffers = VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT, eSuspending = VK_RENDERING_SUSPENDING_BIT, eResuming = VK_RENDERING_RESUMING_BIT, + eContentsInlineEXT = VK_RENDERING_CONTENTS_INLINE_BIT_EXT, eEnableLegacyDitheringEXT = VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT }; using RenderingFlagBitsKHR = RenderingFlagBits; @@ -3945,7 +4260,8 @@ namespace VULKAN_HPP_NAMESPACE { static VULKAN_HPP_CONST_OR_CONSTEXPR bool isBitmask = true; static VULKAN_HPP_CONST_OR_CONSTEXPR RenderingFlags allFlags = RenderingFlagBits::eContentsSecondaryCommandBuffers | RenderingFlagBits::eSuspending | - RenderingFlagBits::eResuming | RenderingFlagBits::eEnableLegacyDitheringEXT; + RenderingFlagBits::eResuming | RenderingFlagBits::eContentsInlineEXT | + RenderingFlagBits::eEnableLegacyDitheringEXT; }; enum class FormatFeatureFlagBits2 : VkFormatFeatureFlags2 @@ -4487,7 +4803,10 @@ namespace VULKAN_HPP_NAMESPACE { eError = VK_QUERY_RESULT_STATUS_ERROR_KHR, eNotReady = VK_QUERY_RESULT_STATUS_NOT_READY_KHR, - eComplete = VK_QUERY_RESULT_STATUS_COMPLETE_KHR + eComplete = VK_QUERY_RESULT_STATUS_COMPLETE_KHR, +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + eInsufficientBitstreamBufferRange = VK_QUERY_RESULT_STATUS_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_KHR +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ }; enum class VideoSessionParametersCreateFlagBitsKHR : VkVideoSessionParametersCreateFlagsKHR @@ -4642,7 +4961,9 @@ namespace VULKAN_HPP_NAMESPACE eConstrainedIntraPredFlagSet = VK_VIDEO_ENCODE_H264_STD_CONSTRAINED_INTRA_PRED_FLAG_SET_BIT_EXT, eDeblockingFilterDisabled = VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_DISABLED_BIT_EXT, eDeblockingFilterEnabled = VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_ENABLED_BIT_EXT, - eDeblockingFilterPartial = VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_PARTIAL_BIT_EXT + eDeblockingFilterPartial = VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_PARTIAL_BIT_EXT, + eSliceQpDelta = VK_VIDEO_ENCODE_H264_STD_SLICE_QP_DELTA_BIT_EXT, + eDifferentSliceQpDelta = VK_VIDEO_ENCODE_H264_STD_DIFFERENT_SLICE_QP_DELTA_BIT_EXT }; using VideoEncodeH264StdFlagsEXT = Flags; @@ -4660,7 +4981,8 @@ namespace VULKAN_HPP_NAMESPACE VideoEncodeH264StdFlagBitsEXT::eDirectSpatialMvPredFlagUnset | VideoEncodeH264StdFlagBitsEXT::eEntropyCodingModeFlagUnset | VideoEncodeH264StdFlagBitsEXT::eEntropyCodingModeFlagSet | VideoEncodeH264StdFlagBitsEXT::eDirect8X8InferenceFlagUnset | VideoEncodeH264StdFlagBitsEXT::eConstrainedIntraPredFlagSet | VideoEncodeH264StdFlagBitsEXT::eDeblockingFilterDisabled | - VideoEncodeH264StdFlagBitsEXT::eDeblockingFilterEnabled | VideoEncodeH264StdFlagBitsEXT::eDeblockingFilterPartial; + VideoEncodeH264StdFlagBitsEXT::eDeblockingFilterEnabled | VideoEncodeH264StdFlagBitsEXT::eDeblockingFilterPartial | + VideoEncodeH264StdFlagBitsEXT::eSliceQpDelta | VideoEncodeH264StdFlagBitsEXT::eDifferentSliceQpDelta; }; enum class VideoEncodeH264RateControlFlagBitsEXT : VkVideoEncodeH264RateControlFlagsEXT @@ -4736,7 +5058,9 @@ namespace VULKAN_HPP_NAMESPACE eEntropyCodingSyncEnabledFlagSet = VK_VIDEO_ENCODE_H265_STD_ENTROPY_CODING_SYNC_ENABLED_FLAG_SET_BIT_EXT, eDeblockingFilterOverrideEnabledFlagSet = VK_VIDEO_ENCODE_H265_STD_DEBLOCKING_FILTER_OVERRIDE_ENABLED_FLAG_SET_BIT_EXT, eDependentSliceSegmentsEnabledFlagSet = VK_VIDEO_ENCODE_H265_STD_DEPENDENT_SLICE_SEGMENTS_ENABLED_FLAG_SET_BIT_EXT, - eDependentSliceSegmentFlagSet = VK_VIDEO_ENCODE_H265_STD_DEPENDENT_SLICE_SEGMENT_FLAG_SET_BIT_EXT + eDependentSliceSegmentFlagSet = VK_VIDEO_ENCODE_H265_STD_DEPENDENT_SLICE_SEGMENT_FLAG_SET_BIT_EXT, + eSliceQpDelta = VK_VIDEO_ENCODE_H265_STD_SLICE_QP_DELTA_BIT_EXT, + eDifferentSliceQpDelta = VK_VIDEO_ENCODE_H265_STD_DIFFERENT_SLICE_QP_DELTA_BIT_EXT }; using VideoEncodeH265StdFlagsEXT = Flags; @@ -4755,7 +5079,8 @@ namespace VULKAN_HPP_NAMESPACE VideoEncodeH265StdFlagBitsEXT::ePpsSliceChromaQpOffsetsPresentFlagSet | VideoEncodeH265StdFlagBitsEXT::eTransquantBypassEnabledFlagSet | VideoEncodeH265StdFlagBitsEXT::eConstrainedIntraPredFlagSet | VideoEncodeH265StdFlagBitsEXT::eEntropyCodingSyncEnabledFlagSet | VideoEncodeH265StdFlagBitsEXT::eDeblockingFilterOverrideEnabledFlagSet | VideoEncodeH265StdFlagBitsEXT::eDependentSliceSegmentsEnabledFlagSet | - VideoEncodeH265StdFlagBitsEXT::eDependentSliceSegmentFlagSet; + VideoEncodeH265StdFlagBitsEXT::eDependentSliceSegmentFlagSet | VideoEncodeH265StdFlagBitsEXT::eSliceQpDelta | + VideoEncodeH265StdFlagBitsEXT::eDifferentSliceQpDelta; }; enum class VideoEncodeH265CtbSizeFlagBitsEXT : VkVideoEncodeH265CtbSizeFlagsEXT @@ -5896,29 +6221,13 @@ namespace VULKAN_HPP_NAMESPACE static VULKAN_HPP_CONST_OR_CONSTEXPR DeviceMemoryReportFlagsEXT allFlags = {}; }; - //=== VK_EXT_pipeline_creation_cache_control === - - enum class PipelineCacheCreateFlagBits : VkPipelineCacheCreateFlags - { - eExternallySynchronized = VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT, - eExternallySynchronizedEXT = VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT - }; - - using PipelineCacheCreateFlags = Flags; - - template <> - struct FlagTraits - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool isBitmask = true; - static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineCacheCreateFlags allFlags = PipelineCacheCreateFlagBits::eExternallySynchronized; - }; - #if defined( VK_ENABLE_BETA_EXTENSIONS ) //=== VK_KHR_video_encode_queue === enum class VideoEncodeCapabilityFlagBitsKHR : VkVideoEncodeCapabilityFlagsKHR { - ePrecedingExternallyEncodedBytes = VK_VIDEO_ENCODE_CAPABILITY_PRECEDING_EXTERNALLY_ENCODED_BYTES_BIT_KHR + ePrecedingExternallyEncodedBytes = VK_VIDEO_ENCODE_CAPABILITY_PRECEDING_EXTERNALLY_ENCODED_BYTES_BIT_KHR, + eInsufficientstreamBufferRangeDetectionBit = VK_VIDEO_ENCODE_CAPABILITY_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_DETECTION_BIT_KHR }; using VideoEncodeCapabilityFlagsKHR = Flags; @@ -5927,7 +6236,8 @@ namespace VULKAN_HPP_NAMESPACE struct FlagTraits { static VULKAN_HPP_CONST_OR_CONSTEXPR bool isBitmask = true; - static VULKAN_HPP_CONST_OR_CONSTEXPR VideoEncodeCapabilityFlagsKHR allFlags = VideoEncodeCapabilityFlagBitsKHR::ePrecedingExternallyEncodedBytes; + static VULKAN_HPP_CONST_OR_CONSTEXPR VideoEncodeCapabilityFlagsKHR allFlags = + VideoEncodeCapabilityFlagBitsKHR::ePrecedingExternallyEncodedBytes | VideoEncodeCapabilityFlagBitsKHR::eInsufficientstreamBufferRangeDetectionBit; }; enum class VideoEncodeFeedbackFlagBitsKHR : VkVideoEncodeFeedbackFlagsKHR @@ -6109,20 +6419,6 @@ namespace VULKAN_HPP_NAMESPACE GraphicsPipelineLibraryFlagBitsEXT::eFragmentShader | GraphicsPipelineLibraryFlagBitsEXT::eFragmentOutputInterface; }; - enum class PipelineLayoutCreateFlagBits : VkPipelineLayoutCreateFlags - { - eIndependentSetsEXT = VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT - }; - - using PipelineLayoutCreateFlags = Flags; - - template <> - struct FlagTraits - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool isBitmask = true; - static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineLayoutCreateFlags allFlags = PipelineLayoutCreateFlagBits::eIndependentSetsEXT; - }; - //=== VK_NV_fragment_shading_rate_enums === enum class FragmentShadingRateNV @@ -6345,6 +6641,22 @@ namespace VULKAN_HPP_NAMESPACE }; #endif /*VK_USE_PLATFORM_FUCHSIA*/ + //=== VK_EXT_frame_boundary === + + enum class FrameBoundaryFlagBitsEXT : VkFrameBoundaryFlagsEXT + { + eFrameEnd = VK_FRAME_BOUNDARY_FRAME_END_BIT_EXT + }; + + using FrameBoundaryFlagsEXT = Flags; + + template <> + struct FlagTraits + { + static VULKAN_HPP_CONST_OR_CONSTEXPR bool isBitmask = true; + static VULKAN_HPP_CONST_OR_CONSTEXPR FrameBoundaryFlagsEXT allFlags = FrameBoundaryFlagBitsEXT::eFrameEnd; + }; + #if defined( VK_USE_PLATFORM_SCREEN_QNX ) //=== VK_QNX_screen_surface === @@ -6498,43 +6810,6 @@ namespace VULKAN_HPP_NAMESPACE static VULKAN_HPP_CONST_OR_CONSTEXPR DirectDriverLoadingFlagsLUNARG allFlags = {}; }; - //=== VK_EXT_rasterization_order_attachment_access === - - enum class PipelineColorBlendStateCreateFlagBits : VkPipelineColorBlendStateCreateFlags - { - eRasterizationOrderAttachmentAccessARM = VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM, - eRasterizationOrderAttachmentAccessEXT = VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT - }; - - using PipelineColorBlendStateCreateFlags = Flags; - - template <> - struct FlagTraits - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool isBitmask = true; - static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineColorBlendStateCreateFlags allFlags = - PipelineColorBlendStateCreateFlagBits::eRasterizationOrderAttachmentAccessEXT; - }; - - enum class PipelineDepthStencilStateCreateFlagBits : VkPipelineDepthStencilStateCreateFlags - { - eRasterizationOrderAttachmentDepthAccessARM = VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM, - eRasterizationOrderAttachmentStencilAccessARM = VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM, - eRasterizationOrderAttachmentDepthAccessEXT = VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT, - eRasterizationOrderAttachmentStencilAccessEXT = VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT - }; - - using PipelineDepthStencilStateCreateFlags = Flags; - - template <> - struct FlagTraits - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool isBitmask = true; - static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineDepthStencilStateCreateFlags allFlags = - PipelineDepthStencilStateCreateFlagBits::eRasterizationOrderAttachmentDepthAccessEXT | - PipelineDepthStencilStateCreateFlagBits::eRasterizationOrderAttachmentStencilAccessEXT; - }; - //=== VK_NV_optical_flow === enum class OpticalFlowUsageFlagBitsNV : VkOpticalFlowUsageFlagsNV @@ -6793,6 +7068,30 @@ namespace VULKAN_HPP_NAMESPACE eReorder = VK_RAY_TRACING_INVOCATION_REORDER_MODE_REORDER_NV }; + //=== VK_NV_low_latency2 === + + enum class LatencyMarkerNV + { + eSimulationStart = VK_LATENCY_MARKER_SIMULATION_START_NV, + eSimulationEnd = VK_LATENCY_MARKER_SIMULATION_END_NV, + eRendersubmitStart = VK_LATENCY_MARKER_RENDERSUBMIT_START_NV, + eRendersubmitEnd = VK_LATENCY_MARKER_RENDERSUBMIT_END_NV, + ePresentStart = VK_LATENCY_MARKER_PRESENT_START_NV, + ePresentEnd = VK_LATENCY_MARKER_PRESENT_END_NV, + eInputSample = VK_LATENCY_MARKER_INPUT_SAMPLE_NV, + eTriggerFlash = VK_LATENCY_MARKER_TRIGGER_FLASH_NV, + eOutOfBandRendersubmitStart = VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_START_NV, + eOutOfBandRendersubmitEnd = VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_END_NV, + eOutOfBandPresentStart = VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_START_NV, + eOutOfBandPresentEnd = VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_END_NV + }; + + enum class OutOfBandQueueTypeNV + { + eRender = VK_OUT_OF_BAND_QUEUE_TYPE_RENDER_NV, + ePresent = VK_OUT_OF_BAND_QUEUE_TYPE_PRESENT_NV + }; + //=== VK_KHR_cooperative_matrix === enum class ScopeKHR @@ -6820,6 +7119,32 @@ namespace VULKAN_HPP_NAMESPACE }; using ComponentTypeNV = ComponentTypeKHR; + //=== VK_QCOM_image_processing2 === + + enum class BlockMatchWindowCompareModeQCOM + { + eMin = VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MIN_QCOM, + eMax = VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MAX_QCOM + }; + + //=== VK_QCOM_filter_cubic_weights === + + enum class CubicFilterWeightsQCOM + { + eCatmullRom = VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM, + eZeroTangentCardinal = VK_CUBIC_FILTER_WEIGHTS_ZERO_TANGENT_CARDINAL_QCOM, + eBSpline = VK_CUBIC_FILTER_WEIGHTS_B_SPLINE_QCOM, + eMitchellNetravali = VK_CUBIC_FILTER_WEIGHTS_MITCHELL_NETRAVALI_QCOM + }; + + //=== VK_MSFT_layered_driver === + + enum class LayeredDriverUnderlyingApiMSFT + { + eNone = VK_LAYERED_DRIVER_UNDERLYING_API_NONE_MSFT, + eD3D12 = VK_LAYERED_DRIVER_UNDERLYING_API_D3D12_MSFT + }; + //========================= //=== Index Type Traits === //========================= @@ -6865,5 +7190,124 @@ namespace VULKAN_HPP_NAMESPACE using Type = uint8_t; }; + //=========================================================== + //=== Mapping from ObjectType to DebugReportObjectTypeEXT === + //=========================================================== + + VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType( VULKAN_HPP_NAMESPACE::ObjectType objectType ) + { + switch ( objectType ) + { + //=== VK_VERSION_1_0 === + case VULKAN_HPP_NAMESPACE::ObjectType::eInstance: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eInstance; + case VULKAN_HPP_NAMESPACE::ObjectType::ePhysicalDevice: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePhysicalDevice; + case VULKAN_HPP_NAMESPACE::ObjectType::eDevice: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDevice; + case VULKAN_HPP_NAMESPACE::ObjectType::eQueue: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eQueue; + case VULKAN_HPP_NAMESPACE::ObjectType::eDeviceMemory: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDeviceMemory; + case VULKAN_HPP_NAMESPACE::ObjectType::eFence: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eFence; + case VULKAN_HPP_NAMESPACE::ObjectType::eSemaphore: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSemaphore; + case VULKAN_HPP_NAMESPACE::ObjectType::eEvent: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eEvent; + case VULKAN_HPP_NAMESPACE::ObjectType::eQueryPool: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eQueryPool; + case VULKAN_HPP_NAMESPACE::ObjectType::eBuffer: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eBuffer; + case VULKAN_HPP_NAMESPACE::ObjectType::eBufferView: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eBufferView; + case VULKAN_HPP_NAMESPACE::ObjectType::eImage: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eImage; + case VULKAN_HPP_NAMESPACE::ObjectType::eImageView: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eImageView; + case VULKAN_HPP_NAMESPACE::ObjectType::eShaderModule: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eShaderModule; + case VULKAN_HPP_NAMESPACE::ObjectType::ePipelineCache: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePipelineCache; + case VULKAN_HPP_NAMESPACE::ObjectType::ePipeline: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePipeline; + case VULKAN_HPP_NAMESPACE::ObjectType::ePipelineLayout: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePipelineLayout; + case VULKAN_HPP_NAMESPACE::ObjectType::eSampler: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSampler; + case VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorPool: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorPool; + case VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorSet: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorSet; + case VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorSetLayout: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorSetLayout; + case VULKAN_HPP_NAMESPACE::ObjectType::eFramebuffer: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eFramebuffer; + case VULKAN_HPP_NAMESPACE::ObjectType::eRenderPass: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eRenderPass; + case VULKAN_HPP_NAMESPACE::ObjectType::eCommandPool: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCommandPool; + case VULKAN_HPP_NAMESPACE::ObjectType::eCommandBuffer: + return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCommandBuffer; + + //=== VK_VERSION_1_1 === + case VULKAN_HPP_NAMESPACE::ObjectType::eSamplerYcbcrConversion: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSamplerYcbcrConversion; + case VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorUpdateTemplate: + return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorUpdateTemplate; + + //=== VK_VERSION_1_3 === + case VULKAN_HPP_NAMESPACE::ObjectType::ePrivateDataSlot: + return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown; + + //=== VK_KHR_surface === + case VULKAN_HPP_NAMESPACE::ObjectType::eSurfaceKHR: + return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSurfaceKHR; + + //=== VK_KHR_swapchain === + case VULKAN_HPP_NAMESPACE::ObjectType::eSwapchainKHR: + return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSwapchainKHR; + + //=== VK_KHR_display === + case VULKAN_HPP_NAMESPACE::ObjectType::eDisplayKHR: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDisplayKHR; + case VULKAN_HPP_NAMESPACE::ObjectType::eDisplayModeKHR: + return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDisplayModeKHR; + + //=== VK_EXT_debug_report === + case VULKAN_HPP_NAMESPACE::ObjectType::eDebugReportCallbackEXT: + return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDebugReportCallbackEXT; + + //=== VK_KHR_video_queue === + case VULKAN_HPP_NAMESPACE::ObjectType::eVideoSessionKHR: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown; + case VULKAN_HPP_NAMESPACE::ObjectType::eVideoSessionParametersKHR: + return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown; + + //=== VK_NVX_binary_import === + case VULKAN_HPP_NAMESPACE::ObjectType::eCuModuleNVX: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCuModuleNVX; + case VULKAN_HPP_NAMESPACE::ObjectType::eCuFunctionNVX: + return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCuFunctionNVX; + + //=== VK_EXT_debug_utils === + case VULKAN_HPP_NAMESPACE::ObjectType::eDebugUtilsMessengerEXT: + return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown; + + //=== VK_KHR_acceleration_structure === + case VULKAN_HPP_NAMESPACE::ObjectType::eAccelerationStructureKHR: + return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eAccelerationStructureKHR; + + //=== VK_EXT_validation_cache === + case VULKAN_HPP_NAMESPACE::ObjectType::eValidationCacheEXT: + return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eValidationCacheEXT; + + //=== VK_NV_ray_tracing === + case VULKAN_HPP_NAMESPACE::ObjectType::eAccelerationStructureNV: + return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eAccelerationStructureNV; + + //=== VK_INTEL_performance_query === + case VULKAN_HPP_NAMESPACE::ObjectType::ePerformanceConfigurationINTEL: + return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown; + + //=== VK_KHR_deferred_host_operations === + case VULKAN_HPP_NAMESPACE::ObjectType::eDeferredOperationKHR: + return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown; + + //=== VK_NV_device_generated_commands === + case VULKAN_HPP_NAMESPACE::ObjectType::eIndirectCommandsLayoutNV: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown; + +#if defined( VK_USE_PLATFORM_FUCHSIA ) + //=== VK_FUCHSIA_buffer_collection === + case VULKAN_HPP_NAMESPACE::ObjectType::eBufferCollectionFUCHSIA: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eBufferCollectionFUCHSIA; +#endif /*VK_USE_PLATFORM_FUCHSIA*/ + + //=== VK_EXT_opacity_micromap === + case VULKAN_HPP_NAMESPACE::ObjectType::eMicromapEXT: + return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown; + + //=== VK_NV_optical_flow === + case VULKAN_HPP_NAMESPACE::ObjectType::eOpticalFlowSessionNV: + return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown; + + //=== VK_EXT_shader_object === + case VULKAN_HPP_NAMESPACE::ObjectType::eShaderEXT: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown; + + default: VULKAN_HPP_ASSERT( false && "unknown ObjectType" ); return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown; + } + } + } // namespace VULKAN_HPP_NAMESPACE #endif diff --git a/deps/vulkan-headers/include/vulkan/vulkan_extension_inspection.hpp b/deps/vulkan-headers/include/vulkan/vulkan_extension_inspection.hpp index 548a32fc..d010468e 100644 --- a/deps/vulkan-headers/include/vulkan/vulkan_extension_inspection.hpp +++ b/deps/vulkan-headers/include/vulkan/vulkan_extension_inspection.hpp @@ -343,6 +343,7 @@ namespace VULKAN_HPP_NAMESPACE "VK_HUAWEI_invocation_mask", "VK_NV_external_memory_rdma", "VK_EXT_pipeline_properties", +"VK_EXT_frame_boundary", "VK_EXT_multisampled_render_to_single_sampled", "VK_EXT_extended_dynamic_state2", "VK_EXT_color_write_enable", @@ -374,6 +375,7 @@ namespace VULKAN_HPP_NAMESPACE "VK_NV_linear_color_attachment", "VK_EXT_image_compression_control_swapchain", "VK_QCOM_image_processing", +"VK_EXT_nested_command_buffer", "VK_EXT_external_memory_acquire_unmodified", "VK_EXT_extended_dynamic_state3", "VK_EXT_subpass_merge_feedback", @@ -381,7 +383,10 @@ namespace VULKAN_HPP_NAMESPACE "VK_EXT_rasterization_order_attachment_access", "VK_NV_optical_flow", "VK_EXT_legacy_dithering", -"VK_EXT_pipeline_protected_access", +"VK_EXT_pipeline_protected_access", +#if defined( VK_USE_PLATFORM_ANDROID_KHR ) +"VK_ANDROID_external_format_resolve", +#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ "VK_KHR_maintenance5", "VK_KHR_ray_tracing_position_fetch", "VK_EXT_shader_object", @@ -389,17 +394,24 @@ namespace VULKAN_HPP_NAMESPACE "VK_SEC_amigo_profiling", "VK_QCOM_multiview_per_view_viewports", "VK_NV_ray_tracing_invocation_reorder", +"VK_NV_extended_sparse_address_space", "VK_EXT_mutable_descriptor_type", "VK_ARM_shader_core_builtins", "VK_EXT_pipeline_library_group_handles", "VK_EXT_dynamic_rendering_unused_attachments", +"VK_NV_low_latency2", "VK_KHR_cooperative_matrix", "VK_QCOM_multiview_per_view_render_areas", +"VK_QCOM_image_processing2", +"VK_QCOM_filter_cubic_weights", +"VK_QCOM_ycbcr_degamma", +"VK_QCOM_filter_cubic_clamp", "VK_EXT_attachment_feedback_loop_dynamic_state", #if defined( VK_USE_PLATFORM_SCREEN_QNX ) -"VK_QNX_external_memory_screen_buffer" +"VK_QNX_external_memory_screen_buffer", #endif /*VK_USE_PLATFORM_SCREEN_QNX*/ - }; +"VK_MSFT_layered_driver", +"VK_NV_descriptor_pool_overallocation" }; return deviceExtensions; } @@ -773,6 +785,7 @@ namespace VULKAN_HPP_NAMESPACE { "VK_GOOGLE_surfaceless_query", { { "VK_VERSION_1_0", { { "VK_KHR_surface", } } } } }, { "VK_EXT_image_compression_control_swapchain", { { "VK_VERSION_1_0", { { "VK_EXT_image_compression_control", } } } } }, { "VK_QCOM_image_processing", { { "VK_VERSION_1_0", { { "VK_KHR_format_feature_flags2", } } } } }, +{ "VK_EXT_nested_command_buffer", { { "VK_VERSION_1_0", { { "VK_KHR_get_physical_device_properties2", } } } } }, { "VK_EXT_external_memory_acquire_unmodified", { { "VK_VERSION_1_0", { { "VK_KHR_external_memory", } } } } }, { "VK_EXT_extended_dynamic_state3", { { "VK_VERSION_1_0", { { "VK_KHR_get_physical_device_properties2", } } } } }, { "VK_EXT_subpass_merge_feedback", { { "VK_VERSION_1_0", { { "VK_KHR_get_physical_device_properties2", } } } } }, @@ -780,7 +793,10 @@ namespace VULKAN_HPP_NAMESPACE { "VK_EXT_rasterization_order_attachment_access", { { "VK_VERSION_1_0", { { "VK_KHR_get_physical_device_properties2", } } } } }, { "VK_NV_optical_flow", { { "VK_VERSION_1_0", { { "VK_KHR_get_physical_device_properties2", "VK_KHR_format_feature_flags2", "VK_KHR_synchronization2", } } } } }, { "VK_EXT_legacy_dithering", { { "VK_VERSION_1_0", { { "VK_KHR_get_physical_device_properties2", } } } } }, -{ "VK_EXT_pipeline_protected_access", { { "VK_VERSION_1_0", { { "VK_KHR_get_physical_device_properties2", } } } } }, +{ "VK_EXT_pipeline_protected_access", { { "VK_VERSION_1_0", { { "VK_KHR_get_physical_device_properties2", } } } } }, +#if defined( VK_USE_PLATFORM_ANDROID_KHR ) +{ "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_KHR_ray_tracing_position_fetch", { { "VK_VERSION_1_0", { { "VK_KHR_acceleration_structure", } } } } }, { "VK_EXT_shader_object", { { "VK_VERSION_1_0", { { "VK_KHR_get_physical_device_properties2", "VK_KHR_dynamic_rendering", } } }, { "VK_VERSION_1_1", { { "VK_KHR_dynamic_rendering", } } }, { "VK_VERSION_1_3", { { } } } } }, @@ -793,11 +809,15 @@ namespace VULKAN_HPP_NAMESPACE { "VK_EXT_pipeline_library_group_handles", { { "VK_VERSION_1_0", { { "VK_KHR_ray_tracing_pipeline", "VK_KHR_pipeline_library", } } } } }, { "VK_EXT_dynamic_rendering_unused_attachments", { { "VK_VERSION_1_0", { { "VK_KHR_get_physical_device_properties2", "VK_KHR_dynamic_rendering", } } }, { "VK_VERSION_1_1", { { "VK_KHR_dynamic_rendering", } } }, { "VK_VERSION_1_3", { { } } } } }, { "VK_KHR_cooperative_matrix", { { "VK_VERSION_1_0", { { "VK_KHR_get_physical_device_properties2", } } } } }, +{ "VK_QCOM_image_processing2", { { "VK_VERSION_1_0", { { "VK_QCOM_image_processing", } } } } }, +{ "VK_QCOM_filter_cubic_weights", { { "VK_VERSION_1_0", { { "VK_EXT_filter_cubic", } } } } }, +{ "VK_QCOM_filter_cubic_clamp", { { "VK_VERSION_1_0", { { "VK_EXT_filter_cubic", "VK_EXT_sampler_filter_minmax", } } }, { "VK_VERSION_1_2", { { "VK_EXT_filter_cubic", } } } } }, { "VK_EXT_attachment_feedback_loop_dynamic_state", { { "VK_VERSION_1_0", { { "VK_KHR_get_physical_device_properties2", "VK_EXT_attachment_feedback_loop_layout", } } } } }, #if defined( VK_USE_PLATFORM_SCREEN_QNX ) -{ "VK_QNX_external_memory_screen_buffer", { { "VK_VERSION_1_0", { { "VK_KHR_sampler_ycbcr_conversion", "VK_KHR_external_memory", "VK_KHR_dedicated_allocation", } } }, { "VK_VERSION_1_1", { { "VK_EXT_queue_family_foreign", } } } } } +{ "VK_QNX_external_memory_screen_buffer", { { "VK_VERSION_1_0", { { "VK_KHR_sampler_ycbcr_conversion", "VK_KHR_external_memory", "VK_KHR_dedicated_allocation", } } }, { "VK_VERSION_1_1", { { "VK_EXT_queue_family_foreign", } } } } }, #endif /*VK_USE_PLATFORM_SCREEN_QNX*/ - }; +{ "VK_MSFT_layered_driver", { { "VK_VERSION_1_0", { { "VK_KHR_get_physical_device_properties2", } } } } }, +{ "VK_NV_descriptor_pool_overallocation", { { "VK_VERSION_1_1", { { } } } } } }; auto depIt = dependencies.find( extension ); return ( depIt != dependencies.end() ) ? depIt->second : noDependencies; } @@ -1486,11 +1506,12 @@ namespace VULKAN_HPP_NAMESPACE ( extension == "VK_FUCHSIA_buffer_collection" ) #endif /*VK_USE_PLATFORM_FUCHSIA*/ || ( extension == "VK_HUAWEI_subpass_shading" ) || ( extension == "VK_HUAWEI_invocation_mask" ) || ( extension == "VK_NV_external_memory_rdma" ) || - ( extension == "VK_EXT_pipeline_properties" ) || ( extension == "VK_EXT_multisampled_render_to_single_sampled" ) || - ( extension == "VK_EXT_extended_dynamic_state2" ) || ( extension == "VK_EXT_color_write_enable" ) || - ( extension == "VK_EXT_primitives_generated_query" ) || ( extension == "VK_KHR_ray_tracing_maintenance1" ) || - ( extension == "VK_EXT_global_priority_query" ) || ( extension == "VK_EXT_image_view_min_lod" ) || ( extension == "VK_EXT_multi_draw" ) || - ( extension == "VK_EXT_image_2d_view_of_3d" ) || ( extension == "VK_EXT_shader_tile_image" ) || ( extension == "VK_EXT_opacity_micromap" ) + ( extension == "VK_EXT_pipeline_properties" ) || ( extension == "VK_EXT_frame_boundary" ) || + ( extension == "VK_EXT_multisampled_render_to_single_sampled" ) || ( extension == "VK_EXT_extended_dynamic_state2" ) || + ( extension == "VK_EXT_color_write_enable" ) || ( extension == "VK_EXT_primitives_generated_query" ) || + ( extension == "VK_KHR_ray_tracing_maintenance1" ) || ( extension == "VK_EXT_global_priority_query" ) || + ( extension == "VK_EXT_image_view_min_lod" ) || ( extension == "VK_EXT_multi_draw" ) || ( extension == "VK_EXT_image_2d_view_of_3d" ) || + ( extension == "VK_EXT_shader_tile_image" ) || ( extension == "VK_EXT_opacity_micromap" ) #if defined( VK_ENABLE_BETA_EXTENSIONS ) || ( extension == "VK_NV_displacement_micromap" ) #endif /*VK_ENABLE_BETA_EXTENSIONS*/ @@ -1502,20 +1523,26 @@ namespace VULKAN_HPP_NAMESPACE ( extension == "VK_NV_copy_memory_indirect" ) || ( extension == "VK_NV_memory_decompression" ) || ( extension == "VK_NV_device_generated_commands_compute" ) || ( extension == "VK_NV_linear_color_attachment" ) || ( extension == "VK_EXT_image_compression_control_swapchain" ) || ( extension == "VK_QCOM_image_processing" ) || - ( extension == "VK_EXT_external_memory_acquire_unmodified" ) || ( extension == "VK_EXT_extended_dynamic_state3" ) || - ( extension == "VK_EXT_subpass_merge_feedback" ) || ( extension == "VK_EXT_shader_module_identifier" ) || - ( extension == "VK_EXT_rasterization_order_attachment_access" ) || ( extension == "VK_NV_optical_flow" ) || - ( extension == "VK_EXT_legacy_dithering" ) || ( extension == "VK_EXT_pipeline_protected_access" ) || ( extension == "VK_KHR_maintenance5" ) || - ( extension == "VK_KHR_ray_tracing_position_fetch" ) || ( extension == "VK_EXT_shader_object" ) || ( extension == "VK_QCOM_tile_properties" ) || - ( extension == "VK_SEC_amigo_profiling" ) || ( extension == "VK_QCOM_multiview_per_view_viewports" ) || - ( extension == "VK_NV_ray_tracing_invocation_reorder" ) || ( extension == "VK_EXT_mutable_descriptor_type" ) || - ( extension == "VK_ARM_shader_core_builtins" ) || ( extension == "VK_EXT_pipeline_library_group_handles" ) || - ( extension == "VK_EXT_dynamic_rendering_unused_attachments" ) || ( extension == "VK_KHR_cooperative_matrix" ) || - ( extension == "VK_QCOM_multiview_per_view_render_areas" ) || ( extension == "VK_EXT_attachment_feedback_loop_dynamic_state" ) + ( extension == "VK_EXT_nested_command_buffer" ) || ( extension == "VK_EXT_external_memory_acquire_unmodified" ) || + ( extension == "VK_EXT_extended_dynamic_state3" ) || ( extension == "VK_EXT_subpass_merge_feedback" ) || + ( extension == "VK_EXT_shader_module_identifier" ) || ( extension == "VK_EXT_rasterization_order_attachment_access" ) || + ( extension == "VK_NV_optical_flow" ) || ( extension == "VK_EXT_legacy_dithering" ) || ( extension == "VK_EXT_pipeline_protected_access" ) +#if defined( VK_USE_PLATFORM_ANDROID_KHR ) + || ( extension == "VK_ANDROID_external_format_resolve" ) +#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ + || ( extension == "VK_KHR_maintenance5" ) || ( extension == "VK_KHR_ray_tracing_position_fetch" ) || ( extension == "VK_EXT_shader_object" ) || + ( extension == "VK_QCOM_tile_properties" ) || ( extension == "VK_SEC_amigo_profiling" ) || ( extension == "VK_QCOM_multiview_per_view_viewports" ) || + ( extension == "VK_NV_ray_tracing_invocation_reorder" ) || ( extension == "VK_NV_extended_sparse_address_space" ) || + ( extension == "VK_EXT_mutable_descriptor_type" ) || ( extension == "VK_ARM_shader_core_builtins" ) || + ( extension == "VK_EXT_pipeline_library_group_handles" ) || ( extension == "VK_EXT_dynamic_rendering_unused_attachments" ) || + ( extension == "VK_NV_low_latency2" ) || ( extension == "VK_KHR_cooperative_matrix" ) || + ( extension == "VK_QCOM_multiview_per_view_render_areas" ) || ( extension == "VK_QCOM_image_processing2" ) || + ( extension == "VK_QCOM_filter_cubic_weights" ) || ( extension == "VK_QCOM_ycbcr_degamma" ) || ( extension == "VK_QCOM_filter_cubic_clamp" ) || + ( extension == "VK_EXT_attachment_feedback_loop_dynamic_state" ) #if defined( VK_USE_PLATFORM_SCREEN_QNX ) || ( extension == "VK_QNX_external_memory_screen_buffer" ) #endif /*VK_USE_PLATFORM_SCREEN_QNX*/ - ; + || ( extension == "VK_MSFT_layered_driver" ) || ( extension == "VK_NV_descriptor_pool_overallocation" ); } VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_20 bool isInstanceExtension( std::string const & extension ) diff --git a/deps/vulkan-headers/include/vulkan/vulkan_funcs.hpp b/deps/vulkan-headers/include/vulkan/vulkan_funcs.hpp index 1ab87369..32715f8d 100644 --- a/deps/vulkan-headers/include/vulkan/vulkan_funcs.hpp +++ b/deps/vulkan-headers/include/vulkan/vulkan_funcs.hpp @@ -19495,6 +19495,17 @@ namespace VULKAN_HPP_NAMESPACE } #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void Device::getDescriptorEXT( const VULKAN_HPP_NAMESPACE::DescriptorGetInfoEXT & descriptorInfo, + size_t dataSize, + void * pDescriptor, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION ); + + d.vkGetDescriptorEXT( m_device, reinterpret_cast( &descriptorInfo ), dataSize, pDescriptor ); + } + template VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE DescriptorType Device::getDescriptorEXT( const VULKAN_HPP_NAMESPACE::DescriptorGetInfoEXT & descriptorInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT @@ -22786,6 +22797,126 @@ namespace VULKAN_HPP_NAMESPACE } #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ + //=== VK_NV_low_latency2 === + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::setLatencySleepModeNV( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, + const VULKAN_HPP_NAMESPACE::LatencySleepModeInfoNV * pSleepModeInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION ); + return static_cast( + d.vkSetLatencySleepModeNV( m_device, static_cast( swapchain ), reinterpret_cast( pSleepModeInfo ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE typename ResultValueType::type Device::setLatencySleepModeNV( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, + const VULKAN_HPP_NAMESPACE::LatencySleepModeInfoNV & sleepModeInfo, + Dispatch const & d ) const + { + VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION ); + + VkResult result = + d.vkSetLatencySleepModeNV( m_device, static_cast( swapchain ), reinterpret_cast( &sleepModeInfo ) ); + resultCheck( static_cast( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::setLatencySleepModeNV" ); + + return createResultValueType( static_cast( result ) ); + } +#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::latencySleepNV( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, + const VULKAN_HPP_NAMESPACE::LatencySleepInfoNV * pSleepInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION ); + return static_cast( + d.vkLatencySleepNV( m_device, static_cast( swapchain ), reinterpret_cast( pSleepInfo ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE typename ResultValueType::type + Device::latencySleepNV( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, const VULKAN_HPP_NAMESPACE::LatencySleepInfoNV & sleepInfo, Dispatch const & d ) const + { + VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION ); + + VkResult result = d.vkLatencySleepNV( m_device, static_cast( swapchain ), reinterpret_cast( &sleepInfo ) ); + resultCheck( static_cast( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::latencySleepNV" ); + + return createResultValueType( static_cast( result ) ); + } +#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ + + template + VULKAN_HPP_INLINE void Device::setLatencyMarkerNV( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, + const VULKAN_HPP_NAMESPACE::SetLatencyMarkerInfoNV * pLatencyMarkerInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION ); + d.vkSetLatencyMarkerNV( m_device, static_cast( swapchain ), reinterpret_cast( pLatencyMarkerInfo ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void Device::setLatencyMarkerNV( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, + const VULKAN_HPP_NAMESPACE::SetLatencyMarkerInfoNV & latencyMarkerInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION ); + + d.vkSetLatencyMarkerNV( m_device, static_cast( swapchain ), reinterpret_cast( &latencyMarkerInfo ) ); + } +#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ + + template + VULKAN_HPP_INLINE void Device::getLatencyTimingsNV( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, + uint32_t * pTimingCount, + VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV * pLatencyMarkerInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION ); + d.vkGetLatencyTimingsNV( + m_device, static_cast( swapchain ), pTimingCount, reinterpret_cast( pLatencyMarkerInfo ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::pair + Device::getLatencyTimingsNV( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION ); + + std::pair data_; + uint32_t & timingCount = data_.first; + VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV & latencyMarkerInfo = data_.second; + d.vkGetLatencyTimingsNV( + m_device, static_cast( swapchain ), &timingCount, reinterpret_cast( &latencyMarkerInfo ) ); + + return data_; + } +#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ + + template + VULKAN_HPP_INLINE void Queue::notifyOutOfBandNV( const VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeInfoNV * pQueueTypeInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION ); + d.vkQueueNotifyOutOfBandNV( m_queue, reinterpret_cast( pQueueTypeInfo ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void Queue::notifyOutOfBandNV( const VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeInfoNV & queueTypeInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION ); + + d.vkQueueNotifyOutOfBandNV( m_queue, reinterpret_cast( &queueTypeInfo ) ); + } +#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ + //=== VK_KHR_cooperative_matrix === template diff --git a/deps/vulkan-headers/include/vulkan/vulkan_handles.hpp b/deps/vulkan-headers/include/vulkan/vulkan_handles.hpp index 9e7304f9..33256168 100644 --- a/deps/vulkan-headers/include/vulkan/vulkan_handles.hpp +++ b/deps/vulkan-headers/include/vulkan/vulkan_handles.hpp @@ -1438,6 +1438,10 @@ namespace VULKAN_HPP_NAMESPACE struct PipelinePropertiesIdentifierEXT; struct PhysicalDevicePipelinePropertiesFeaturesEXT; + //=== VK_EXT_frame_boundary === + struct PhysicalDeviceFrameBoundaryFeaturesEXT; + struct FrameBoundaryEXT; + //=== VK_EXT_multisampled_render_to_single_sampled === struct PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT; struct SubpassResolvePerformanceQueryEXT; @@ -1562,6 +1566,10 @@ namespace VULKAN_HPP_NAMESPACE struct PhysicalDeviceImageProcessingFeaturesQCOM; struct PhysicalDeviceImageProcessingPropertiesQCOM; + //=== VK_EXT_nested_command_buffer === + struct PhysicalDeviceNestedCommandBufferFeaturesEXT; + struct PhysicalDeviceNestedCommandBufferPropertiesEXT; + //=== VK_EXT_external_memory_acquire_unmodified === struct ExternalMemoryAcquireUnmodifiedEXT; @@ -1608,6 +1616,13 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_EXT_pipeline_protected_access === struct PhysicalDevicePipelineProtectedAccessFeaturesEXT; +#if defined( VK_USE_PLATFORM_ANDROID_KHR ) + //=== VK_ANDROID_external_format_resolve === + struct PhysicalDeviceExternalFormatResolveFeaturesANDROID; + struct PhysicalDeviceExternalFormatResolvePropertiesANDROID; + struct AndroidHardwareBufferFormatResolvePropertiesANDROID; +#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ + //=== VK_KHR_maintenance5 === struct PhysicalDeviceMaintenance5FeaturesKHR; struct PhysicalDeviceMaintenance5PropertiesKHR; @@ -1643,6 +1658,10 @@ namespace VULKAN_HPP_NAMESPACE struct PhysicalDeviceRayTracingInvocationReorderPropertiesNV; struct PhysicalDeviceRayTracingInvocationReorderFeaturesNV; + //=== VK_NV_extended_sparse_address_space === + struct PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV; + struct PhysicalDeviceExtendedSparseAddressSpacePropertiesNV; + //=== VK_EXT_mutable_descriptor_type === struct PhysicalDeviceMutableDescriptorTypeFeaturesEXT; using PhysicalDeviceMutableDescriptorTypeFeaturesVALVE = PhysicalDeviceMutableDescriptorTypeFeaturesEXT; @@ -1661,6 +1680,17 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_EXT_dynamic_rendering_unused_attachments === struct PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT; + //=== VK_NV_low_latency2 === + struct LatencySleepModeInfoNV; + struct LatencySleepInfoNV; + struct SetLatencyMarkerInfoNV; + struct GetLatencyMarkerInfoNV; + struct LatencyTimingsFrameReportNV; + struct LatencySubmissionPresentIdNV; + struct SwapchainLatencyCreateInfoNV; + struct OutOfBandQueueTypeInfoNV; + struct LatencySurfaceCapabilitiesNV; + //=== VK_KHR_cooperative_matrix === struct CooperativeMatrixPropertiesKHR; struct PhysicalDeviceCooperativeMatrixFeaturesKHR; @@ -1670,6 +1700,23 @@ namespace VULKAN_HPP_NAMESPACE struct PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM; struct MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM; + //=== VK_QCOM_image_processing2 === + struct PhysicalDeviceImageProcessing2FeaturesQCOM; + struct PhysicalDeviceImageProcessing2PropertiesQCOM; + struct SamplerBlockMatchWindowCreateInfoQCOM; + + //=== VK_QCOM_filter_cubic_weights === + struct PhysicalDeviceCubicWeightsFeaturesQCOM; + struct SamplerCubicWeightsCreateInfoQCOM; + struct BlitImageCubicWeightsInfoQCOM; + + //=== VK_QCOM_ycbcr_degamma === + struct PhysicalDeviceYcbcrDegammaFeaturesQCOM; + struct SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM; + + //=== VK_QCOM_filter_cubic_clamp === + struct PhysicalDeviceCubicClampFeaturesQCOM; + //=== VK_EXT_attachment_feedback_loop_dynamic_state === struct PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT; @@ -1682,6 +1729,12 @@ namespace VULKAN_HPP_NAMESPACE struct PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX; #endif /*VK_USE_PLATFORM_SCREEN_QNX*/ + //=== VK_MSFT_layered_driver === + struct PhysicalDeviceLayeredDriverPropertiesMSFT; + + //=== VK_NV_descriptor_pool_overallocation === + struct PhysicalDeviceDescriptorPoolOverallocationFeaturesNV; + //=================================== //=== HANDLE forward declarations === //=================================== @@ -8173,6 +8226,17 @@ namespace VULKAN_HPP_NAMESPACE getCheckpointData2NV( CheckpointData2NVAllocator & checkpointData2NVAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ + //=== VK_NV_low_latency2 === + + template + void notifyOutOfBandNV( const VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeInfoNV * pQueueTypeInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void notifyOutOfBandNV( const VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeInfoNV & queueTypeInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ + operator VkQueue() const VULKAN_HPP_NOEXCEPT { return m_queue; @@ -12363,6 +12427,11 @@ namespace VULKAN_HPP_NAMESPACE void * pDescriptor, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void getDescriptorEXT( const VULKAN_HPP_NAMESPACE::DescriptorGetInfoEXT & descriptorInfo, + size_t dataSize, + void * pDescriptor, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; template VULKAN_HPP_NODISCARD DescriptorType getDescriptorEXT( const VULKAN_HPP_NAMESPACE::DescriptorGetInfoEXT & descriptorInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; @@ -13117,6 +13186,53 @@ namespace VULKAN_HPP_NAMESPACE Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ + //=== VK_NV_low_latency2 === + + template + VULKAN_HPP_NODISCARD Result setLatencySleepModeNV( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, + const VULKAN_HPP_NAMESPACE::LatencySleepModeInfoNV * pSleepModeInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + typename ResultValueType::type setLatencySleepModeNV( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, + const VULKAN_HPP_NAMESPACE::LatencySleepModeInfoNV & sleepModeInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ + + template + VULKAN_HPP_NODISCARD Result latencySleepNV( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, + const VULKAN_HPP_NAMESPACE::LatencySleepInfoNV * pSleepInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + typename ResultValueType::type latencySleepNV( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, + const VULKAN_HPP_NAMESPACE::LatencySleepInfoNV & sleepInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ + + template + void setLatencyMarkerNV( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, + const VULKAN_HPP_NAMESPACE::SetLatencyMarkerInfoNV * pLatencyMarkerInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void setLatencyMarkerNV( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, + const VULKAN_HPP_NAMESPACE::SetLatencyMarkerInfoNV & latencyMarkerInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ + + template + void getLatencyTimingsNV( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, + uint32_t * pTimingCount, + VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV * pLatencyMarkerInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD std::pair + getLatencyTimingsNV( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ + #if defined( VK_USE_PLATFORM_SCREEN_QNX ) //=== VK_QNX_external_memory_screen_buffer === diff --git a/deps/vulkan-headers/include/vulkan/vulkan_hash.hpp b/deps/vulkan-headers/include/vulkan/vulkan_hash.hpp index d1948248..fa35d2ed 100644 --- a/deps/vulkan-headers/include/vulkan/vulkan_hash.hpp +++ b/deps/vulkan-headers/include/vulkan/vulkan_hash.hpp @@ -975,6 +975,23 @@ namespace std }; # endif /*VK_USE_PLATFORM_ANDROID_KHR*/ +# if defined( VK_USE_PLATFORM_ANDROID_KHR ) + template <> + struct hash + { + std::size_t + operator()( VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatResolvePropertiesANDROID const & androidHardwareBufferFormatResolvePropertiesANDROID ) const + VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, androidHardwareBufferFormatResolvePropertiesANDROID.sType ); + VULKAN_HPP_HASH_COMBINE( seed, androidHardwareBufferFormatResolvePropertiesANDROID.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, androidHardwareBufferFormatResolvePropertiesANDROID.colorAttachmentFormat ); + return seed; + } + }; +# endif /*VK_USE_PLATFORM_ANDROID_KHR*/ + # if defined( VK_USE_PLATFORM_ANDROID_KHR ) template <> struct hash @@ -1555,6 +1572,19 @@ namespace std } }; + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::BlitImageCubicWeightsInfoQCOM const & blitImageCubicWeightsInfoQCOM ) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, blitImageCubicWeightsInfoQCOM.sType ); + VULKAN_HPP_HASH_COMBINE( seed, blitImageCubicWeightsInfoQCOM.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, blitImageCubicWeightsInfoQCOM.cubicWeights ); + return seed; + } + }; + template <> struct hash { @@ -4887,6 +4917,27 @@ namespace std } }; + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::FrameBoundaryEXT const & frameBoundaryEXT ) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, frameBoundaryEXT.sType ); + VULKAN_HPP_HASH_COMBINE( seed, frameBoundaryEXT.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, frameBoundaryEXT.flags ); + VULKAN_HPP_HASH_COMBINE( seed, frameBoundaryEXT.frameID ); + VULKAN_HPP_HASH_COMBINE( seed, frameBoundaryEXT.imageCount ); + VULKAN_HPP_HASH_COMBINE( seed, frameBoundaryEXT.pImages ); + VULKAN_HPP_HASH_COMBINE( seed, frameBoundaryEXT.bufferCount ); + VULKAN_HPP_HASH_COMBINE( seed, frameBoundaryEXT.pBuffers ); + VULKAN_HPP_HASH_COMBINE( seed, frameBoundaryEXT.tagName ); + VULKAN_HPP_HASH_COMBINE( seed, frameBoundaryEXT.tagSize ); + VULKAN_HPP_HASH_COMBINE( seed, frameBoundaryEXT.pTag ); + return seed; + } + }; + template <> struct hash { @@ -5009,6 +5060,45 @@ namespace std } }; + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV const & latencyTimingsFrameReportNV ) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, latencyTimingsFrameReportNV.sType ); + VULKAN_HPP_HASH_COMBINE( seed, latencyTimingsFrameReportNV.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, latencyTimingsFrameReportNV.presentID ); + VULKAN_HPP_HASH_COMBINE( seed, latencyTimingsFrameReportNV.inputSampleTimeUs ); + VULKAN_HPP_HASH_COMBINE( seed, latencyTimingsFrameReportNV.simStartTimeUs ); + VULKAN_HPP_HASH_COMBINE( seed, latencyTimingsFrameReportNV.simEndTimeUs ); + VULKAN_HPP_HASH_COMBINE( seed, latencyTimingsFrameReportNV.renderSubmitStartTimeUs ); + VULKAN_HPP_HASH_COMBINE( seed, latencyTimingsFrameReportNV.renderSubmitEndTimeUs ); + VULKAN_HPP_HASH_COMBINE( seed, latencyTimingsFrameReportNV.presentStartTimeUs ); + VULKAN_HPP_HASH_COMBINE( seed, latencyTimingsFrameReportNV.presentEndTimeUs ); + VULKAN_HPP_HASH_COMBINE( seed, latencyTimingsFrameReportNV.driverStartTimeUs ); + VULKAN_HPP_HASH_COMBINE( seed, latencyTimingsFrameReportNV.driverEndTimeUs ); + VULKAN_HPP_HASH_COMBINE( seed, latencyTimingsFrameReportNV.osRenderQueueStartTimeUs ); + VULKAN_HPP_HASH_COMBINE( seed, latencyTimingsFrameReportNV.osRenderQueueEndTimeUs ); + VULKAN_HPP_HASH_COMBINE( seed, latencyTimingsFrameReportNV.gpuRenderStartTimeUs ); + VULKAN_HPP_HASH_COMBINE( seed, latencyTimingsFrameReportNV.gpuRenderEndTimeUs ); + return seed; + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV const & getLatencyMarkerInfoNV ) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, getLatencyMarkerInfoNV.sType ); + VULKAN_HPP_HASH_COMBINE( seed, getLatencyMarkerInfoNV.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, getLatencyMarkerInfoNV.pTimings ); + return seed; + } + }; + template <> struct hash { @@ -6237,6 +6327,62 @@ namespace std } }; + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::LatencySleepInfoNV const & latencySleepInfoNV ) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, latencySleepInfoNV.sType ); + VULKAN_HPP_HASH_COMBINE( seed, latencySleepInfoNV.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, latencySleepInfoNV.signalSemaphore ); + VULKAN_HPP_HASH_COMBINE( seed, latencySleepInfoNV.value ); + return seed; + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::LatencySleepModeInfoNV const & latencySleepModeInfoNV ) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, latencySleepModeInfoNV.sType ); + VULKAN_HPP_HASH_COMBINE( seed, latencySleepModeInfoNV.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, latencySleepModeInfoNV.lowLatencyMode ); + VULKAN_HPP_HASH_COMBINE( seed, latencySleepModeInfoNV.lowLatencyBoost ); + VULKAN_HPP_HASH_COMBINE( seed, latencySleepModeInfoNV.minimumIntervalUs ); + return seed; + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::LatencySubmissionPresentIdNV const & latencySubmissionPresentIdNV ) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, latencySubmissionPresentIdNV.sType ); + VULKAN_HPP_HASH_COMBINE( seed, latencySubmissionPresentIdNV.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, latencySubmissionPresentIdNV.presentID ); + return seed; + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::LatencySurfaceCapabilitiesNV const & latencySurfaceCapabilitiesNV ) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, latencySurfaceCapabilitiesNV.sType ); + VULKAN_HPP_HASH_COMBINE( seed, latencySurfaceCapabilitiesNV.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, latencySurfaceCapabilitiesNV.presentModeCount ); + VULKAN_HPP_HASH_COMBINE( seed, latencySurfaceCapabilitiesNV.pPresentModes ); + return seed; + } + }; + template <> struct hash { @@ -6873,6 +7019,19 @@ namespace std } }; + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeInfoNV const & outOfBandQueueTypeInfoNV ) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, outOfBandQueueTypeInfoNV.sType ); + VULKAN_HPP_HASH_COMBINE( seed, outOfBandQueueTypeInfoNV.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, outOfBandQueueTypeInfoNV.queueType ); + return seed; + } + }; + template <> struct hash { @@ -7466,6 +7625,33 @@ namespace std } }; + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceCubicClampFeaturesQCOM const & physicalDeviceCubicClampFeaturesQCOM ) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCubicClampFeaturesQCOM.sType ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCubicClampFeaturesQCOM.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCubicClampFeaturesQCOM.cubicRangeClamp ); + return seed; + } + }; + + template <> + struct hash + { + std::size_t + operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceCubicWeightsFeaturesQCOM const & physicalDeviceCubicWeightsFeaturesQCOM ) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCubicWeightsFeaturesQCOM.sType ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCubicWeightsFeaturesQCOM.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCubicWeightsFeaturesQCOM.selectableCubicWeights ); + return seed; + } + }; + template <> struct hash { @@ -7731,6 +7917,20 @@ namespace std } }; + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorPoolOverallocationFeaturesNV const & + physicalDeviceDescriptorPoolOverallocationFeaturesNV ) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorPoolOverallocationFeaturesNV.sType ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorPoolOverallocationFeaturesNV.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorPoolOverallocationFeaturesNV.descriptorPoolOverallocation ); + return seed; + } + }; + template <> struct hash { @@ -8042,6 +8242,37 @@ namespace std } }; + template <> + struct hash + { + std::size_t + operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV const & physicalDeviceExtendedSparseAddressSpaceFeaturesNV ) const + VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedSparseAddressSpaceFeaturesNV.sType ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedSparseAddressSpaceFeaturesNV.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedSparseAddressSpaceFeaturesNV.extendedSparseAddressSpace ); + return seed; + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedSparseAddressSpacePropertiesNV const & + physicalDeviceExtendedSparseAddressSpacePropertiesNV ) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedSparseAddressSpacePropertiesNV.sType ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedSparseAddressSpacePropertiesNV.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedSparseAddressSpacePropertiesNV.extendedSparseAddressSpaceSize ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedSparseAddressSpacePropertiesNV.extendedSparseImageUsageFlags ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedSparseAddressSpacePropertiesNV.extendedSparseBufferUsageFlags ); + return seed; + } + }; + template <> struct hash { @@ -8070,6 +8301,41 @@ namespace std } }; +# if defined( VK_USE_PLATFORM_ANDROID_KHR ) + template <> + struct hash + { + std::size_t + operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFormatResolveFeaturesANDROID const & physicalDeviceExternalFormatResolveFeaturesANDROID ) const + VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalFormatResolveFeaturesANDROID.sType ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalFormatResolveFeaturesANDROID.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalFormatResolveFeaturesANDROID.externalFormatResolve ); + return seed; + } + }; +# endif /*VK_USE_PLATFORM_ANDROID_KHR*/ + +# if defined( VK_USE_PLATFORM_ANDROID_KHR ) + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFormatResolvePropertiesANDROID const & + physicalDeviceExternalFormatResolvePropertiesANDROID ) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalFormatResolvePropertiesANDROID.sType ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalFormatResolvePropertiesANDROID.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalFormatResolvePropertiesANDROID.nullColorAttachmentWithExternalFormatResolve ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalFormatResolvePropertiesANDROID.externalFormatResolveChromaOffsetX ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalFormatResolvePropertiesANDROID.externalFormatResolveChromaOffsetY ); + return seed; + } + }; +# endif /*VK_USE_PLATFORM_ANDROID_KHR*/ + template <> struct hash { @@ -8427,6 +8693,20 @@ namespace std } }; + template <> + struct hash + { + std::size_t + operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceFrameBoundaryFeaturesEXT const & physicalDeviceFrameBoundaryFeaturesEXT ) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFrameBoundaryFeaturesEXT.sType ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFrameBoundaryFeaturesEXT.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFrameBoundaryFeaturesEXT.frameBoundary ); + return seed; + } + }; + template <> struct hash { @@ -8641,6 +8921,34 @@ namespace std } }; + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessing2FeaturesQCOM const & physicalDeviceImageProcessing2FeaturesQCOM ) const + VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageProcessing2FeaturesQCOM.sType ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageProcessing2FeaturesQCOM.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageProcessing2FeaturesQCOM.textureBlockMatch2 ); + return seed; + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessing2PropertiesQCOM const & physicalDeviceImageProcessing2PropertiesQCOM ) const + VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageProcessing2PropertiesQCOM.sType ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageProcessing2PropertiesQCOM.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageProcessing2PropertiesQCOM.maxBlockMatchWindow ); + return seed; + } + }; + template <> struct hash { @@ -8819,6 +9127,20 @@ namespace std } }; + template <> + struct hash + { + std::size_t + operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceLayeredDriverPropertiesMSFT const & physicalDeviceLayeredDriverPropertiesMSFT ) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLayeredDriverPropertiesMSFT.sType ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLayeredDriverPropertiesMSFT.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLayeredDriverPropertiesMSFT.underlyingAPI ); + return seed; + } + }; + template <> struct hash { @@ -9425,6 +9747,36 @@ namespace std } }; + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceNestedCommandBufferFeaturesEXT const & physicalDeviceNestedCommandBufferFeaturesEXT ) const + VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceNestedCommandBufferFeaturesEXT.sType ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceNestedCommandBufferFeaturesEXT.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceNestedCommandBufferFeaturesEXT.nestedCommandBuffer ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceNestedCommandBufferFeaturesEXT.nestedCommandBufferRendering ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceNestedCommandBufferFeaturesEXT.nestedCommandBufferSimultaneousUse ); + return seed; + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceNestedCommandBufferPropertiesEXT const & physicalDeviceNestedCommandBufferPropertiesEXT ) const + VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceNestedCommandBufferPropertiesEXT.sType ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceNestedCommandBufferPropertiesEXT.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceNestedCommandBufferPropertiesEXT.maxCommandBufferNestingLevel ); + return seed; + } + }; + template <> struct hash { @@ -11536,6 +11888,20 @@ namespace std } }; + template <> + struct hash + { + std::size_t + operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrDegammaFeaturesQCOM const & physicalDeviceYcbcrDegammaFeaturesQCOM ) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceYcbcrDegammaFeaturesQCOM.sType ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceYcbcrDegammaFeaturesQCOM.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceYcbcrDegammaFeaturesQCOM.ycbcrDegamma ); + return seed; + } + }; + template <> struct hash { @@ -13120,6 +13486,21 @@ namespace std } }; + template <> + struct hash + { + std::size_t + operator()( VULKAN_HPP_NAMESPACE::SamplerBlockMatchWindowCreateInfoQCOM const & samplerBlockMatchWindowCreateInfoQCOM ) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, samplerBlockMatchWindowCreateInfoQCOM.sType ); + VULKAN_HPP_HASH_COMBINE( seed, samplerBlockMatchWindowCreateInfoQCOM.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, samplerBlockMatchWindowCreateInfoQCOM.windowExtent ); + VULKAN_HPP_HASH_COMBINE( seed, samplerBlockMatchWindowCreateInfoQCOM.windowCompareMode ); + return seed; + } + }; + template <> struct hash { @@ -13176,6 +13557,19 @@ namespace std } }; + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::SamplerCubicWeightsCreateInfoQCOM const & samplerCubicWeightsCreateInfoQCOM ) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, samplerCubicWeightsCreateInfoQCOM.sType ); + VULKAN_HPP_HASH_COMBINE( seed, samplerCubicWeightsCreateInfoQCOM.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, samplerCubicWeightsCreateInfoQCOM.cubicWeights ); + return seed; + } + }; + template <> struct hash { @@ -13236,6 +13630,21 @@ namespace std } }; + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM const & samplerYcbcrConversionYcbcrDegammaCreateInfoQCOM ) + const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, samplerYcbcrConversionYcbcrDegammaCreateInfoQCOM.sType ); + VULKAN_HPP_HASH_COMBINE( seed, samplerYcbcrConversionYcbcrDegammaCreateInfoQCOM.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, samplerYcbcrConversionYcbcrDegammaCreateInfoQCOM.enableYDegamma ); + VULKAN_HPP_HASH_COMBINE( seed, samplerYcbcrConversionYcbcrDegammaCreateInfoQCOM.enableCbCrDegamma ); + return seed; + } + }; + # if defined( VK_USE_PLATFORM_SCREEN_QNX ) template <> struct hash @@ -13411,6 +13820,20 @@ namespace std } }; + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::SetLatencyMarkerInfoNV const & setLatencyMarkerInfoNV ) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, setLatencyMarkerInfoNV.sType ); + VULKAN_HPP_HASH_COMBINE( seed, setLatencyMarkerInfoNV.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, setLatencyMarkerInfoNV.presentID ); + VULKAN_HPP_HASH_COMBINE( seed, setLatencyMarkerInfoNV.marker ); + return seed; + } + }; + template <> struct hash { @@ -14027,6 +14450,19 @@ namespace std } }; + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::SwapchainLatencyCreateInfoNV const & swapchainLatencyCreateInfoNV ) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, swapchainLatencyCreateInfoNV.sType ); + VULKAN_HPP_HASH_COMBINE( seed, swapchainLatencyCreateInfoNV.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, swapchainLatencyCreateInfoNV.latencyModeEnable ); + return seed; + } + }; + template <> struct hash { diff --git a/deps/vulkan-headers/include/vulkan/vulkan_hpp_macros.hpp b/deps/vulkan-headers/include/vulkan/vulkan_hpp_macros.hpp new file mode 100644 index 00000000..13fa815f --- /dev/null +++ b/deps/vulkan-headers/include/vulkan/vulkan_hpp_macros.hpp @@ -0,0 +1,270 @@ +// Copyright 2015-2023 The Khronos Group Inc. +// +// SPDX-License-Identifier: Apache-2.0 OR MIT +// + +// This header is generated from the Khronos Vulkan XML API Registry. + +#ifndef VULKAN_HPP_MACROS_HPP +#define VULKAN_HPP_MACROS_HPP + +#if defined( _MSVC_LANG ) +# define VULKAN_HPP_CPLUSPLUS _MSVC_LANG +#else +# define VULKAN_HPP_CPLUSPLUS __cplusplus +#endif + +#if 201703L < VULKAN_HPP_CPLUSPLUS +# define VULKAN_HPP_CPP_VERSION 20 +#elif 201402L < VULKAN_HPP_CPLUSPLUS +# define VULKAN_HPP_CPP_VERSION 17 +#elif 201103L < VULKAN_HPP_CPLUSPLUS +# define VULKAN_HPP_CPP_VERSION 14 +#elif 199711L < VULKAN_HPP_CPLUSPLUS +# define VULKAN_HPP_CPP_VERSION 11 +#else +# error "vulkan.hpp needs at least c++ standard version 11" +#endif + +#if defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) +# if !defined( VULKAN_HPP_NO_SMART_HANDLE ) +# define VULKAN_HPP_NO_SMART_HANDLE +# endif +#endif + +#if defined( VULKAN_HPP_NO_CONSTRUCTORS ) +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) +# define VULKAN_HPP_NO_STRUCT_CONSTRUCTORS +# endif +# if !defined( VULKAN_HPP_NO_UNION_CONSTRUCTORS ) +# define VULKAN_HPP_NO_UNION_CONSTRUCTORS +# endif +#endif + +#if defined( VULKAN_HPP_NO_SETTERS ) +# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) +# define VULKAN_HPP_NO_STRUCT_SETTERS +# endif +# if !defined( VULKAN_HPP_NO_UNION_SETTERS ) +# define VULKAN_HPP_NO_UNION_SETTERS +# endif +#endif + +#if !defined( VULKAN_HPP_ASSERT ) +# define VULKAN_HPP_ASSERT assert +#endif + +#if !defined( VULKAN_HPP_ASSERT_ON_RESULT ) +# define VULKAN_HPP_ASSERT_ON_RESULT VULKAN_HPP_ASSERT +#endif + +#if !defined( VULKAN_HPP_STATIC_ASSERT ) +# define VULKAN_HPP_STATIC_ASSERT static_assert +#endif + +#if !defined( VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL ) +# define VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL 1 +#endif + +#if !defined( __has_include ) +# define __has_include( x ) false +#endif + +#if ( 201907 <= __cpp_lib_three_way_comparison ) && __has_include( ) && !defined( VULKAN_HPP_NO_SPACESHIP_OPERATOR ) +# define VULKAN_HPP_HAS_SPACESHIP_OPERATOR +#endif + +#if ( 201803 <= __cpp_lib_span ) +# define VULKAN_HPP_SUPPORT_SPAN +#endif + +// 32-bit vulkan is not typesafe for non-dispatchable handles, so don't allow copy constructors on this platform by default. +// To enable this feature on 32-bit platforms please define VULKAN_HPP_TYPESAFE_CONVERSION +#if ( VK_USE_64_BIT_PTR_DEFINES == 1 ) +# if !defined( VULKAN_HPP_TYPESAFE_CONVERSION ) +# define VULKAN_HPP_TYPESAFE_CONVERSION +# endif +#endif + +#if defined( __GNUC__ ) +# define GCC_VERSION ( __GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__ ) +#endif + +#if !defined( VULKAN_HPP_HAS_UNRESTRICTED_UNIONS ) +# if defined( __clang__ ) +# if __has_feature( cxx_unrestricted_unions ) +# define VULKAN_HPP_HAS_UNRESTRICTED_UNIONS +# endif +# elif defined( __GNUC__ ) +# if 40600 <= GCC_VERSION +# define VULKAN_HPP_HAS_UNRESTRICTED_UNIONS +# endif +# elif defined( _MSC_VER ) +# if 1900 <= _MSC_VER +# define VULKAN_HPP_HAS_UNRESTRICTED_UNIONS +# endif +# endif +#endif + +#if !defined( VULKAN_HPP_INLINE ) +# if defined( __clang__ ) +# if __has_attribute( always_inline ) +# define VULKAN_HPP_INLINE __attribute__( ( always_inline ) ) __inline__ +# else +# define VULKAN_HPP_INLINE inline +# endif +# elif defined( __GNUC__ ) +# define VULKAN_HPP_INLINE __attribute__( ( always_inline ) ) __inline__ +# elif defined( _MSC_VER ) +# define VULKAN_HPP_INLINE inline +# else +# define VULKAN_HPP_INLINE inline +# endif +#endif + +#if defined( VULKAN_HPP_TYPESAFE_CONVERSION ) +# define VULKAN_HPP_TYPESAFE_EXPLICIT +#else +# define VULKAN_HPP_TYPESAFE_EXPLICIT explicit +#endif + +#if defined( __cpp_constexpr ) +# define VULKAN_HPP_CONSTEXPR constexpr +# if 201304 <= __cpp_constexpr +# define VULKAN_HPP_CONSTEXPR_14 constexpr +# else +# define VULKAN_HPP_CONSTEXPR_14 +# endif +# if ( 201907 <= __cpp_constexpr ) && ( !defined( __GNUC__ ) || ( 110400 < GCC_VERSION ) ) +# define VULKAN_HPP_CONSTEXPR_20 constexpr +# else +# define VULKAN_HPP_CONSTEXPR_20 +# endif +# define VULKAN_HPP_CONST_OR_CONSTEXPR constexpr +#else +# define VULKAN_HPP_CONSTEXPR +# define VULKAN_HPP_CONSTEXPR_14 +# define VULKAN_HPP_CONST_OR_CONSTEXPR const +#endif + +#if !defined( VULKAN_HPP_CONSTEXPR_INLINE ) +# if 201606L <= __cpp_inline_variables +# define VULKAN_HPP_CONSTEXPR_INLINE VULKAN_HPP_CONSTEXPR inline +# else +# define VULKAN_HPP_CONSTEXPR_INLINE VULKAN_HPP_CONSTEXPR +# endif +#endif + +#if !defined( VULKAN_HPP_NOEXCEPT ) +# if defined( _MSC_VER ) && ( _MSC_VER <= 1800 ) +# define VULKAN_HPP_NOEXCEPT +# else +# define VULKAN_HPP_NOEXCEPT noexcept +# define VULKAN_HPP_HAS_NOEXCEPT 1 +# if defined( VULKAN_HPP_NO_EXCEPTIONS ) +# define VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS noexcept +# else +# define VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS +# endif +# endif +#endif + +#if 14 <= VULKAN_HPP_CPP_VERSION +# define VULKAN_HPP_DEPRECATED( msg ) [[deprecated( msg )]] +#else +# define VULKAN_HPP_DEPRECATED( msg ) +#endif + +#if ( 17 <= VULKAN_HPP_CPP_VERSION ) && !defined( VULKAN_HPP_NO_NODISCARD_WARNINGS ) +# define VULKAN_HPP_NODISCARD [[nodiscard]] +# if defined( VULKAN_HPP_NO_EXCEPTIONS ) +# define VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS [[nodiscard]] +# else +# define VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS +# endif +#else +# define VULKAN_HPP_NODISCARD +# define VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS +#endif + +#if !defined( VULKAN_HPP_NAMESPACE ) +# define VULKAN_HPP_NAMESPACE vk +#endif + +#define VULKAN_HPP_STRINGIFY2( text ) #text +#define VULKAN_HPP_STRINGIFY( text ) VULKAN_HPP_STRINGIFY2( text ) +#define VULKAN_HPP_NAMESPACE_STRING VULKAN_HPP_STRINGIFY( VULKAN_HPP_NAMESPACE ) + +#if !defined( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC ) +# if defined( VK_NO_PROTOTYPES ) +# define VULKAN_HPP_DISPATCH_LOADER_DYNAMIC 1 +# else +# define VULKAN_HPP_DISPATCH_LOADER_DYNAMIC 0 +# endif +#endif + +#if !defined( VULKAN_HPP_STORAGE_API ) +# if defined( VULKAN_HPP_STORAGE_SHARED ) +# if defined( _MSC_VER ) +# if defined( VULKAN_HPP_STORAGE_SHARED_EXPORT ) +# define VULKAN_HPP_STORAGE_API __declspec( dllexport ) +# else +# define VULKAN_HPP_STORAGE_API __declspec( dllimport ) +# endif +# elif defined( __clang__ ) || defined( __GNUC__ ) +# if defined( VULKAN_HPP_STORAGE_SHARED_EXPORT ) +# define VULKAN_HPP_STORAGE_API __attribute__( ( visibility( "default" ) ) ) +# else +# define VULKAN_HPP_STORAGE_API +# endif +# else +# define VULKAN_HPP_STORAGE_API +# pragma warning Unknown import / export semantics +# endif +# else +# define VULKAN_HPP_STORAGE_API +# endif +#endif + +namespace VULKAN_HPP_NAMESPACE +{ + class DispatchLoaderDynamic; +} // namespace VULKAN_HPP_NAMESPACE + +#if !defined( VULKAN_HPP_DEFAULT_DISPATCHER ) +# if VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 +# define VULKAN_HPP_DEFAULT_DISPATCHER ::VULKAN_HPP_NAMESPACE::defaultDispatchLoaderDynamic +# define VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE \ + namespace VULKAN_HPP_NAMESPACE \ + { \ + VULKAN_HPP_STORAGE_API ::VULKAN_HPP_NAMESPACE::DispatchLoaderDynamic defaultDispatchLoaderDynamic; \ + } +namespace VULKAN_HPP_NAMESPACE +{ + extern VULKAN_HPP_STORAGE_API VULKAN_HPP_NAMESPACE::DispatchLoaderDynamic defaultDispatchLoaderDynamic; +} // namespace VULKAN_HPP_NAMESPACE +# else +# define VULKAN_HPP_DEFAULT_DISPATCHER ::VULKAN_HPP_NAMESPACE::getDispatchLoaderStatic() +# define VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE +# endif +#endif + +#if !defined( VULKAN_HPP_DEFAULT_DISPATCHER_TYPE ) +# if VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 +# define VULKAN_HPP_DEFAULT_DISPATCHER_TYPE ::VULKAN_HPP_NAMESPACE::DispatchLoaderDynamic +# else +# define VULKAN_HPP_DEFAULT_DISPATCHER_TYPE ::VULKAN_HPP_NAMESPACE::DispatchLoaderStatic +# endif +#endif + +#if defined( VULKAN_HPP_NO_DEFAULT_DISPATCHER ) +# define VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT +# define VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT +# define VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT +#else +# define VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT = {} +# define VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT = nullptr +# define VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT = VULKAN_HPP_DEFAULT_DISPATCHER +#endif + +#endif \ No newline at end of file diff --git a/deps/vulkan-headers/include/vulkan/vulkan_raii.hpp b/deps/vulkan-headers/include/vulkan/vulkan_raii.hpp index f065519e..f217921c 100644 --- a/deps/vulkan-headers/include/vulkan/vulkan_raii.hpp +++ b/deps/vulkan-headers/include/vulkan/vulkan_raii.hpp @@ -1663,6 +1663,13 @@ namespace VULKAN_HPP_NAMESPACE vkGetDynamicRenderingTilePropertiesQCOM = PFN_vkGetDynamicRenderingTilePropertiesQCOM( vkGetDeviceProcAddr( device, "vkGetDynamicRenderingTilePropertiesQCOM" ) ); + //=== VK_NV_low_latency2 === + vkSetLatencySleepModeNV = PFN_vkSetLatencySleepModeNV( vkGetDeviceProcAddr( device, "vkSetLatencySleepModeNV" ) ); + vkLatencySleepNV = PFN_vkLatencySleepNV( vkGetDeviceProcAddr( device, "vkLatencySleepNV" ) ); + vkSetLatencyMarkerNV = PFN_vkSetLatencyMarkerNV( vkGetDeviceProcAddr( device, "vkSetLatencyMarkerNV" ) ); + vkGetLatencyTimingsNV = PFN_vkGetLatencyTimingsNV( vkGetDeviceProcAddr( device, "vkGetLatencyTimingsNV" ) ); + vkQueueNotifyOutOfBandNV = PFN_vkQueueNotifyOutOfBandNV( vkGetDeviceProcAddr( device, "vkQueueNotifyOutOfBandNV" ) ); + //=== VK_EXT_attachment_feedback_loop_dynamic_state === vkCmdSetAttachmentFeedbackLoopEnableEXT = PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetAttachmentFeedbackLoopEnableEXT" ) ); @@ -2507,6 +2514,13 @@ namespace VULKAN_HPP_NAMESPACE PFN_vkGetFramebufferTilePropertiesQCOM vkGetFramebufferTilePropertiesQCOM = 0; PFN_vkGetDynamicRenderingTilePropertiesQCOM vkGetDynamicRenderingTilePropertiesQCOM = 0; + //=== VK_NV_low_latency2 === + PFN_vkSetLatencySleepModeNV vkSetLatencySleepModeNV = 0; + PFN_vkLatencySleepNV vkLatencySleepNV = 0; + PFN_vkSetLatencyMarkerNV vkSetLatencyMarkerNV = 0; + PFN_vkGetLatencyTimingsNV vkGetLatencyTimingsNV = 0; + PFN_vkQueueNotifyOutOfBandNV vkQueueNotifyOutOfBandNV = 0; + //=== VK_EXT_attachment_feedback_loop_dynamic_state === PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT vkCmdSetAttachmentFeedbackLoopEnableEXT = 0; @@ -2694,7 +2708,8 @@ namespace VULKAN_HPP_NAMESPACE class Instance { public: - using CType = VkInstance; + using CType = VkInstance; + using CppType = vk::Instance; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eInstance; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = @@ -2953,7 +2968,8 @@ namespace VULKAN_HPP_NAMESPACE class PhysicalDevice { public: - using CType = VkPhysicalDevice; + using CType = VkPhysicalDevice; + using CppType = vk::PhysicalDevice; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::ePhysicalDevice; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = @@ -3411,7 +3427,8 @@ namespace VULKAN_HPP_NAMESPACE class Device { public: - using CType = VkDevice; + using CType = VkDevice; + using CppType = vk::Device; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDevice; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = @@ -4178,6 +4195,8 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_EXT_descriptor_buffer === + void getDescriptorEXT( const VULKAN_HPP_NAMESPACE::DescriptorGetInfoEXT & descriptorInfo, size_t dataSize, void * pDescriptor ) const VULKAN_HPP_NOEXCEPT; + template VULKAN_HPP_NODISCARD DescriptorType getDescriptorEXT( const VULKAN_HPP_NAMESPACE::DescriptorGetInfoEXT & descriptorInfo ) const VULKAN_HPP_NOEXCEPT; @@ -4369,7 +4388,8 @@ namespace VULKAN_HPP_NAMESPACE class AccelerationStructureKHR { public: - using CType = VkAccelerationStructureKHR; + using CType = VkAccelerationStructureKHR; + using CppType = vk::AccelerationStructureKHR; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eAccelerationStructureKHR; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = @@ -4489,7 +4509,8 @@ namespace VULKAN_HPP_NAMESPACE class AccelerationStructureNV { public: - using CType = VkAccelerationStructureNV; + using CType = VkAccelerationStructureNV; + using CppType = vk::AccelerationStructureNV; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eAccelerationStructureNV; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = @@ -4617,7 +4638,8 @@ namespace VULKAN_HPP_NAMESPACE class Buffer { public: - using CType = VkBuffer; + using CType = VkBuffer; + using CppType = vk::Buffer; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eBuffer; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = @@ -4743,7 +4765,8 @@ namespace VULKAN_HPP_NAMESPACE class BufferCollectionFUCHSIA { public: - using CType = VkBufferCollectionFUCHSIA; + using CType = VkBufferCollectionFUCHSIA; + using CppType = vk::BufferCollectionFUCHSIA; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eBufferCollectionFUCHSIA; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = @@ -4872,7 +4895,8 @@ namespace VULKAN_HPP_NAMESPACE class BufferView { public: - using CType = VkBufferView; + using CType = VkBufferView; + using CppType = vk::BufferView; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eBufferView; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = @@ -4991,7 +5015,8 @@ namespace VULKAN_HPP_NAMESPACE class CommandPool { public: - using CType = VkCommandPool; + using CType = VkCommandPool; + using CppType = vk::CommandPool; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eCommandPool; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = @@ -5122,7 +5147,8 @@ namespace VULKAN_HPP_NAMESPACE class CommandBuffer { public: - using CType = VkCommandBuffer; + using CType = VkCommandBuffer; + using CppType = vk::CommandBuffer; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eCommandBuffer; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = @@ -6159,7 +6185,8 @@ namespace VULKAN_HPP_NAMESPACE class CuFunctionNVX { public: - using CType = VkCuFunctionNVX; + using CType = VkCuFunctionNVX; + using CppType = vk::CuFunctionNVX; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eCuFunctionNVX; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = @@ -6278,7 +6305,8 @@ namespace VULKAN_HPP_NAMESPACE class CuModuleNVX { public: - using CType = VkCuModuleNVX; + using CType = VkCuModuleNVX; + using CppType = vk::CuModuleNVX; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eCuModuleNVX; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = @@ -6397,7 +6425,8 @@ namespace VULKAN_HPP_NAMESPACE class DebugReportCallbackEXT { public: - using CType = VkDebugReportCallbackEXT; + using CType = VkDebugReportCallbackEXT; + using CppType = vk::DebugReportCallbackEXT; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDebugReportCallbackEXT; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = @@ -6517,7 +6546,8 @@ namespace VULKAN_HPP_NAMESPACE class DebugUtilsMessengerEXT { public: - using CType = VkDebugUtilsMessengerEXT; + using CType = VkDebugUtilsMessengerEXT; + using CppType = vk::DebugUtilsMessengerEXT; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDebugUtilsMessengerEXT; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = @@ -6637,7 +6667,8 @@ namespace VULKAN_HPP_NAMESPACE class DeferredOperationKHR { public: - using CType = VkDeferredOperationKHR; + using CType = VkDeferredOperationKHR; + using CppType = vk::DeferredOperationKHR; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDeferredOperationKHR; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = @@ -6763,7 +6794,8 @@ namespace VULKAN_HPP_NAMESPACE class DescriptorPool { public: - using CType = VkDescriptorPool; + using CType = VkDescriptorPool; + using CppType = vk::DescriptorPool; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorPool; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = @@ -6887,7 +6919,8 @@ namespace VULKAN_HPP_NAMESPACE class DescriptorSet { public: - using CType = VkDescriptorSet; + using CType = VkDescriptorSet; + using CppType = vk::DescriptorSet; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorSet; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = @@ -7032,7 +7065,8 @@ namespace VULKAN_HPP_NAMESPACE class DescriptorSetLayout { public: - using CType = VkDescriptorSetLayout; + using CType = VkDescriptorSetLayout; + using CppType = vk::DescriptorSetLayout; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorSetLayout; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = @@ -7158,7 +7192,8 @@ namespace VULKAN_HPP_NAMESPACE class DescriptorUpdateTemplate { public: - using CType = VkDescriptorUpdateTemplate; + using CType = VkDescriptorUpdateTemplate; + using CppType = vk::DescriptorUpdateTemplate; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorUpdateTemplate; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = @@ -7278,7 +7313,8 @@ namespace VULKAN_HPP_NAMESPACE class DeviceMemory { public: - using CType = VkDeviceMemory; + using CType = VkDeviceMemory; + using CppType = vk::DeviceMemory; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDeviceMemory; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = @@ -7417,7 +7453,8 @@ namespace VULKAN_HPP_NAMESPACE class DisplayKHR { public: - using CType = VkDisplayKHR; + using CType = VkDisplayKHR; + using CppType = vk::DisplayKHR; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDisplayKHR; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = @@ -7605,7 +7642,8 @@ namespace VULKAN_HPP_NAMESPACE class DisplayModeKHR { public: - using CType = VkDisplayModeKHR; + using CType = VkDisplayModeKHR; + using CppType = vk::DisplayModeKHR; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDisplayModeKHR; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = @@ -7711,7 +7749,8 @@ namespace VULKAN_HPP_NAMESPACE class Event { public: - using CType = VkEvent; + using CType = VkEvent; + using CppType = vk::Event; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eEvent; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = @@ -7838,7 +7877,8 @@ namespace VULKAN_HPP_NAMESPACE class Fence { public: - using CType = VkFence; + using CType = VkFence; + using CppType = vk::Fence; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eFence; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = @@ -7999,7 +8039,8 @@ namespace VULKAN_HPP_NAMESPACE class Framebuffer { public: - using CType = VkFramebuffer; + using CType = VkFramebuffer; + using CppType = vk::Framebuffer; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eFramebuffer; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = @@ -8122,7 +8163,8 @@ namespace VULKAN_HPP_NAMESPACE class Image { public: - using CType = VkImage; + using CType = VkImage; + using CppType = vk::Image; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eImage; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = @@ -8274,7 +8316,8 @@ namespace VULKAN_HPP_NAMESPACE class ImageView { public: - using CType = VkImageView; + using CType = VkImageView; + using CppType = vk::ImageView; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eImageView; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = @@ -8397,7 +8440,8 @@ namespace VULKAN_HPP_NAMESPACE class IndirectCommandsLayoutNV { public: - using CType = VkIndirectCommandsLayoutNV; + using CType = VkIndirectCommandsLayoutNV; + using CppType = vk::IndirectCommandsLayoutNV; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eIndirectCommandsLayoutNV; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = @@ -8517,7 +8561,8 @@ namespace VULKAN_HPP_NAMESPACE class MicromapEXT { public: - using CType = VkMicromapEXT; + using CType = VkMicromapEXT; + using CppType = vk::MicromapEXT; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eMicromapEXT; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = @@ -8636,7 +8681,8 @@ namespace VULKAN_HPP_NAMESPACE class OpticalFlowSessionNV { public: - using CType = VkOpticalFlowSessionNV; + using CType = VkOpticalFlowSessionNV; + using CppType = vk::OpticalFlowSessionNV; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eOpticalFlowSessionNV; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = @@ -8762,7 +8808,8 @@ namespace VULKAN_HPP_NAMESPACE class PerformanceConfigurationINTEL { public: - using CType = VkPerformanceConfigurationINTEL; + using CType = VkPerformanceConfigurationINTEL; + using CppType = vk::PerformanceConfigurationINTEL; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::ePerformanceConfigurationINTEL; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = @@ -8866,7 +8913,8 @@ namespace VULKAN_HPP_NAMESPACE class PipelineCache { public: - using CType = VkPipelineCache; + using CType = VkPipelineCache; + using CppType = vk::PipelineCache; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::ePipelineCache; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = @@ -8992,7 +9040,8 @@ namespace VULKAN_HPP_NAMESPACE class Pipeline { public: - using CType = VkPipeline; + using CType = VkPipeline; + using CppType = vk::Pipeline; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::ePipeline; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = @@ -9420,7 +9469,8 @@ namespace VULKAN_HPP_NAMESPACE class PipelineLayout { public: - using CType = VkPipelineLayout; + using CType = VkPipelineLayout; + using CppType = vk::PipelineLayout; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::ePipelineLayout; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = @@ -9540,7 +9590,8 @@ namespace VULKAN_HPP_NAMESPACE class PrivateDataSlot { public: - using CType = VkPrivateDataSlot; + using CType = VkPrivateDataSlot; + using CppType = vk::PrivateDataSlot; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::ePrivateDataSlot; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = @@ -9660,7 +9711,8 @@ namespace VULKAN_HPP_NAMESPACE class QueryPool { public: - using CType = VkQueryPool; + using CType = VkQueryPool; + using CppType = vk::QueryPool; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eQueryPool; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = @@ -9804,7 +9856,8 @@ namespace VULKAN_HPP_NAMESPACE class Queue { public: - using CType = VkQueue; + using CType = VkQueue; + using CppType = vk::Queue; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eQueue; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = @@ -9929,6 +9982,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NODISCARD std::vector getCheckpointData2NV() const; + //=== VK_NV_low_latency2 === + + void notifyOutOfBandNV( const VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeInfoNV & queueTypeInfo ) const VULKAN_HPP_NOEXCEPT; + private: VULKAN_HPP_NAMESPACE::Queue m_queue = {}; VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; @@ -9937,7 +9994,8 @@ namespace VULKAN_HPP_NAMESPACE class RenderPass { public: - using CType = VkRenderPass; + using CType = VkRenderPass; + using CppType = vk::RenderPass; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eRenderPass; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = @@ -10082,7 +10140,8 @@ namespace VULKAN_HPP_NAMESPACE class Sampler { public: - using CType = VkSampler; + using CType = VkSampler; + using CppType = vk::Sampler; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eSampler; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = @@ -10201,7 +10260,8 @@ namespace VULKAN_HPP_NAMESPACE class SamplerYcbcrConversion { public: - using CType = VkSamplerYcbcrConversion; + using CType = VkSamplerYcbcrConversion; + using CppType = vk::SamplerYcbcrConversion; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eSamplerYcbcrConversion; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = @@ -10321,7 +10381,8 @@ namespace VULKAN_HPP_NAMESPACE class Semaphore { public: - using CType = VkSemaphore; + using CType = VkSemaphore; + using CppType = vk::Semaphore; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eSemaphore; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = @@ -10448,7 +10509,8 @@ namespace VULKAN_HPP_NAMESPACE class ShaderEXT { public: - using CType = VkShaderEXT; + using CType = VkShaderEXT; + using CppType = vk::ShaderEXT; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eShaderEXT; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = @@ -10610,7 +10672,8 @@ namespace VULKAN_HPP_NAMESPACE class ShaderModule { public: - using CType = VkShaderModule; + using CType = VkShaderModule; + using CppType = vk::ShaderModule; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eShaderModule; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = @@ -10733,7 +10796,8 @@ namespace VULKAN_HPP_NAMESPACE class SurfaceKHR { public: - using CType = VkSurfaceKHR; + using CType = VkSurfaceKHR; + using CppType = vk::SurfaceKHR; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eSurfaceKHR; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = @@ -11130,7 +11194,8 @@ namespace VULKAN_HPP_NAMESPACE class SwapchainKHR { public: - using CType = VkSwapchainKHR; + using CType = VkSwapchainKHR; + using CppType = vk::SwapchainKHR; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eSwapchainKHR; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = @@ -11278,6 +11343,16 @@ namespace VULKAN_HPP_NAMESPACE void releaseFullScreenExclusiveModeEXT() const; # endif /*VK_USE_PLATFORM_WIN32_KHR*/ + //=== VK_NV_low_latency2 === + + void setLatencySleepModeNV( const VULKAN_HPP_NAMESPACE::LatencySleepModeInfoNV & sleepModeInfo ) const; + + void latencySleepNV( const VULKAN_HPP_NAMESPACE::LatencySleepInfoNV & sleepInfo ) const; + + void setLatencyMarkerNV( const VULKAN_HPP_NAMESPACE::SetLatencyMarkerInfoNV & latencyMarkerInfo ) const VULKAN_HPP_NOEXCEPT; + + VULKAN_HPP_NODISCARD std::pair getLatencyTimingsNV() const VULKAN_HPP_NOEXCEPT; + private: VULKAN_HPP_NAMESPACE::Device m_device = {}; VULKAN_HPP_NAMESPACE::SwapchainKHR m_swapchain = {}; @@ -11326,7 +11401,8 @@ namespace VULKAN_HPP_NAMESPACE class ValidationCacheEXT { public: - using CType = VkValidationCacheEXT; + using CType = VkValidationCacheEXT; + using CppType = vk::ValidationCacheEXT; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eValidationCacheEXT; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = @@ -11452,7 +11528,8 @@ namespace VULKAN_HPP_NAMESPACE class VideoSessionKHR { public: - using CType = VkVideoSessionKHR; + using CType = VkVideoSessionKHR; + using CppType = vk::VideoSessionKHR; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eVideoSessionKHR; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = @@ -11578,7 +11655,8 @@ namespace VULKAN_HPP_NAMESPACE class VideoSessionParametersKHR { public: - using CType = VkVideoSessionParametersKHR; + using CType = VkVideoSessionParametersKHR; + using CppType = vk::VideoSessionParametersKHR; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eVideoSessionParametersKHR; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = @@ -18975,6 +19053,16 @@ namespace VULKAN_HPP_NAMESPACE return offset; } + VULKAN_HPP_INLINE void Device::getDescriptorEXT( const VULKAN_HPP_NAMESPACE::DescriptorGetInfoEXT & descriptorInfo, + size_t dataSize, + void * pDescriptor ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( getDispatcher()->vkGetDescriptorEXT && "Function requires " ); + + getDispatcher()->vkGetDescriptorEXT( + static_cast( m_device ), reinterpret_cast( &descriptorInfo ), dataSize, pDescriptor ); + } + template VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE DescriptorType Device::getDescriptorEXT( const VULKAN_HPP_NAMESPACE::DescriptorGetInfoEXT & descriptorInfo ) const VULKAN_HPP_NOEXCEPT @@ -20639,6 +20727,58 @@ namespace VULKAN_HPP_NAMESPACE return properties; } + //=== VK_NV_low_latency2 === + + VULKAN_HPP_INLINE void SwapchainKHR::setLatencySleepModeNV( const VULKAN_HPP_NAMESPACE::LatencySleepModeInfoNV & sleepModeInfo ) const + { + VULKAN_HPP_ASSERT( getDispatcher()->vkSetLatencySleepModeNV && "Function requires " ); + + VkResult result = getDispatcher()->vkSetLatencySleepModeNV( + static_cast( m_device ), static_cast( m_swapchain ), reinterpret_cast( &sleepModeInfo ) ); + resultCheck( static_cast( result ), VULKAN_HPP_NAMESPACE_STRING "::SwapchainKHR::setLatencySleepModeNV" ); + } + + VULKAN_HPP_INLINE void SwapchainKHR::latencySleepNV( const VULKAN_HPP_NAMESPACE::LatencySleepInfoNV & sleepInfo ) const + { + VULKAN_HPP_ASSERT( getDispatcher()->vkLatencySleepNV && "Function requires " ); + + VkResult result = getDispatcher()->vkLatencySleepNV( + static_cast( m_device ), static_cast( m_swapchain ), reinterpret_cast( &sleepInfo ) ); + resultCheck( static_cast( result ), VULKAN_HPP_NAMESPACE_STRING "::SwapchainKHR::latencySleepNV" ); + } + + VULKAN_HPP_INLINE void SwapchainKHR::setLatencyMarkerNV( const VULKAN_HPP_NAMESPACE::SetLatencyMarkerInfoNV & latencyMarkerInfo ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( getDispatcher()->vkSetLatencyMarkerNV && "Function requires " ); + + getDispatcher()->vkSetLatencyMarkerNV( static_cast( m_device ), + static_cast( m_swapchain ), + reinterpret_cast( &latencyMarkerInfo ) ); + } + + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::pair + SwapchainKHR::getLatencyTimingsNV() const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( getDispatcher()->vkGetLatencyTimingsNV && "Function requires " ); + + std::pair data_; + uint32_t & timingCount = data_.first; + VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV & latencyMarkerInfo = data_.second; + getDispatcher()->vkGetLatencyTimingsNV( static_cast( m_device ), + static_cast( m_swapchain ), + &timingCount, + reinterpret_cast( &latencyMarkerInfo ) ); + + return data_; + } + + VULKAN_HPP_INLINE void Queue::notifyOutOfBandNV( const VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeInfoNV & queueTypeInfo ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( getDispatcher()->vkQueueNotifyOutOfBandNV && "Function requires " ); + + getDispatcher()->vkQueueNotifyOutOfBandNV( static_cast( m_queue ), reinterpret_cast( &queueTypeInfo ) ); + } + //=== VK_KHR_cooperative_matrix === VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector @@ -20715,6 +20855,32 @@ namespace VULKAN_HPP_NAMESPACE } # endif /*VK_USE_PLATFORM_SCREEN_QNX*/ + //==================== + //=== RAII Helpers === + //==================== + + template + std::vector filterCppTypes( std::vector const & raiiTypes ) + { + std::vector cppTypes( raiiTypes.size() ); + std::transform( raiiTypes.begin(), raiiTypes.end(), cppTypes.begin(), []( RAIIType const & d ) { return *d; } ); + return cppTypes; + } + + template + std::vector filterCppTypes( std::vector const & raiiTypes, UnaryPredicate p ) + { + std::vector cppTypes; + for ( auto const & t : raiiTypes ) + { + if ( p( t ) ) + { + cppTypes.push_back( *t ); + } + } + return cppTypes; + } + } // namespace VULKAN_HPP_RAII_NAMESPACE } // namespace VULKAN_HPP_NAMESPACE #endif diff --git a/deps/vulkan-headers/include/vulkan/vulkan_shared.hpp b/deps/vulkan-headers/include/vulkan/vulkan_shared.hpp new file mode 100644 index 00000000..7b1bb233 --- /dev/null +++ b/deps/vulkan-headers/include/vulkan/vulkan_shared.hpp @@ -0,0 +1,988 @@ +// Copyright 2015-2023 The Khronos Group Inc. +// +// SPDX-License-Identifier: Apache-2.0 OR MIT +// + +// This header is generated from the Khronos Vulkan XML API Registry. + +#ifndef VULKAN_SHARED_HPP +#define VULKAN_SHARED_HPP + +#include // std::atomic_size_t +#include + +namespace VULKAN_HPP_NAMESPACE +{ +#if !defined( VULKAN_HPP_NO_SMART_HANDLE ) + + template + class SharedHandleTraits; + + class NoDestructor + { + }; + + template + struct HasDestructorType : std::false_type + { + }; + + template + struct HasDestructorType::DestructorType() )> : std::true_type + { + }; + + template + struct GetDestructorType + { + using type = NoDestructor; + }; + + template + struct GetDestructorType::value>::type> + { + using type = typename SharedHandleTraits::DestructorType; + }; + + template + using DestructorTypeOf = typename GetDestructorType::type; + + template + struct HasDestructor : std::integral_constant, NoDestructor>::value> + { + }; + + //===================================================================================================================== + + template + class SharedHandle; + + template + struct SharedHeader + { + SharedHeader( SharedHandle parent, Deleter deleter = Deleter() ) VULKAN_HPP_NOEXCEPT + : parent( std::move( parent ) ) + , deleter( std::move( deleter ) ) + { + } + + SharedHandle parent; + Deleter deleter; + }; + + template + struct SharedHeader + { + SharedHeader( Deleter deleter = Deleter() ) VULKAN_HPP_NOEXCEPT : deleter( std::move( deleter ) ) {} + + Deleter deleter; + }; + + //===================================================================================================================== + + template + class ReferenceCounter + { + public: + template + ReferenceCounter( Args &&... control_args ) : m_header( std::forward( control_args )... ) + { + } + ReferenceCounter( const ReferenceCounter & ) = delete; + ReferenceCounter & operator=( const ReferenceCounter & ) = delete; + + public: + size_t addRef() VULKAN_HPP_NOEXCEPT + { + // Relaxed memory order is sufficient since this does not impose any ordering on other operations + return m_ref_cnt.fetch_add( 1, std::memory_order_relaxed ); + } + + size_t release() VULKAN_HPP_NOEXCEPT + { + // A release memory order to ensure that all releases are ordered + return m_ref_cnt.fetch_sub( 1, std::memory_order_release ); + } + + public: + std::atomic_size_t m_ref_cnt{ 1 }; + HeaderType m_header{}; + }; + + //===================================================================================================================== + + template > + class SharedHandleBase + { + public: + SharedHandleBase() = default; + + template + SharedHandleBase( HandleType handle, Args &&... control_args ) + : m_control( new ReferenceCounter( std::forward( control_args )... ) ), m_handle( handle ) + { + } + + SharedHandleBase( const SharedHandleBase & o ) VULKAN_HPP_NOEXCEPT + { + o.addRef(); + m_handle = o.m_handle; + m_control = o.m_control; + } + + SharedHandleBase( SharedHandleBase && o ) VULKAN_HPP_NOEXCEPT + : m_control( o.m_control ) + , m_handle( o.m_handle ) + { + o.m_handle = nullptr; + o.m_control = nullptr; + } + + SharedHandleBase & operator=( const SharedHandleBase & o ) VULKAN_HPP_NOEXCEPT + { + SharedHandleBase( o ).swap( *this ); + return *this; + } + + SharedHandleBase & operator=( SharedHandleBase && o ) VULKAN_HPP_NOEXCEPT + { + SharedHandleBase( std::move( o ) ).swap( *this ); + return *this; + } + + ~SharedHandleBase() + { + // only this function owns the last reference to the control block + // the same principle is used in the default deleter of std::shared_ptr + if ( m_control && ( m_control->release() == 1 ) ) + { + // noop in x86, but does thread synchronization in ARM + // it is required to ensure that last thread is getting to destroy the control block + // by ordering all atomic operations before this fence + std::atomic_thread_fence( std::memory_order_acquire ); + ForwardType::internalDestroy( getHeader(), m_handle ); + delete m_control; + } + } + + public: + HandleType get() const VULKAN_HPP_NOEXCEPT + { + return m_handle; + } + + HandleType operator*() const VULKAN_HPP_NOEXCEPT + { + return m_handle; + } + + explicit operator bool() const VULKAN_HPP_NOEXCEPT + { + return bool( m_handle ); + } + + const HandleType * operator->() const VULKAN_HPP_NOEXCEPT + { + return &m_handle; + } + + HandleType * operator->() VULKAN_HPP_NOEXCEPT + { + return &m_handle; + } + + void reset() VULKAN_HPP_NOEXCEPT + { + SharedHandleBase().swap( *this ); + } + + void swap( SharedHandleBase & o ) VULKAN_HPP_NOEXCEPT + { + std::swap( m_handle, o.m_handle ); + std::swap( m_control, o.m_control ); + } + + template + typename std::enable_if::value, const SharedHandle> &>::type getDestructorType() const VULKAN_HPP_NOEXCEPT + { + return getHeader().parent; + } + + protected: + template + static typename std::enable_if::value, void>::type internalDestroy( const HeaderType & control, HandleType handle ) VULKAN_HPP_NOEXCEPT + { + control.deleter.destroy( handle ); + } + + template + static typename std::enable_if::value, void>::type internalDestroy( const HeaderType & control, HandleType handle ) VULKAN_HPP_NOEXCEPT + { + control.deleter.destroy( control.parent.get(), handle ); + } + + const HeaderType & getHeader() const VULKAN_HPP_NOEXCEPT + { + return m_control->m_header; + } + + private: + void addRef() const VULKAN_HPP_NOEXCEPT + { + if ( m_control ) + m_control->addRef(); + } + + protected: + ReferenceCounter * m_control = nullptr; + HandleType m_handle{}; + }; + + template + class SharedHandle : public SharedHandleBase, typename SharedHandleTraits::deleter>> + { + private: + using BaseType = SharedHandleBase, typename SharedHandleTraits::deleter>>; + using DeleterType = typename SharedHandleTraits::deleter; + friend BaseType; + + public: + SharedHandle() = default; + + template ::value>::type> + explicit SharedHandle( HandleType handle, SharedHandle> parent, DeleterType deleter = DeleterType() ) VULKAN_HPP_NOEXCEPT + : BaseType( handle, std::move( parent ), std::move( deleter ) ) + { + } + + template ::value>::type> + explicit SharedHandle( HandleType handle, DeleterType deleter = DeleterType() ) VULKAN_HPP_NOEXCEPT : BaseType( handle, std::move( deleter ) ) + { + } + + protected: + using BaseType::internalDestroy; + }; + + template + class SharedHandleTraits; + +// Silence the function cast warnings. +# if defined( __GNUC__ ) && !defined( __clang__ ) && !defined( __INTEL_COMPILER ) +# pragma GCC diagnostic push +# pragma GCC diagnostic ignored "-Wcast-function-type" +# endif + + template + class ObjectDestroyShared + { + public: + using DestructorType = typename SharedHandleTraits::DestructorType; + + template + using DestroyFunctionPointerType = + typename std::conditional::value, + void ( DestructorType::* )( HandleType, const AllocationCallbacks *, const Dispatcher & ) const, + void ( HandleType::* )( const AllocationCallbacks *, const Dispatcher & ) const>::type; + + using SelectorType = typename std::conditional::value, DestructorType, HandleType>::type; + + template + ObjectDestroyShared( Optional allocationCallbacks VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + const Dispatcher & dispatch VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) + : m_destroy( reinterpret_cast( static_cast>( &SelectorType::destroy ) ) ) + , m_dispatch( &dispatch ) + , m_allocationCallbacks( allocationCallbacks ) + { + } + + public: + template + typename std::enable_if::value, void>::type destroy( DestructorType parent, HandleType handle ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( m_destroy && m_dispatch ); + ( parent.*m_destroy )( handle, m_allocationCallbacks, *m_dispatch ); + } + + template + typename std::enable_if::value, void>::type destroy( HandleType handle ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( m_destroy && m_dispatch ); + ( handle.*m_destroy )( m_allocationCallbacks, *m_dispatch ); + } + + private: + DestroyFunctionPointerType m_destroy = nullptr; + const DispatchLoaderBase * m_dispatch = nullptr; + Optional m_allocationCallbacks = nullptr; + }; + + template + class ObjectFreeShared + { + public: + using DestructorType = typename SharedHandleTraits::DestructorType; + + template + using DestroyFunctionPointerType = void ( DestructorType::* )( HandleType, const AllocationCallbacks *, const Dispatcher & ) const; + + template + ObjectFreeShared( Optional allocationCallbacks VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + const Dispatcher & dispatch VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) + : m_destroy( reinterpret_cast( static_cast>( &DestructorType::free ) ) ) + , m_dispatch( &dispatch ) + , m_allocationCallbacks( allocationCallbacks ) + { + } + + public: + void destroy( DestructorType parent, HandleType handle ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( m_destroy && m_dispatch ); + ( parent.*m_destroy )( handle, m_allocationCallbacks, *m_dispatch ); + } + + private: + DestroyFunctionPointerType m_destroy = nullptr; + const DispatchLoaderBase * m_dispatch = nullptr; + Optional m_allocationCallbacks = nullptr; + }; + + template + class ObjectReleaseShared + { + public: + using DestructorType = typename SharedHandleTraits::DestructorType; + + template + using DestroyFunctionPointerType = void ( DestructorType::* )( HandleType, const Dispatcher & ) const; + + template + ObjectReleaseShared( const Dispatcher & dispatch VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) + : m_destroy( reinterpret_cast( static_cast>( &DestructorType::release ) ) ) + , m_dispatch( &dispatch ) + { + } + + public: + void destroy( DestructorType parent, HandleType handle ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( m_destroy && m_dispatch ); + ( parent.*m_destroy )( handle, *m_dispatch ); + } + + private: + DestroyFunctionPointerType m_destroy = nullptr; + const DispatchLoaderBase * m_dispatch = nullptr; + }; + + template + class PoolFreeShared + { + public: + using DestructorType = typename SharedHandleTraits::DestructorType; + + template + using ReturnType = decltype( std::declval().free( PoolType(), 0u, nullptr, Dispatcher() ) ); + + template + using DestroyFunctionPointerType = ReturnType ( DestructorType::* )( PoolType, uint32_t, const HandleType *, const Dispatcher & ) const; + + PoolFreeShared() = default; + + template + PoolFreeShared( SharedHandle pool, const Dispatcher & dispatch VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) + : m_destroy( reinterpret_cast( static_cast>( &DestructorType::free ) ) ) + , m_dispatch( &dispatch ) + , m_pool( std::move( pool ) ) + { + } + + public: + void destroy( DestructorType parent, HandleType handle ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( m_destroy && m_dispatch ); + ( parent.*m_destroy )( m_pool.get(), 1u, &handle, *m_dispatch ); + } + + private: + DestroyFunctionPointerType m_destroy = nullptr; + const DispatchLoaderBase * m_dispatch = nullptr; + SharedHandle m_pool{}; + }; + +# if defined( __GNUC__ ) && !defined( __clang__ ) && !defined( __INTEL_COMPILER ) +# pragma GCC diagnostic pop +# endif + + //====================== + //=== SHARED HANDLEs === + //====================== + + //=== VK_VERSION_1_0 === + template <> + class SharedHandleTraits + { + public: + using DestructorType = NoDestructor; + using deleter = ObjectDestroyShared; + }; + using SharedInstance = SharedHandle; + template <> + class SharedHandleTraits + { + public: + using DestructorType = NoDestructor; + using deleter = ObjectDestroyShared; + }; + using SharedDevice = SharedHandle; + template <> + class SharedHandleTraits + { + public: + using DestructorType = Device; + using deleter = ObjectFreeShared; + }; + using SharedDeviceMemory = SharedHandle; + template <> + class SharedHandleTraits + { + public: + using DestructorType = Device; + using deleter = ObjectDestroyShared; + }; + using SharedFence = SharedHandle; + template <> + class SharedHandleTraits + { + public: + using DestructorType = Device; + using deleter = ObjectDestroyShared; + }; + using SharedSemaphore = SharedHandle; + template <> + class SharedHandleTraits + { + public: + using DestructorType = Device; + using deleter = ObjectDestroyShared; + }; + using SharedEvent = SharedHandle; + template <> + class SharedHandleTraits + { + public: + using DestructorType = Device; + using deleter = ObjectDestroyShared; + }; + using SharedQueryPool = SharedHandle; + template <> + class SharedHandleTraits + { + public: + using DestructorType = Device; + using deleter = ObjectDestroyShared; + }; + using SharedBuffer = SharedHandle; + template <> + class SharedHandleTraits + { + public: + using DestructorType = Device; + using deleter = ObjectDestroyShared; + }; + using SharedBufferView = SharedHandle; + template <> + class SharedHandleTraits + { + public: + using DestructorType = Device; + using deleter = ObjectDestroyShared; + }; + using SharedImage = SharedHandle; + template <> + class SharedHandleTraits + { + public: + using DestructorType = Device; + using deleter = ObjectDestroyShared; + }; + using SharedImageView = SharedHandle; + template <> + class SharedHandleTraits + { + public: + using DestructorType = Device; + using deleter = ObjectDestroyShared; + }; + using SharedShaderModule = SharedHandle; + template <> + class SharedHandleTraits + { + public: + using DestructorType = Device; + using deleter = ObjectDestroyShared; + }; + using SharedPipelineCache = SharedHandle; + template <> + class SharedHandleTraits + { + public: + using DestructorType = Device; + using deleter = ObjectDestroyShared; + }; + using SharedPipeline = SharedHandle; + template <> + class SharedHandleTraits + { + public: + using DestructorType = Device; + using deleter = ObjectDestroyShared; + }; + using SharedPipelineLayout = SharedHandle; + template <> + class SharedHandleTraits + { + public: + using DestructorType = Device; + using deleter = ObjectDestroyShared; + }; + using SharedSampler = SharedHandle; + template <> + class SharedHandleTraits + { + public: + using DestructorType = Device; + using deleter = ObjectDestroyShared; + }; + using SharedDescriptorPool = SharedHandle; + template <> + class SharedHandleTraits + { + public: + using DestructorType = Device; + using deleter = PoolFreeShared; + }; + using SharedDescriptorSet = SharedHandle; + template <> + class SharedHandleTraits + { + public: + using DestructorType = Device; + using deleter = ObjectDestroyShared; + }; + using SharedDescriptorSetLayout = SharedHandle; + template <> + class SharedHandleTraits + { + public: + using DestructorType = Device; + using deleter = ObjectDestroyShared; + }; + using SharedFramebuffer = SharedHandle; + template <> + class SharedHandleTraits + { + public: + using DestructorType = Device; + using deleter = ObjectDestroyShared; + }; + using SharedRenderPass = SharedHandle; + template <> + class SharedHandleTraits + { + public: + using DestructorType = Device; + using deleter = ObjectDestroyShared; + }; + using SharedCommandPool = SharedHandle; + template <> + class SharedHandleTraits + { + public: + using DestructorType = Device; + using deleter = PoolFreeShared; + }; + using SharedCommandBuffer = SharedHandle; + + //=== VK_VERSION_1_1 === + template <> + class SharedHandleTraits + { + public: + using DestructorType = Device; + using deleter = ObjectDestroyShared; + }; + using SharedSamplerYcbcrConversion = SharedHandle; + using SharedSamplerYcbcrConversionKHR = SharedHandle; + template <> + class SharedHandleTraits + { + public: + using DestructorType = Device; + using deleter = ObjectDestroyShared; + }; + using SharedDescriptorUpdateTemplate = SharedHandle; + using SharedDescriptorUpdateTemplateKHR = SharedHandle; + //=== VK_VERSION_1_3 === + template <> + class SharedHandleTraits + { + public: + using DestructorType = Device; + using deleter = ObjectDestroyShared; + }; + using SharedPrivateDataSlot = SharedHandle; + using SharedPrivateDataSlotEXT = SharedHandle; + //=== VK_KHR_surface === + template <> + class SharedHandleTraits + { + public: + using DestructorType = Instance; + using deleter = ObjectDestroyShared; + }; + using SharedSurfaceKHR = SharedHandle; + + //=== VK_KHR_swapchain === + template <> + class SharedHandleTraits + { + public: + using DestructorType = Device; + using deleter = ObjectDestroyShared; + }; + using SharedSwapchainKHR = SharedHandle; + + //=== VK_EXT_debug_report === + template <> + class SharedHandleTraits + { + public: + using DestructorType = Instance; + using deleter = ObjectDestroyShared; + }; + using SharedDebugReportCallbackEXT = SharedHandle; + + //=== VK_KHR_video_queue === + template <> + class SharedHandleTraits + { + public: + using DestructorType = Device; + using deleter = ObjectDestroyShared; + }; + using SharedVideoSessionKHR = SharedHandle; + template <> + class SharedHandleTraits + { + public: + using DestructorType = Device; + using deleter = ObjectDestroyShared; + }; + using SharedVideoSessionParametersKHR = SharedHandle; + + //=== VK_NVX_binary_import === + template <> + class SharedHandleTraits + { + public: + using DestructorType = Device; + using deleter = ObjectDestroyShared; + }; + using SharedCuModuleNVX = SharedHandle; + template <> + class SharedHandleTraits + { + public: + using DestructorType = Device; + using deleter = ObjectDestroyShared; + }; + using SharedCuFunctionNVX = SharedHandle; + + //=== VK_EXT_debug_utils === + template <> + class SharedHandleTraits + { + public: + using DestructorType = Instance; + using deleter = ObjectDestroyShared; + }; + using SharedDebugUtilsMessengerEXT = SharedHandle; + + //=== VK_KHR_acceleration_structure === + template <> + class SharedHandleTraits + { + public: + using DestructorType = Device; + using deleter = ObjectDestroyShared; + }; + using SharedAccelerationStructureKHR = SharedHandle; + + //=== VK_EXT_validation_cache === + template <> + class SharedHandleTraits + { + public: + using DestructorType = Device; + using deleter = ObjectDestroyShared; + }; + using SharedValidationCacheEXT = SharedHandle; + + //=== VK_NV_ray_tracing === + template <> + class SharedHandleTraits + { + public: + using DestructorType = Device; + using deleter = ObjectDestroyShared; + }; + using SharedAccelerationStructureNV = SharedHandle; + + //=== VK_KHR_deferred_host_operations === + template <> + class SharedHandleTraits + { + public: + using DestructorType = Device; + using deleter = ObjectDestroyShared; + }; + using SharedDeferredOperationKHR = SharedHandle; + + //=== VK_NV_device_generated_commands === + template <> + class SharedHandleTraits + { + public: + using DestructorType = Device; + using deleter = ObjectDestroyShared; + }; + using SharedIndirectCommandsLayoutNV = SharedHandle; + +# if defined( VK_USE_PLATFORM_FUCHSIA ) + //=== VK_FUCHSIA_buffer_collection === + template <> + class SharedHandleTraits + { + public: + using DestructorType = Device; + using deleter = ObjectDestroyShared; + }; + using SharedBufferCollectionFUCHSIA = SharedHandle; +# endif /*VK_USE_PLATFORM_FUCHSIA*/ + + //=== VK_EXT_opacity_micromap === + template <> + class SharedHandleTraits + { + public: + using DestructorType = Device; + using deleter = ObjectDestroyShared; + }; + using SharedMicromapEXT = SharedHandle; + + //=== VK_NV_optical_flow === + template <> + class SharedHandleTraits + { + public: + using DestructorType = Device; + using deleter = ObjectDestroyShared; + }; + using SharedOpticalFlowSessionNV = SharedHandle; + + //=== VK_EXT_shader_object === + template <> + class SharedHandleTraits + { + public: + using DestructorType = Device; + using deleter = ObjectDestroyShared; + }; + using SharedShaderEXT = SharedHandle; + + enum class SwapchainOwns + { + no, + yes, + }; + + struct ImageHeader : SharedHeader, typename SharedHandleTraits::deleter> + { + ImageHeader( + SharedHandle> parent, + typename SharedHandleTraits::deleter deleter = typename SharedHandleTraits::deleter(), + SwapchainOwns swapchainOwned = SwapchainOwns::no ) VULKAN_HPP_NOEXCEPT + : SharedHeader, typename SharedHandleTraits::deleter>( std::move( parent ), + std::move( deleter ) ) + , swapchainOwned( swapchainOwned ) + { + } + + SwapchainOwns swapchainOwned = SwapchainOwns::no; + }; + + template <> + class SharedHandle : public SharedHandleBase + { + using BaseType = SharedHandleBase; + using DeleterType = typename SharedHandleTraits::deleter; + friend BaseType; + + public: + SharedHandle() = default; + + explicit SharedHandle( VULKAN_HPP_NAMESPACE::Image handle, + SharedHandle> parent, + SwapchainOwns swapchain_owned = SwapchainOwns::no, + DeleterType deleter = DeleterType() ) VULKAN_HPP_NOEXCEPT + : BaseType( handle, std::move( parent ), std::move( deleter ), swapchain_owned ) + { + } + + protected: + static void internalDestroy( const ImageHeader & control, VULKAN_HPP_NAMESPACE::Image handle ) VULKAN_HPP_NOEXCEPT + { + if ( control.swapchainOwned == SwapchainOwns::no ) + { + control.deleter.destroy( control.parent.get(), handle ); + } + } + }; + + struct SwapchainHeader + { + SwapchainHeader( SharedHandle surface, + SharedHandle> parent, + typename SharedHandleTraits::deleter deleter = + typename SharedHandleTraits::deleter() ) VULKAN_HPP_NOEXCEPT + : surface( std::move( surface ) ) + , parent( std::move( parent ) ) + , deleter( std::move( deleter ) ) + { + } + + SharedHandle surface{}; + SharedHandle> parent{}; + typename SharedHandleTraits::deleter deleter{}; + }; + + template <> + class SharedHandle : public SharedHandleBase + { + using BaseType = SharedHandleBase; + using DeleterType = typename SharedHandleTraits::deleter; + friend BaseType; + + public: + SharedHandle() = default; + + explicit SharedHandle( VULKAN_HPP_NAMESPACE::SwapchainKHR handle, + SharedHandle> parent, + SharedHandle surface, + DeleterType deleter = DeleterType() ) VULKAN_HPP_NOEXCEPT + : BaseType( handle, std::move( surface ), std::move( parent ), std::move( deleter ) ) + { + } + + public: + const SharedHandle & getSurface() const VULKAN_HPP_NOEXCEPT + { + return getHeader().surface; + } + + protected: + using BaseType::internalDestroy; + }; + + template + class SharedHandleBaseNoDestroy : public SharedHandleBase + { + public: + using SharedHandleBase::SharedHandleBase; + + const DestructorType & getDestructorType() const VULKAN_HPP_NOEXCEPT + { + return SharedHandleBase::getHeader(); + } + + protected: + static void internalDestroy( const DestructorType &, HandleType ) VULKAN_HPP_NOEXCEPT {} + }; + + //=== VK_VERSION_1_0 === + + template <> + class SharedHandle : public SharedHandleBaseNoDestroy + { + friend SharedHandleBase; + + public: + SharedHandle() = default; + explicit SharedHandle( PhysicalDevice handle, SharedInstance parent ) noexcept + : SharedHandleBaseNoDestroy( handle, std::move( parent ) ) + { + } + }; + using SharedPhysicalDevice = SharedHandle; + + template <> + class SharedHandle : public SharedHandleBaseNoDestroy + { + friend SharedHandleBase; + + public: + SharedHandle() = default; + explicit SharedHandle( Queue handle, SharedDevice parent ) noexcept : SharedHandleBaseNoDestroy( handle, std::move( parent ) ) {} + }; + using SharedQueue = SharedHandle; + + //=== VK_KHR_display === + + template <> + class SharedHandle : public SharedHandleBaseNoDestroy + { + friend SharedHandleBase; + + public: + SharedHandle() = default; + explicit SharedHandle( DisplayKHR handle, SharedPhysicalDevice parent ) noexcept + : SharedHandleBaseNoDestroy( handle, std::move( parent ) ) + { + } + }; + using SharedDisplayKHR = SharedHandle; + + template <> + class SharedHandle : public SharedHandleBaseNoDestroy + { + friend SharedHandleBase; + + public: + SharedHandle() = default; + explicit SharedHandle( DisplayModeKHR handle, SharedDisplayKHR parent ) noexcept + : SharedHandleBaseNoDestroy( handle, std::move( parent ) ) + { + } + }; + using SharedDisplayModeKHR = SharedHandle; + + //=== VK_INTEL_performance_query === + + template <> + class SharedHandle : public SharedHandleBaseNoDestroy + { + friend SharedHandleBase; + + public: + SharedHandle() = default; + explicit SharedHandle( PerformanceConfigurationINTEL handle, SharedDevice parent ) noexcept + : SharedHandleBaseNoDestroy( handle, std::move( parent ) ) + { + } + }; + using SharedPerformanceConfigurationINTEL = SharedHandle; +#endif // !VULKAN_HPP_NO_SMART_HANDLE +} // namespace VULKAN_HPP_NAMESPACE +#endif // VULKAN_SHARED_HPP diff --git a/deps/vulkan-headers/include/vulkan/vulkan_static_assertions.hpp b/deps/vulkan-headers/include/vulkan/vulkan_static_assertions.hpp index 1fb34dbc..a42e54d2 100644 --- a/deps/vulkan-headers/include/vulkan/vulkan_static_assertions.hpp +++ b/deps/vulkan-headers/include/vulkan/vulkan_static_assertions.hpp @@ -5882,6 +5882,20 @@ VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout::value, "PhysicalDevicePipelinePropertiesFeaturesEXT is not nothrow_move_constructible!" ); +//=== VK_EXT_frame_boundary === + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceFrameBoundaryFeaturesEXT ) == sizeof( VkPhysicalDeviceFrameBoundaryFeaturesEXT ), + "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, + "PhysicalDeviceFrameBoundaryFeaturesEXT is not nothrow_move_constructible!" ); + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::FrameBoundaryEXT ) == sizeof( VkFrameBoundaryEXT ), "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, + "FrameBoundaryEXT is not nothrow_move_constructible!" ); + //=== VK_EXT_multisampled_render_to_single_sampled === VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT ) == @@ -6405,6 +6419,24 @@ VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout::value, "PhysicalDeviceImageProcessingPropertiesQCOM is not nothrow_move_constructible!" ); +//=== VK_EXT_nested_command_buffer === + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceNestedCommandBufferFeaturesEXT ) == + sizeof( VkPhysicalDeviceNestedCommandBufferFeaturesEXT ), + "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, + "PhysicalDeviceNestedCommandBufferFeaturesEXT is not nothrow_move_constructible!" ); + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceNestedCommandBufferPropertiesEXT ) == + sizeof( VkPhysicalDeviceNestedCommandBufferPropertiesEXT ), + "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, + "PhysicalDeviceNestedCommandBufferPropertiesEXT is not nothrow_move_constructible!" ); + //=== VK_EXT_external_memory_acquire_unmodified === VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::ExternalMemoryAcquireUnmodifiedEXT ) == sizeof( VkExternalMemoryAcquireUnmodifiedEXT ), @@ -6613,6 +6645,34 @@ VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout::value, "PhysicalDevicePipelineProtectedAccessFeaturesEXT is not nothrow_move_constructible!" ); +#if defined( VK_USE_PLATFORM_ANDROID_KHR ) +//=== VK_ANDROID_external_format_resolve === + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFormatResolveFeaturesANDROID ) == + sizeof( VkPhysicalDeviceExternalFormatResolveFeaturesANDROID ), + "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, + "PhysicalDeviceExternalFormatResolveFeaturesANDROID is not nothrow_move_constructible!" ); + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFormatResolvePropertiesANDROID ) == + sizeof( VkPhysicalDeviceExternalFormatResolvePropertiesANDROID ), + "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, + "PhysicalDeviceExternalFormatResolvePropertiesANDROID is not nothrow_move_constructible!" ); + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatResolvePropertiesANDROID ) == + sizeof( VkAndroidHardwareBufferFormatResolvePropertiesANDROID ), + "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, + "AndroidHardwareBufferFormatResolvePropertiesANDROID is not nothrow_move_constructible!" ); +#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ + //=== VK_KHR_maintenance5 === VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance5FeaturesKHR ) == sizeof( VkPhysicalDeviceMaintenance5FeaturesKHR ), @@ -6754,6 +6814,24 @@ VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout::value, "PhysicalDeviceRayTracingInvocationReorderFeaturesNV is not nothrow_move_constructible!" ); +//=== VK_NV_extended_sparse_address_space === + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV ) == + sizeof( VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV ), + "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, + "PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV is not nothrow_move_constructible!" ); + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedSparseAddressSpacePropertiesNV ) == + sizeof( VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV ), + "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, + "PhysicalDeviceExtendedSparseAddressSpacePropertiesNV is not nothrow_move_constructible!" ); + //=== VK_EXT_mutable_descriptor_type === VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceMutableDescriptorTypeFeaturesEXT ) == @@ -6815,6 +6893,61 @@ VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout::value, "PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT is not nothrow_move_constructible!" ); +//=== VK_NV_low_latency2 === + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::LatencySleepModeInfoNV ) == sizeof( VkLatencySleepModeInfoNV ), + "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, + "LatencySleepModeInfoNV is not nothrow_move_constructible!" ); + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::LatencySleepInfoNV ) == sizeof( VkLatencySleepInfoNV ), "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, + "LatencySleepInfoNV is not nothrow_move_constructible!" ); + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::SetLatencyMarkerInfoNV ) == sizeof( VkSetLatencyMarkerInfoNV ), + "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, + "SetLatencyMarkerInfoNV is not nothrow_move_constructible!" ); + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV ) == sizeof( VkGetLatencyMarkerInfoNV ), + "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, + "GetLatencyMarkerInfoNV is not nothrow_move_constructible!" ); + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV ) == sizeof( VkLatencyTimingsFrameReportNV ), + "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, + "LatencyTimingsFrameReportNV is not nothrow_move_constructible!" ); + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::LatencySubmissionPresentIdNV ) == sizeof( VkLatencySubmissionPresentIdNV ), + "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, + "LatencySubmissionPresentIdNV is not nothrow_move_constructible!" ); + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::SwapchainLatencyCreateInfoNV ) == sizeof( VkSwapchainLatencyCreateInfoNV ), + "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, + "SwapchainLatencyCreateInfoNV is not nothrow_move_constructible!" ); + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeInfoNV ) == sizeof( VkOutOfBandQueueTypeInfoNV ), + "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, + "OutOfBandQueueTypeInfoNV is not nothrow_move_constructible!" ); + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::LatencySurfaceCapabilitiesNV ) == sizeof( VkLatencySurfaceCapabilitiesNV ), + "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, + "LatencySurfaceCapabilitiesNV is not nothrow_move_constructible!" ); + //=== VK_KHR_cooperative_matrix === VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesKHR ) == sizeof( VkCooperativeMatrixPropertiesKHR ), @@ -6856,6 +6989,77 @@ VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout::value, "MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM is not nothrow_move_constructible!" ); +//=== VK_QCOM_image_processing2 === + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessing2FeaturesQCOM ) == sizeof( VkPhysicalDeviceImageProcessing2FeaturesQCOM ), + "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, + "PhysicalDeviceImageProcessing2FeaturesQCOM is not nothrow_move_constructible!" ); + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessing2PropertiesQCOM ) == + sizeof( VkPhysicalDeviceImageProcessing2PropertiesQCOM ), + "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, + "PhysicalDeviceImageProcessing2PropertiesQCOM is not nothrow_move_constructible!" ); + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::SamplerBlockMatchWindowCreateInfoQCOM ) == sizeof( VkSamplerBlockMatchWindowCreateInfoQCOM ), + "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, + "SamplerBlockMatchWindowCreateInfoQCOM is not nothrow_move_constructible!" ); + +//=== VK_QCOM_filter_cubic_weights === + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceCubicWeightsFeaturesQCOM ) == sizeof( VkPhysicalDeviceCubicWeightsFeaturesQCOM ), + "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, + "PhysicalDeviceCubicWeightsFeaturesQCOM is not nothrow_move_constructible!" ); + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::SamplerCubicWeightsCreateInfoQCOM ) == sizeof( VkSamplerCubicWeightsCreateInfoQCOM ), + "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, + "SamplerCubicWeightsCreateInfoQCOM is not nothrow_move_constructible!" ); + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::BlitImageCubicWeightsInfoQCOM ) == sizeof( VkBlitImageCubicWeightsInfoQCOM ), + "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, + "BlitImageCubicWeightsInfoQCOM is not nothrow_move_constructible!" ); + +//=== VK_QCOM_ycbcr_degamma === + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrDegammaFeaturesQCOM ) == sizeof( VkPhysicalDeviceYcbcrDegammaFeaturesQCOM ), + "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, + "PhysicalDeviceYcbcrDegammaFeaturesQCOM is not nothrow_move_constructible!" ); + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM ) == + sizeof( VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM ), + "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, + "SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM is not nothrow_move_constructible!" ); + +//=== VK_QCOM_filter_cubic_clamp === + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceCubicClampFeaturesQCOM ) == sizeof( VkPhysicalDeviceCubicClampFeaturesQCOM ), + "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, + "PhysicalDeviceCubicClampFeaturesQCOM is not nothrow_move_constructible!" ); + //=== VK_EXT_attachment_feedback_loop_dynamic_state === VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT ) == @@ -6901,4 +7105,23 @@ VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible::value, + "struct wrapper is not a standard layout!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible::value, + "PhysicalDeviceLayeredDriverPropertiesMSFT is not nothrow_move_constructible!" ); + +//=== VK_NV_descriptor_pool_overallocation === + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorPoolOverallocationFeaturesNV ) == + sizeof( VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV ), + "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, + "PhysicalDeviceDescriptorPoolOverallocationFeaturesNV is not nothrow_move_constructible!" ); + #endif diff --git a/deps/vulkan-headers/include/vulkan/vulkan_structs.hpp b/deps/vulkan-headers/include/vulkan/vulkan_structs.hpp index 8ffe8f2e..b7bf6450 100644 --- a/deps/vulkan-headers/include/vulkan/vulkan_structs.hpp +++ b/deps/vulkan-headers/include/vulkan/vulkan_structs.hpp @@ -5097,6 +5097,94 @@ namespace VULKAN_HPP_NAMESPACE }; #endif /*VK_USE_PLATFORM_ANDROID_KHR*/ +#if defined( VK_USE_PLATFORM_ANDROID_KHR ) + struct AndroidHardwareBufferFormatResolvePropertiesANDROID + { + using NativeType = VkAndroidHardwareBufferFormatResolvePropertiesANDROID; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAndroidHardwareBufferFormatResolvePropertiesANDROID; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + AndroidHardwareBufferFormatResolvePropertiesANDROID( VULKAN_HPP_NAMESPACE::Format colorAttachmentFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, + void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT + : pNext( pNext_ ) + , colorAttachmentFormat( colorAttachmentFormat_ ) + { + } + + VULKAN_HPP_CONSTEXPR + AndroidHardwareBufferFormatResolvePropertiesANDROID( AndroidHardwareBufferFormatResolvePropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + AndroidHardwareBufferFormatResolvePropertiesANDROID( VkAndroidHardwareBufferFormatResolvePropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT + : AndroidHardwareBufferFormatResolvePropertiesANDROID( *reinterpret_cast( &rhs ) ) + { + } + + AndroidHardwareBufferFormatResolvePropertiesANDROID & + operator=( AndroidHardwareBufferFormatResolvePropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default; +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + AndroidHardwareBufferFormatResolvePropertiesANDROID & operator=( VkAndroidHardwareBufferFormatResolvePropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + operator VkAndroidHardwareBufferFormatResolvePropertiesANDROID const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkAndroidHardwareBufferFormatResolvePropertiesANDROID &() 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, colorAttachmentFormat ); + } +# endif + +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( AndroidHardwareBufferFormatResolvePropertiesANDROID const & ) const = default; +# else + bool operator==( AndroidHardwareBufferFormatResolvePropertiesANDROID 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 ) && ( colorAttachmentFormat == rhs.colorAttachmentFormat ); +# endif + } + + bool operator!=( AndroidHardwareBufferFormatResolvePropertiesANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +# endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAndroidHardwareBufferFormatResolvePropertiesANDROID; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Format colorAttachmentFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined; + }; + + template <> + struct CppType + { + using Type = AndroidHardwareBufferFormatResolvePropertiesANDROID; + }; +#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ + #if defined( VK_USE_PLATFORM_ANDROID_KHR ) struct AndroidHardwareBufferPropertiesANDROID { @@ -9691,6 +9779,104 @@ namespace VULKAN_HPP_NAMESPACE using Type = BindVideoSessionMemoryInfoKHR; }; + struct BlitImageCubicWeightsInfoQCOM + { + using NativeType = VkBlitImageCubicWeightsInfoQCOM; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBlitImageCubicWeightsInfoQCOM; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + BlitImageCubicWeightsInfoQCOM( VULKAN_HPP_NAMESPACE::CubicFilterWeightsQCOM cubicWeights_ = VULKAN_HPP_NAMESPACE::CubicFilterWeightsQCOM::eCatmullRom, + const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT + : pNext( pNext_ ) + , cubicWeights( cubicWeights_ ) + { + } + + VULKAN_HPP_CONSTEXPR BlitImageCubicWeightsInfoQCOM( BlitImageCubicWeightsInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + BlitImageCubicWeightsInfoQCOM( VkBlitImageCubicWeightsInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT + : BlitImageCubicWeightsInfoQCOM( *reinterpret_cast( &rhs ) ) + { + } + + BlitImageCubicWeightsInfoQCOM & operator=( BlitImageCubicWeightsInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + BlitImageCubicWeightsInfoQCOM & operator=( VkBlitImageCubicWeightsInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + +#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 BlitImageCubicWeightsInfoQCOM & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 BlitImageCubicWeightsInfoQCOM & setCubicWeights( VULKAN_HPP_NAMESPACE::CubicFilterWeightsQCOM cubicWeights_ ) VULKAN_HPP_NOEXCEPT + { + cubicWeights = cubicWeights_; + return *this; + } +#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/ + + operator VkBlitImageCubicWeightsInfoQCOM const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkBlitImageCubicWeightsInfoQCOM &() 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, cubicWeights ); + } +#endif + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( BlitImageCubicWeightsInfoQCOM const & ) const = default; +#else + bool operator==( BlitImageCubicWeightsInfoQCOM 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 ) && ( cubicWeights == rhs.cubicWeights ); +# endif + } + + bool operator!=( BlitImageCubicWeightsInfoQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBlitImageCubicWeightsInfoQCOM; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::CubicFilterWeightsQCOM cubicWeights = VULKAN_HPP_NAMESPACE::CubicFilterWeightsQCOM::eCatmullRom; + }; + + template <> + struct CppType + { + using Type = BlitImageCubicWeightsInfoQCOM; + }; + struct ImageSubresourceLayers { using NativeType = VkImageSubresourceLayers; @@ -36596,6 +36782,235 @@ namespace VULKAN_HPP_NAMESPACE using Type = FragmentShadingRateAttachmentInfoKHR; }; + struct FrameBoundaryEXT + { + using NativeType = VkFrameBoundaryEXT; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFrameBoundaryEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR FrameBoundaryEXT( VULKAN_HPP_NAMESPACE::FrameBoundaryFlagsEXT flags_ = {}, + uint64_t frameID_ = {}, + uint32_t imageCount_ = {}, + const VULKAN_HPP_NAMESPACE::Image * pImages_ = {}, + uint32_t bufferCount_ = {}, + const VULKAN_HPP_NAMESPACE::Buffer * pBuffers_ = {}, + uint64_t tagName_ = {}, + size_t tagSize_ = {}, + const void * pTag_ = {}, + const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT + : pNext( pNext_ ) + , flags( flags_ ) + , frameID( frameID_ ) + , imageCount( imageCount_ ) + , pImages( pImages_ ) + , bufferCount( bufferCount_ ) + , pBuffers( pBuffers_ ) + , tagName( tagName_ ) + , tagSize( tagSize_ ) + , pTag( pTag_ ) + { + } + + VULKAN_HPP_CONSTEXPR FrameBoundaryEXT( FrameBoundaryEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + FrameBoundaryEXT( VkFrameBoundaryEXT const & rhs ) VULKAN_HPP_NOEXCEPT : FrameBoundaryEXT( *reinterpret_cast( &rhs ) ) {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + template + FrameBoundaryEXT( VULKAN_HPP_NAMESPACE::FrameBoundaryFlagsEXT flags_, + uint64_t frameID_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & images_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & buffers_ = {}, + uint64_t tagName_ = {}, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & tag_ = {}, + const void * pNext_ = nullptr ) + : pNext( pNext_ ) + , flags( flags_ ) + , frameID( frameID_ ) + , imageCount( static_cast( images_.size() ) ) + , pImages( images_.data() ) + , bufferCount( static_cast( buffers_.size() ) ) + , pBuffers( buffers_.data() ) + , tagName( tagName_ ) + , tagSize( tag_.size() * sizeof( T ) ) + , pTag( tag_.data() ) + { + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + FrameBoundaryEXT & operator=( FrameBoundaryEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + FrameBoundaryEXT & operator=( VkFrameBoundaryEXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + +#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 FrameBoundaryEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 FrameBoundaryEXT & setFlags( VULKAN_HPP_NAMESPACE::FrameBoundaryFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT + { + flags = flags_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 FrameBoundaryEXT & setFrameID( uint64_t frameID_ ) VULKAN_HPP_NOEXCEPT + { + frameID = frameID_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 FrameBoundaryEXT & setImageCount( uint32_t imageCount_ ) VULKAN_HPP_NOEXCEPT + { + imageCount = imageCount_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 FrameBoundaryEXT & setPImages( const VULKAN_HPP_NAMESPACE::Image * pImages_ ) VULKAN_HPP_NOEXCEPT + { + pImages = pImages_; + return *this; + } + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + FrameBoundaryEXT & setImages( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & images_ ) VULKAN_HPP_NOEXCEPT + { + imageCount = static_cast( images_.size() ); + pImages = images_.data(); + return *this; + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + VULKAN_HPP_CONSTEXPR_14 FrameBoundaryEXT & setBufferCount( uint32_t bufferCount_ ) VULKAN_HPP_NOEXCEPT + { + bufferCount = bufferCount_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 FrameBoundaryEXT & setPBuffers( const VULKAN_HPP_NAMESPACE::Buffer * pBuffers_ ) VULKAN_HPP_NOEXCEPT + { + pBuffers = pBuffers_; + return *this; + } + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + FrameBoundaryEXT & setBuffers( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & buffers_ ) VULKAN_HPP_NOEXCEPT + { + bufferCount = static_cast( buffers_.size() ); + pBuffers = buffers_.data(); + return *this; + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + VULKAN_HPP_CONSTEXPR_14 FrameBoundaryEXT & setTagName( uint64_t tagName_ ) VULKAN_HPP_NOEXCEPT + { + tagName = tagName_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 FrameBoundaryEXT & setTagSize( size_t tagSize_ ) VULKAN_HPP_NOEXCEPT + { + tagSize = tagSize_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 FrameBoundaryEXT & setPTag( const void * pTag_ ) VULKAN_HPP_NOEXCEPT + { + pTag = pTag_; + return *this; + } + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + template + FrameBoundaryEXT & setTag( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & tag_ ) VULKAN_HPP_NOEXCEPT + { + tagSize = tag_.size() * sizeof( T ); + pTag = tag_.data(); + return *this; + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/ + + operator VkFrameBoundaryEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkFrameBoundaryEXT &() 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, frameID, imageCount, pImages, bufferCount, pBuffers, tagName, tagSize, pTag ); + } +#endif + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( FrameBoundaryEXT const & ) const = default; +#else + bool operator==( FrameBoundaryEXT 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 ) && ( frameID == rhs.frameID ) && ( imageCount == rhs.imageCount ) && + ( pImages == rhs.pImages ) && ( bufferCount == rhs.bufferCount ) && ( pBuffers == rhs.pBuffers ) && ( tagName == rhs.tagName ) && + ( tagSize == rhs.tagSize ) && ( pTag == rhs.pTag ); +# endif + } + + bool operator!=( FrameBoundaryEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFrameBoundaryEXT; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::FrameBoundaryFlagsEXT flags = {}; + uint64_t frameID = {}; + uint32_t imageCount = {}; + const VULKAN_HPP_NAMESPACE::Image * pImages = {}; + uint32_t bufferCount = {}; + const VULKAN_HPP_NAMESPACE::Buffer * pBuffers = {}; + uint64_t tagName = {}; + size_t tagSize = {}; + const void * pTag = {}; + }; + + template <> + struct CppType + { + using Type = FrameBoundaryEXT; + }; + struct FramebufferAttachmentImageInfo { using NativeType = VkFramebufferAttachmentImageInfo; @@ -37713,6 +38128,352 @@ namespace VULKAN_HPP_NAMESPACE using Type = GeneratedCommandsMemoryRequirementsInfoNV; }; + struct LatencyTimingsFrameReportNV + { + using NativeType = VkLatencyTimingsFrameReportNV; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eLatencyTimingsFrameReportNV; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR LatencyTimingsFrameReportNV( uint64_t presentID_ = {}, + uint64_t inputSampleTimeUs_ = {}, + uint64_t simStartTimeUs_ = {}, + uint64_t simEndTimeUs_ = {}, + uint64_t renderSubmitStartTimeUs_ = {}, + uint64_t renderSubmitEndTimeUs_ = {}, + uint64_t presentStartTimeUs_ = {}, + uint64_t presentEndTimeUs_ = {}, + uint64_t driverStartTimeUs_ = {}, + uint64_t driverEndTimeUs_ = {}, + uint64_t osRenderQueueStartTimeUs_ = {}, + uint64_t osRenderQueueEndTimeUs_ = {}, + uint64_t gpuRenderStartTimeUs_ = {}, + uint64_t gpuRenderEndTimeUs_ = {}, + const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT + : pNext( pNext_ ) + , presentID( presentID_ ) + , inputSampleTimeUs( inputSampleTimeUs_ ) + , simStartTimeUs( simStartTimeUs_ ) + , simEndTimeUs( simEndTimeUs_ ) + , renderSubmitStartTimeUs( renderSubmitStartTimeUs_ ) + , renderSubmitEndTimeUs( renderSubmitEndTimeUs_ ) + , presentStartTimeUs( presentStartTimeUs_ ) + , presentEndTimeUs( presentEndTimeUs_ ) + , driverStartTimeUs( driverStartTimeUs_ ) + , driverEndTimeUs( driverEndTimeUs_ ) + , osRenderQueueStartTimeUs( osRenderQueueStartTimeUs_ ) + , osRenderQueueEndTimeUs( osRenderQueueEndTimeUs_ ) + , gpuRenderStartTimeUs( gpuRenderStartTimeUs_ ) + , gpuRenderEndTimeUs( gpuRenderEndTimeUs_ ) + { + } + + VULKAN_HPP_CONSTEXPR LatencyTimingsFrameReportNV( LatencyTimingsFrameReportNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + LatencyTimingsFrameReportNV( VkLatencyTimingsFrameReportNV const & rhs ) VULKAN_HPP_NOEXCEPT + : LatencyTimingsFrameReportNV( *reinterpret_cast( &rhs ) ) + { + } + + LatencyTimingsFrameReportNV & operator=( LatencyTimingsFrameReportNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + LatencyTimingsFrameReportNV & operator=( VkLatencyTimingsFrameReportNV const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + +#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setPresentID( uint64_t presentID_ ) VULKAN_HPP_NOEXCEPT + { + presentID = presentID_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setInputSampleTimeUs( uint64_t inputSampleTimeUs_ ) VULKAN_HPP_NOEXCEPT + { + inputSampleTimeUs = inputSampleTimeUs_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setSimStartTimeUs( uint64_t simStartTimeUs_ ) VULKAN_HPP_NOEXCEPT + { + simStartTimeUs = simStartTimeUs_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setSimEndTimeUs( uint64_t simEndTimeUs_ ) VULKAN_HPP_NOEXCEPT + { + simEndTimeUs = simEndTimeUs_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setRenderSubmitStartTimeUs( uint64_t renderSubmitStartTimeUs_ ) VULKAN_HPP_NOEXCEPT + { + renderSubmitStartTimeUs = renderSubmitStartTimeUs_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setRenderSubmitEndTimeUs( uint64_t renderSubmitEndTimeUs_ ) VULKAN_HPP_NOEXCEPT + { + renderSubmitEndTimeUs = renderSubmitEndTimeUs_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setPresentStartTimeUs( uint64_t presentStartTimeUs_ ) VULKAN_HPP_NOEXCEPT + { + presentStartTimeUs = presentStartTimeUs_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setPresentEndTimeUs( uint64_t presentEndTimeUs_ ) VULKAN_HPP_NOEXCEPT + { + presentEndTimeUs = presentEndTimeUs_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setDriverStartTimeUs( uint64_t driverStartTimeUs_ ) VULKAN_HPP_NOEXCEPT + { + driverStartTimeUs = driverStartTimeUs_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setDriverEndTimeUs( uint64_t driverEndTimeUs_ ) VULKAN_HPP_NOEXCEPT + { + driverEndTimeUs = driverEndTimeUs_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setOsRenderQueueStartTimeUs( uint64_t osRenderQueueStartTimeUs_ ) VULKAN_HPP_NOEXCEPT + { + osRenderQueueStartTimeUs = osRenderQueueStartTimeUs_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setOsRenderQueueEndTimeUs( uint64_t osRenderQueueEndTimeUs_ ) VULKAN_HPP_NOEXCEPT + { + osRenderQueueEndTimeUs = osRenderQueueEndTimeUs_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setGpuRenderStartTimeUs( uint64_t gpuRenderStartTimeUs_ ) VULKAN_HPP_NOEXCEPT + { + gpuRenderStartTimeUs = gpuRenderStartTimeUs_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setGpuRenderEndTimeUs( uint64_t gpuRenderEndTimeUs_ ) VULKAN_HPP_NOEXCEPT + { + gpuRenderEndTimeUs = gpuRenderEndTimeUs_; + return *this; + } +#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/ + + operator VkLatencyTimingsFrameReportNV const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkLatencyTimingsFrameReportNV &() 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, + inputSampleTimeUs, + simStartTimeUs, + simEndTimeUs, + renderSubmitStartTimeUs, + renderSubmitEndTimeUs, + presentStartTimeUs, + presentEndTimeUs, + driverStartTimeUs, + driverEndTimeUs, + osRenderQueueStartTimeUs, + osRenderQueueEndTimeUs, + gpuRenderStartTimeUs, + gpuRenderEndTimeUs ); + } +#endif + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( LatencyTimingsFrameReportNV const & ) const = default; +#else + bool operator==( LatencyTimingsFrameReportNV 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 ) && ( inputSampleTimeUs == rhs.inputSampleTimeUs ) && + ( simStartTimeUs == rhs.simStartTimeUs ) && ( simEndTimeUs == rhs.simEndTimeUs ) && ( renderSubmitStartTimeUs == rhs.renderSubmitStartTimeUs ) && + ( renderSubmitEndTimeUs == rhs.renderSubmitEndTimeUs ) && ( presentStartTimeUs == rhs.presentStartTimeUs ) && + ( presentEndTimeUs == rhs.presentEndTimeUs ) && ( driverStartTimeUs == rhs.driverStartTimeUs ) && ( driverEndTimeUs == rhs.driverEndTimeUs ) && + ( osRenderQueueStartTimeUs == rhs.osRenderQueueStartTimeUs ) && ( osRenderQueueEndTimeUs == rhs.osRenderQueueEndTimeUs ) && + ( gpuRenderStartTimeUs == rhs.gpuRenderStartTimeUs ) && ( gpuRenderEndTimeUs == rhs.gpuRenderEndTimeUs ); +# endif + } + + bool operator!=( LatencyTimingsFrameReportNV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eLatencyTimingsFrameReportNV; + const void * pNext = {}; + uint64_t presentID = {}; + uint64_t inputSampleTimeUs = {}; + uint64_t simStartTimeUs = {}; + uint64_t simEndTimeUs = {}; + uint64_t renderSubmitStartTimeUs = {}; + uint64_t renderSubmitEndTimeUs = {}; + uint64_t presentStartTimeUs = {}; + uint64_t presentEndTimeUs = {}; + uint64_t driverStartTimeUs = {}; + uint64_t driverEndTimeUs = {}; + uint64_t osRenderQueueStartTimeUs = {}; + uint64_t osRenderQueueEndTimeUs = {}; + uint64_t gpuRenderStartTimeUs = {}; + uint64_t gpuRenderEndTimeUs = {}; + }; + + template <> + struct CppType + { + using Type = LatencyTimingsFrameReportNV; + }; + + struct GetLatencyMarkerInfoNV + { + using NativeType = VkGetLatencyMarkerInfoNV; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGetLatencyMarkerInfoNV; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR GetLatencyMarkerInfoNV( VULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV * pTimings_ = {}, + const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT + : pNext( pNext_ ) + , pTimings( pTimings_ ) + { + } + + VULKAN_HPP_CONSTEXPR GetLatencyMarkerInfoNV( GetLatencyMarkerInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + GetLatencyMarkerInfoNV( VkGetLatencyMarkerInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + : GetLatencyMarkerInfoNV( *reinterpret_cast( &rhs ) ) + { + } + + GetLatencyMarkerInfoNV & operator=( GetLatencyMarkerInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + GetLatencyMarkerInfoNV & operator=( VkGetLatencyMarkerInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + +#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 GetLatencyMarkerInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 GetLatencyMarkerInfoNV & setPTimings( VULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV * pTimings_ ) VULKAN_HPP_NOEXCEPT + { + pTimings = pTimings_; + return *this; + } +#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/ + + operator VkGetLatencyMarkerInfoNV const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkGetLatencyMarkerInfoNV &() 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, pTimings ); + } +#endif + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( GetLatencyMarkerInfoNV const & ) const = default; +#else + bool operator==( GetLatencyMarkerInfoNV 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 ) && ( pTimings == rhs.pTimings ); +# endif + } + + bool operator!=( GetLatencyMarkerInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGetLatencyMarkerInfoNV; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV * pTimings = {}; + }; + + template <> + struct CppType + { + using Type = GetLatencyMarkerInfoNV; + }; + struct VertexInputBindingDescription { using NativeType = VkVertexInputBindingDescription; @@ -47598,6 +48359,448 @@ namespace VULKAN_HPP_NAMESPACE using Type = InstanceCreateInfo; }; + struct LatencySleepInfoNV + { + using NativeType = VkLatencySleepInfoNV; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eLatencySleepInfoNV; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + LatencySleepInfoNV( VULKAN_HPP_NAMESPACE::Semaphore signalSemaphore_ = {}, uint64_t value_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT + : pNext( pNext_ ) + , signalSemaphore( signalSemaphore_ ) + , value( value_ ) + { + } + + VULKAN_HPP_CONSTEXPR LatencySleepInfoNV( LatencySleepInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + LatencySleepInfoNV( VkLatencySleepInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT : LatencySleepInfoNV( *reinterpret_cast( &rhs ) ) {} + + LatencySleepInfoNV & operator=( LatencySleepInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + LatencySleepInfoNV & operator=( VkLatencySleepInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + +#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 LatencySleepInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 LatencySleepInfoNV & setSignalSemaphore( VULKAN_HPP_NAMESPACE::Semaphore signalSemaphore_ ) VULKAN_HPP_NOEXCEPT + { + signalSemaphore = signalSemaphore_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 LatencySleepInfoNV & setValue( uint64_t value_ ) VULKAN_HPP_NOEXCEPT + { + value = value_; + return *this; + } +#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/ + + operator VkLatencySleepInfoNV const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkLatencySleepInfoNV &() 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, signalSemaphore, value ); + } +#endif + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( LatencySleepInfoNV const & ) const = default; +#else + bool operator==( LatencySleepInfoNV 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 ) && ( signalSemaphore == rhs.signalSemaphore ) && ( value == rhs.value ); +# endif + } + + bool operator!=( LatencySleepInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eLatencySleepInfoNV; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::Semaphore signalSemaphore = {}; + uint64_t value = {}; + }; + + template <> + struct CppType + { + using Type = LatencySleepInfoNV; + }; + + struct LatencySleepModeInfoNV + { + using NativeType = VkLatencySleepModeInfoNV; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eLatencySleepModeInfoNV; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR LatencySleepModeInfoNV( VULKAN_HPP_NAMESPACE::Bool32 lowLatencyMode_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 lowLatencyBoost_ = {}, + uint32_t minimumIntervalUs_ = {}, + const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT + : pNext( pNext_ ) + , lowLatencyMode( lowLatencyMode_ ) + , lowLatencyBoost( lowLatencyBoost_ ) + , minimumIntervalUs( minimumIntervalUs_ ) + { + } + + VULKAN_HPP_CONSTEXPR LatencySleepModeInfoNV( LatencySleepModeInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + LatencySleepModeInfoNV( VkLatencySleepModeInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + : LatencySleepModeInfoNV( *reinterpret_cast( &rhs ) ) + { + } + + LatencySleepModeInfoNV & operator=( LatencySleepModeInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + LatencySleepModeInfoNV & operator=( VkLatencySleepModeInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + +#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 LatencySleepModeInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 LatencySleepModeInfoNV & setLowLatencyMode( VULKAN_HPP_NAMESPACE::Bool32 lowLatencyMode_ ) VULKAN_HPP_NOEXCEPT + { + lowLatencyMode = lowLatencyMode_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 LatencySleepModeInfoNV & setLowLatencyBoost( VULKAN_HPP_NAMESPACE::Bool32 lowLatencyBoost_ ) VULKAN_HPP_NOEXCEPT + { + lowLatencyBoost = lowLatencyBoost_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 LatencySleepModeInfoNV & setMinimumIntervalUs( uint32_t minimumIntervalUs_ ) VULKAN_HPP_NOEXCEPT + { + minimumIntervalUs = minimumIntervalUs_; + return *this; + } +#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/ + + operator VkLatencySleepModeInfoNV const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkLatencySleepModeInfoNV &() 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, lowLatencyMode, lowLatencyBoost, minimumIntervalUs ); + } +#endif + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( LatencySleepModeInfoNV const & ) const = default; +#else + bool operator==( LatencySleepModeInfoNV 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 ) && ( lowLatencyMode == rhs.lowLatencyMode ) && ( lowLatencyBoost == rhs.lowLatencyBoost ) && + ( minimumIntervalUs == rhs.minimumIntervalUs ); +# endif + } + + bool operator!=( LatencySleepModeInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eLatencySleepModeInfoNV; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 lowLatencyMode = {}; + VULKAN_HPP_NAMESPACE::Bool32 lowLatencyBoost = {}; + uint32_t minimumIntervalUs = {}; + }; + + template <> + struct CppType + { + using Type = LatencySleepModeInfoNV; + }; + + struct LatencySubmissionPresentIdNV + { + using NativeType = VkLatencySubmissionPresentIdNV; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eLatencySubmissionPresentIdNV; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR LatencySubmissionPresentIdNV( uint64_t presentID_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT + : pNext( pNext_ ) + , presentID( presentID_ ) + { + } + + VULKAN_HPP_CONSTEXPR LatencySubmissionPresentIdNV( LatencySubmissionPresentIdNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + LatencySubmissionPresentIdNV( VkLatencySubmissionPresentIdNV const & rhs ) VULKAN_HPP_NOEXCEPT + : LatencySubmissionPresentIdNV( *reinterpret_cast( &rhs ) ) + { + } + + LatencySubmissionPresentIdNV & operator=( LatencySubmissionPresentIdNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + LatencySubmissionPresentIdNV & operator=( VkLatencySubmissionPresentIdNV const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + +#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 LatencySubmissionPresentIdNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 LatencySubmissionPresentIdNV & setPresentID( uint64_t presentID_ ) VULKAN_HPP_NOEXCEPT + { + presentID = presentID_; + return *this; + } +#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/ + + operator VkLatencySubmissionPresentIdNV const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkLatencySubmissionPresentIdNV &() 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 ); + } +#endif + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( LatencySubmissionPresentIdNV const & ) const = default; +#else + bool operator==( LatencySubmissionPresentIdNV 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 ); +# endif + } + + bool operator!=( LatencySubmissionPresentIdNV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eLatencySubmissionPresentIdNV; + const void * pNext = {}; + uint64_t presentID = {}; + }; + + template <> + struct CppType + { + using Type = LatencySubmissionPresentIdNV; + }; + + struct LatencySurfaceCapabilitiesNV + { + using NativeType = VkLatencySurfaceCapabilitiesNV; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eLatencySurfaceCapabilitiesNV; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR LatencySurfaceCapabilitiesNV( uint32_t presentModeCount_ = {}, + VULKAN_HPP_NAMESPACE::PresentModeKHR * pPresentModes_ = {}, + const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT + : pNext( pNext_ ) + , presentModeCount( presentModeCount_ ) + , pPresentModes( pPresentModes_ ) + { + } + + VULKAN_HPP_CONSTEXPR LatencySurfaceCapabilitiesNV( LatencySurfaceCapabilitiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + LatencySurfaceCapabilitiesNV( VkLatencySurfaceCapabilitiesNV const & rhs ) VULKAN_HPP_NOEXCEPT + : LatencySurfaceCapabilitiesNV( *reinterpret_cast( &rhs ) ) + { + } + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + LatencySurfaceCapabilitiesNV( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & presentModes_, + const void * pNext_ = nullptr ) + : pNext( pNext_ ), presentModeCount( static_cast( presentModes_.size() ) ), pPresentModes( presentModes_.data() ) + { + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + LatencySurfaceCapabilitiesNV & operator=( LatencySurfaceCapabilitiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + LatencySurfaceCapabilitiesNV & operator=( VkLatencySurfaceCapabilitiesNV const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + +#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 LatencySurfaceCapabilitiesNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 LatencySurfaceCapabilitiesNV & setPresentModeCount( uint32_t presentModeCount_ ) VULKAN_HPP_NOEXCEPT + { + presentModeCount = presentModeCount_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 LatencySurfaceCapabilitiesNV & setPPresentModes( VULKAN_HPP_NAMESPACE::PresentModeKHR * pPresentModes_ ) VULKAN_HPP_NOEXCEPT + { + pPresentModes = pPresentModes_; + return *this; + } + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + LatencySurfaceCapabilitiesNV & + setPresentModes( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & presentModes_ ) VULKAN_HPP_NOEXCEPT + { + presentModeCount = static_cast( presentModes_.size() ); + pPresentModes = presentModes_.data(); + return *this; + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/ + + operator VkLatencySurfaceCapabilitiesNV const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkLatencySurfaceCapabilitiesNV &() 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, presentModeCount, pPresentModes ); + } +#endif + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( LatencySurfaceCapabilitiesNV const & ) const = default; +#else + bool operator==( LatencySurfaceCapabilitiesNV 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 ) && ( presentModeCount == rhs.presentModeCount ) && ( pPresentModes == rhs.pPresentModes ); +# endif + } + + bool operator!=( LatencySurfaceCapabilitiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eLatencySurfaceCapabilitiesNV; + const void * pNext = {}; + uint32_t presentModeCount = {}; + VULKAN_HPP_NAMESPACE::PresentModeKHR * pPresentModes = {}; + }; + + template <> + struct CppType + { + using Type = LatencySurfaceCapabilitiesNV; + }; + struct LayerProperties { using NativeType = VkLayerProperties; @@ -52383,6 +53586,103 @@ namespace VULKAN_HPP_NAMESPACE using Type = OpticalFlowSessionCreatePrivateDataInfoNV; }; + struct OutOfBandQueueTypeInfoNV + { + using NativeType = VkOutOfBandQueueTypeInfoNV; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eOutOfBandQueueTypeInfoNV; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR OutOfBandQueueTypeInfoNV( VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeNV queueType_ = VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeNV::eRender, + const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT + : pNext( pNext_ ) + , queueType( queueType_ ) + { + } + + VULKAN_HPP_CONSTEXPR OutOfBandQueueTypeInfoNV( OutOfBandQueueTypeInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + OutOfBandQueueTypeInfoNV( VkOutOfBandQueueTypeInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + : OutOfBandQueueTypeInfoNV( *reinterpret_cast( &rhs ) ) + { + } + + OutOfBandQueueTypeInfoNV & operator=( OutOfBandQueueTypeInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + OutOfBandQueueTypeInfoNV & operator=( VkOutOfBandQueueTypeInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + +#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 OutOfBandQueueTypeInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 OutOfBandQueueTypeInfoNV & setQueueType( VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeNV queueType_ ) VULKAN_HPP_NOEXCEPT + { + queueType = queueType_; + return *this; + } +#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/ + + operator VkOutOfBandQueueTypeInfoNV const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkOutOfBandQueueTypeInfoNV &() 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, queueType ); + } +#endif + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( OutOfBandQueueTypeInfoNV const & ) const = default; +#else + bool operator==( OutOfBandQueueTypeInfoNV 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 ) && ( queueType == rhs.queueType ); +# endif + } + + bool operator!=( OutOfBandQueueTypeInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eOutOfBandQueueTypeInfoNV; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeNV queueType = VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeNV::eRender; + }; + + template <> + struct CppType + { + using Type = OutOfBandQueueTypeInfoNV; + }; + struct PastPresentationTimingGOOGLE { using NativeType = VkPastPresentationTimingGOOGLE; @@ -56634,6 +57934,200 @@ namespace VULKAN_HPP_NAMESPACE using Type = PhysicalDeviceCoverageReductionModeFeaturesNV; }; + struct PhysicalDeviceCubicClampFeaturesQCOM + { + using NativeType = VkPhysicalDeviceCubicClampFeaturesQCOM; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCubicClampFeaturesQCOM; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceCubicClampFeaturesQCOM( VULKAN_HPP_NAMESPACE::Bool32 cubicRangeClamp_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT + : pNext( pNext_ ) + , cubicRangeClamp( cubicRangeClamp_ ) + { + } + + VULKAN_HPP_CONSTEXPR PhysicalDeviceCubicClampFeaturesQCOM( PhysicalDeviceCubicClampFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceCubicClampFeaturesQCOM( VkPhysicalDeviceCubicClampFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceCubicClampFeaturesQCOM( *reinterpret_cast( &rhs ) ) + { + } + + PhysicalDeviceCubicClampFeaturesQCOM & operator=( PhysicalDeviceCubicClampFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + PhysicalDeviceCubicClampFeaturesQCOM & operator=( VkPhysicalDeviceCubicClampFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + +#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCubicClampFeaturesQCOM & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCubicClampFeaturesQCOM & setCubicRangeClamp( VULKAN_HPP_NAMESPACE::Bool32 cubicRangeClamp_ ) VULKAN_HPP_NOEXCEPT + { + cubicRangeClamp = cubicRangeClamp_; + return *this; + } +#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/ + + operator VkPhysicalDeviceCubicClampFeaturesQCOM const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPhysicalDeviceCubicClampFeaturesQCOM &() 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, cubicRangeClamp ); + } +#endif + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceCubicClampFeaturesQCOM const & ) const = default; +#else + bool operator==( PhysicalDeviceCubicClampFeaturesQCOM 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 ) && ( cubicRangeClamp == rhs.cubicRangeClamp ); +# endif + } + + bool operator!=( PhysicalDeviceCubicClampFeaturesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCubicClampFeaturesQCOM; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 cubicRangeClamp = {}; + }; + + template <> + struct CppType + { + using Type = PhysicalDeviceCubicClampFeaturesQCOM; + }; + + struct PhysicalDeviceCubicWeightsFeaturesQCOM + { + using NativeType = VkPhysicalDeviceCubicWeightsFeaturesQCOM; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCubicWeightsFeaturesQCOM; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceCubicWeightsFeaturesQCOM( VULKAN_HPP_NAMESPACE::Bool32 selectableCubicWeights_ = {}, + void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT + : pNext( pNext_ ) + , selectableCubicWeights( selectableCubicWeights_ ) + { + } + + VULKAN_HPP_CONSTEXPR PhysicalDeviceCubicWeightsFeaturesQCOM( PhysicalDeviceCubicWeightsFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceCubicWeightsFeaturesQCOM( VkPhysicalDeviceCubicWeightsFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceCubicWeightsFeaturesQCOM( *reinterpret_cast( &rhs ) ) + { + } + + PhysicalDeviceCubicWeightsFeaturesQCOM & operator=( PhysicalDeviceCubicWeightsFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + PhysicalDeviceCubicWeightsFeaturesQCOM & operator=( VkPhysicalDeviceCubicWeightsFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + +#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCubicWeightsFeaturesQCOM & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCubicWeightsFeaturesQCOM & + setSelectableCubicWeights( VULKAN_HPP_NAMESPACE::Bool32 selectableCubicWeights_ ) VULKAN_HPP_NOEXCEPT + { + selectableCubicWeights = selectableCubicWeights_; + return *this; + } +#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/ + + operator VkPhysicalDeviceCubicWeightsFeaturesQCOM const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPhysicalDeviceCubicWeightsFeaturesQCOM &() 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, selectableCubicWeights ); + } +#endif + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceCubicWeightsFeaturesQCOM const & ) const = default; +#else + bool operator==( PhysicalDeviceCubicWeightsFeaturesQCOM 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 ) && ( selectableCubicWeights == rhs.selectableCubicWeights ); +# endif + } + + bool operator!=( PhysicalDeviceCubicWeightsFeaturesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCubicWeightsFeaturesQCOM; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 selectableCubicWeights = {}; + }; + + template <> + struct CppType + { + using Type = PhysicalDeviceCubicWeightsFeaturesQCOM; + }; + struct PhysicalDeviceCustomBorderColorFeaturesEXT { using NativeType = VkPhysicalDeviceCustomBorderColorFeaturesEXT; @@ -58523,6 +60017,106 @@ namespace VULKAN_HPP_NAMESPACE }; using PhysicalDeviceDescriptorIndexingPropertiesEXT = PhysicalDeviceDescriptorIndexingProperties; + struct PhysicalDeviceDescriptorPoolOverallocationFeaturesNV + { + using NativeType = VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDescriptorPoolOverallocationFeaturesNV; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceDescriptorPoolOverallocationFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 descriptorPoolOverallocation_ = {}, + void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT + : pNext( pNext_ ) + , descriptorPoolOverallocation( descriptorPoolOverallocation_ ) + { + } + + VULKAN_HPP_CONSTEXPR + PhysicalDeviceDescriptorPoolOverallocationFeaturesNV( PhysicalDeviceDescriptorPoolOverallocationFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceDescriptorPoolOverallocationFeaturesNV( VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceDescriptorPoolOverallocationFeaturesNV( *reinterpret_cast( &rhs ) ) + { + } + + PhysicalDeviceDescriptorPoolOverallocationFeaturesNV & + operator=( PhysicalDeviceDescriptorPoolOverallocationFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + PhysicalDeviceDescriptorPoolOverallocationFeaturesNV & operator=( VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + +#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorPoolOverallocationFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorPoolOverallocationFeaturesNV & + setDescriptorPoolOverallocation( VULKAN_HPP_NAMESPACE::Bool32 descriptorPoolOverallocation_ ) VULKAN_HPP_NOEXCEPT + { + descriptorPoolOverallocation = descriptorPoolOverallocation_; + return *this; + } +#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/ + + operator VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV &() 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, descriptorPoolOverallocation ); + } +#endif + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceDescriptorPoolOverallocationFeaturesNV const & ) const = default; +#else + bool operator==( PhysicalDeviceDescriptorPoolOverallocationFeaturesNV 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 ) && ( descriptorPoolOverallocation == rhs.descriptorPoolOverallocation ); +# endif + } + + bool operator!=( PhysicalDeviceDescriptorPoolOverallocationFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDescriptorPoolOverallocationFeaturesNV; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 descriptorPoolOverallocation = {}; + }; + + template <> + struct CppType + { + using Type = PhysicalDeviceDescriptorPoolOverallocationFeaturesNV; + }; + struct PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE { using NativeType = VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE; @@ -60770,6 +62364,202 @@ namespace VULKAN_HPP_NAMESPACE using Type = PhysicalDeviceExtendedDynamicStateFeaturesEXT; }; + struct PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV + { + using NativeType = VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExtendedSparseAddressSpaceFeaturesNV; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 extendedSparseAddressSpace_ = {}, + void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT + : pNext( pNext_ ) + , extendedSparseAddressSpace( extendedSparseAddressSpace_ ) + { + } + + VULKAN_HPP_CONSTEXPR + PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV( PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV( VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV( *reinterpret_cast( &rhs ) ) + { + } + + PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV & + operator=( PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV & operator=( VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + +#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV & + setExtendedSparseAddressSpace( VULKAN_HPP_NAMESPACE::Bool32 extendedSparseAddressSpace_ ) VULKAN_HPP_NOEXCEPT + { + extendedSparseAddressSpace = extendedSparseAddressSpace_; + return *this; + } +#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/ + + operator VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV &() 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, extendedSparseAddressSpace ); + } +#endif + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV const & ) const = default; +#else + bool operator==( PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV 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 ) && ( extendedSparseAddressSpace == rhs.extendedSparseAddressSpace ); +# endif + } + + bool operator!=( PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExtendedSparseAddressSpaceFeaturesNV; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 extendedSparseAddressSpace = {}; + }; + + template <> + struct CppType + { + using Type = PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV; + }; + + struct PhysicalDeviceExtendedSparseAddressSpacePropertiesNV + { + using NativeType = VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExtendedSparseAddressSpacePropertiesNV; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceExtendedSparseAddressSpacePropertiesNV( VULKAN_HPP_NAMESPACE::DeviceSize extendedSparseAddressSpaceSize_ = {}, + VULKAN_HPP_NAMESPACE::ImageUsageFlags extendedSparseImageUsageFlags_ = {}, + VULKAN_HPP_NAMESPACE::BufferUsageFlags extendedSparseBufferUsageFlags_ = {}, + void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT + : pNext( pNext_ ) + , extendedSparseAddressSpaceSize( extendedSparseAddressSpaceSize_ ) + , extendedSparseImageUsageFlags( extendedSparseImageUsageFlags_ ) + , extendedSparseBufferUsageFlags( extendedSparseBufferUsageFlags_ ) + { + } + + VULKAN_HPP_CONSTEXPR + PhysicalDeviceExtendedSparseAddressSpacePropertiesNV( PhysicalDeviceExtendedSparseAddressSpacePropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceExtendedSparseAddressSpacePropertiesNV( VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceExtendedSparseAddressSpacePropertiesNV( *reinterpret_cast( &rhs ) ) + { + } + + PhysicalDeviceExtendedSparseAddressSpacePropertiesNV & + operator=( PhysicalDeviceExtendedSparseAddressSpacePropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + PhysicalDeviceExtendedSparseAddressSpacePropertiesNV & operator=( VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + operator VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV &() 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, extendedSparseAddressSpaceSize, extendedSparseImageUsageFlags, extendedSparseBufferUsageFlags ); + } +#endif + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceExtendedSparseAddressSpacePropertiesNV const & ) const = default; +#else + bool operator==( PhysicalDeviceExtendedSparseAddressSpacePropertiesNV 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 ) && ( extendedSparseAddressSpaceSize == rhs.extendedSparseAddressSpaceSize ) && + ( extendedSparseImageUsageFlags == rhs.extendedSparseImageUsageFlags ) && ( extendedSparseBufferUsageFlags == rhs.extendedSparseBufferUsageFlags ); +# endif + } + + bool operator!=( PhysicalDeviceExtendedSparseAddressSpacePropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExtendedSparseAddressSpacePropertiesNV; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::DeviceSize extendedSparseAddressSpaceSize = {}; + VULKAN_HPP_NAMESPACE::ImageUsageFlags extendedSparseImageUsageFlags = {}; + VULKAN_HPP_NAMESPACE::BufferUsageFlags extendedSparseBufferUsageFlags = {}; + }; + + template <> + struct CppType + { + using Type = PhysicalDeviceExtendedSparseAddressSpacePropertiesNV; + }; + struct PhysicalDeviceExternalBufferInfo { using NativeType = VkPhysicalDeviceExternalBufferInfo; @@ -60992,6 +62782,209 @@ namespace VULKAN_HPP_NAMESPACE }; using PhysicalDeviceExternalFenceInfoKHR = PhysicalDeviceExternalFenceInfo; +#if defined( VK_USE_PLATFORM_ANDROID_KHR ) + struct PhysicalDeviceExternalFormatResolveFeaturesANDROID + { + using NativeType = VkPhysicalDeviceExternalFormatResolveFeaturesANDROID; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExternalFormatResolveFeaturesANDROID; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalFormatResolveFeaturesANDROID( VULKAN_HPP_NAMESPACE::Bool32 externalFormatResolve_ = {}, + void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT + : pNext( pNext_ ) + , externalFormatResolve( externalFormatResolve_ ) + { + } + + VULKAN_HPP_CONSTEXPR + PhysicalDeviceExternalFormatResolveFeaturesANDROID( PhysicalDeviceExternalFormatResolveFeaturesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceExternalFormatResolveFeaturesANDROID( VkPhysicalDeviceExternalFormatResolveFeaturesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceExternalFormatResolveFeaturesANDROID( *reinterpret_cast( &rhs ) ) + { + } + + PhysicalDeviceExternalFormatResolveFeaturesANDROID & + operator=( PhysicalDeviceExternalFormatResolveFeaturesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default; +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + PhysicalDeviceExternalFormatResolveFeaturesANDROID & operator=( VkPhysicalDeviceExternalFormatResolveFeaturesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + +# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalFormatResolveFeaturesANDROID & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalFormatResolveFeaturesANDROID & + setExternalFormatResolve( VULKAN_HPP_NAMESPACE::Bool32 externalFormatResolve_ ) VULKAN_HPP_NOEXCEPT + { + externalFormatResolve = externalFormatResolve_; + return *this; + } +# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/ + + operator VkPhysicalDeviceExternalFormatResolveFeaturesANDROID const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPhysicalDeviceExternalFormatResolveFeaturesANDROID &() 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, externalFormatResolve ); + } +# endif + +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceExternalFormatResolveFeaturesANDROID const & ) const = default; +# else + bool operator==( PhysicalDeviceExternalFormatResolveFeaturesANDROID 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 ) && ( externalFormatResolve == rhs.externalFormatResolve ); +# endif + } + + bool operator!=( PhysicalDeviceExternalFormatResolveFeaturesANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +# endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalFormatResolveFeaturesANDROID; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 externalFormatResolve = {}; + }; + + template <> + struct CppType + { + using Type = PhysicalDeviceExternalFormatResolveFeaturesANDROID; + }; +#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ + +#if defined( VK_USE_PLATFORM_ANDROID_KHR ) + struct PhysicalDeviceExternalFormatResolvePropertiesANDROID + { + using NativeType = VkPhysicalDeviceExternalFormatResolvePropertiesANDROID; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExternalFormatResolvePropertiesANDROID; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalFormatResolvePropertiesANDROID( + VULKAN_HPP_NAMESPACE::Bool32 nullColorAttachmentWithExternalFormatResolve_ = {}, + VULKAN_HPP_NAMESPACE::ChromaLocation externalFormatResolveChromaOffsetX_ = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven, + VULKAN_HPP_NAMESPACE::ChromaLocation externalFormatResolveChromaOffsetY_ = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven, + void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT + : pNext( pNext_ ) + , nullColorAttachmentWithExternalFormatResolve( nullColorAttachmentWithExternalFormatResolve_ ) + , externalFormatResolveChromaOffsetX( externalFormatResolveChromaOffsetX_ ) + , externalFormatResolveChromaOffsetY( externalFormatResolveChromaOffsetY_ ) + { + } + + VULKAN_HPP_CONSTEXPR + PhysicalDeviceExternalFormatResolvePropertiesANDROID( PhysicalDeviceExternalFormatResolvePropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceExternalFormatResolvePropertiesANDROID( VkPhysicalDeviceExternalFormatResolvePropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceExternalFormatResolvePropertiesANDROID( *reinterpret_cast( &rhs ) ) + { + } + + PhysicalDeviceExternalFormatResolvePropertiesANDROID & + operator=( PhysicalDeviceExternalFormatResolvePropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default; +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + PhysicalDeviceExternalFormatResolvePropertiesANDROID & operator=( VkPhysicalDeviceExternalFormatResolvePropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + operator VkPhysicalDeviceExternalFormatResolvePropertiesANDROID const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPhysicalDeviceExternalFormatResolvePropertiesANDROID &() 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, nullColorAttachmentWithExternalFormatResolve, externalFormatResolveChromaOffsetX, externalFormatResolveChromaOffsetY ); + } +# endif + +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceExternalFormatResolvePropertiesANDROID const & ) const = default; +# else + bool operator==( PhysicalDeviceExternalFormatResolvePropertiesANDROID 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 ) && + ( nullColorAttachmentWithExternalFormatResolve == rhs.nullColorAttachmentWithExternalFormatResolve ) && + ( externalFormatResolveChromaOffsetX == rhs.externalFormatResolveChromaOffsetX ) && + ( externalFormatResolveChromaOffsetY == rhs.externalFormatResolveChromaOffsetY ); +# endif + } + + bool operator!=( PhysicalDeviceExternalFormatResolvePropertiesANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +# endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalFormatResolvePropertiesANDROID; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 nullColorAttachmentWithExternalFormatResolve = {}; + VULKAN_HPP_NAMESPACE::ChromaLocation externalFormatResolveChromaOffsetX = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven; + VULKAN_HPP_NAMESPACE::ChromaLocation externalFormatResolveChromaOffsetY = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven; + }; + + template <> + struct CppType + { + using Type = PhysicalDeviceExternalFormatResolvePropertiesANDROID; + }; +#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ + struct PhysicalDeviceExternalImageFormatInfo { using NativeType = VkPhysicalDeviceExternalImageFormatInfo; @@ -63397,6 +65390,102 @@ namespace VULKAN_HPP_NAMESPACE using Type = PhysicalDeviceFragmentShadingRatePropertiesKHR; }; + struct PhysicalDeviceFrameBoundaryFeaturesEXT + { + using NativeType = VkPhysicalDeviceFrameBoundaryFeaturesEXT; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFrameBoundaryFeaturesEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceFrameBoundaryFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 frameBoundary_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT + : pNext( pNext_ ) + , frameBoundary( frameBoundary_ ) + { + } + + VULKAN_HPP_CONSTEXPR PhysicalDeviceFrameBoundaryFeaturesEXT( PhysicalDeviceFrameBoundaryFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceFrameBoundaryFeaturesEXT( VkPhysicalDeviceFrameBoundaryFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceFrameBoundaryFeaturesEXT( *reinterpret_cast( &rhs ) ) + { + } + + PhysicalDeviceFrameBoundaryFeaturesEXT & operator=( PhysicalDeviceFrameBoundaryFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + PhysicalDeviceFrameBoundaryFeaturesEXT & operator=( VkPhysicalDeviceFrameBoundaryFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + +#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFrameBoundaryFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFrameBoundaryFeaturesEXT & setFrameBoundary( VULKAN_HPP_NAMESPACE::Bool32 frameBoundary_ ) VULKAN_HPP_NOEXCEPT + { + frameBoundary = frameBoundary_; + return *this; + } +#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/ + + operator VkPhysicalDeviceFrameBoundaryFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPhysicalDeviceFrameBoundaryFeaturesEXT &() 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, frameBoundary ); + } +#endif + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceFrameBoundaryFeaturesEXT const & ) const = default; +#else + bool operator==( PhysicalDeviceFrameBoundaryFeaturesEXT 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 ) && ( frameBoundary == rhs.frameBoundary ); +# endif + } + + bool operator!=( PhysicalDeviceFrameBoundaryFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFrameBoundaryFeaturesEXT; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 frameBoundary = {}; + }; + + template <> + struct CppType + { + using Type = PhysicalDeviceFrameBoundaryFeaturesEXT; + }; + struct PhysicalDeviceGlobalPriorityQueryFeaturesKHR { using NativeType = VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR; @@ -64896,6 +66985,187 @@ namespace VULKAN_HPP_NAMESPACE }; using PhysicalDeviceImageFormatInfo2KHR = PhysicalDeviceImageFormatInfo2; + struct PhysicalDeviceImageProcessing2FeaturesQCOM + { + using NativeType = VkPhysicalDeviceImageProcessing2FeaturesQCOM; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImageProcessing2FeaturesQCOM; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceImageProcessing2FeaturesQCOM( VULKAN_HPP_NAMESPACE::Bool32 textureBlockMatch2_ = {}, + void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT + : pNext( pNext_ ) + , textureBlockMatch2( textureBlockMatch2_ ) + { + } + + VULKAN_HPP_CONSTEXPR PhysicalDeviceImageProcessing2FeaturesQCOM( PhysicalDeviceImageProcessing2FeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceImageProcessing2FeaturesQCOM( VkPhysicalDeviceImageProcessing2FeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceImageProcessing2FeaturesQCOM( *reinterpret_cast( &rhs ) ) + { + } + + PhysicalDeviceImageProcessing2FeaturesQCOM & operator=( PhysicalDeviceImageProcessing2FeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + PhysicalDeviceImageProcessing2FeaturesQCOM & operator=( VkPhysicalDeviceImageProcessing2FeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + +#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageProcessing2FeaturesQCOM & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageProcessing2FeaturesQCOM & + setTextureBlockMatch2( VULKAN_HPP_NAMESPACE::Bool32 textureBlockMatch2_ ) VULKAN_HPP_NOEXCEPT + { + textureBlockMatch2 = textureBlockMatch2_; + return *this; + } +#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/ + + operator VkPhysicalDeviceImageProcessing2FeaturesQCOM const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPhysicalDeviceImageProcessing2FeaturesQCOM &() 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, textureBlockMatch2 ); + } +#endif + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceImageProcessing2FeaturesQCOM const & ) const = default; +#else + bool operator==( PhysicalDeviceImageProcessing2FeaturesQCOM 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 ) && ( textureBlockMatch2 == rhs.textureBlockMatch2 ); +# endif + } + + bool operator!=( PhysicalDeviceImageProcessing2FeaturesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImageProcessing2FeaturesQCOM; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 textureBlockMatch2 = {}; + }; + + template <> + struct CppType + { + using Type = PhysicalDeviceImageProcessing2FeaturesQCOM; + }; + + struct PhysicalDeviceImageProcessing2PropertiesQCOM + { + using NativeType = VkPhysicalDeviceImageProcessing2PropertiesQCOM; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImageProcessing2PropertiesQCOM; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceImageProcessing2PropertiesQCOM( VULKAN_HPP_NAMESPACE::Extent2D maxBlockMatchWindow_ = {}, + void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT + : pNext( pNext_ ) + , maxBlockMatchWindow( maxBlockMatchWindow_ ) + { + } + + VULKAN_HPP_CONSTEXPR PhysicalDeviceImageProcessing2PropertiesQCOM( PhysicalDeviceImageProcessing2PropertiesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceImageProcessing2PropertiesQCOM( VkPhysicalDeviceImageProcessing2PropertiesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceImageProcessing2PropertiesQCOM( *reinterpret_cast( &rhs ) ) + { + } + + PhysicalDeviceImageProcessing2PropertiesQCOM & operator=( PhysicalDeviceImageProcessing2PropertiesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + PhysicalDeviceImageProcessing2PropertiesQCOM & operator=( VkPhysicalDeviceImageProcessing2PropertiesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + operator VkPhysicalDeviceImageProcessing2PropertiesQCOM const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPhysicalDeviceImageProcessing2PropertiesQCOM &() 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, maxBlockMatchWindow ); + } +#endif + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceImageProcessing2PropertiesQCOM const & ) const = default; +#else + bool operator==( PhysicalDeviceImageProcessing2PropertiesQCOM 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 ) && ( maxBlockMatchWindow == rhs.maxBlockMatchWindow ); +# endif + } + + bool operator!=( PhysicalDeviceImageProcessing2PropertiesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImageProcessing2PropertiesQCOM; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Extent2D maxBlockMatchWindow = {}; + }; + + template <> + struct CppType + { + using Type = PhysicalDeviceImageProcessing2PropertiesQCOM; + }; + struct PhysicalDeviceImageProcessingFeaturesQCOM { using NativeType = VkPhysicalDeviceImageProcessingFeaturesQCOM; @@ -66123,6 +68393,90 @@ namespace VULKAN_HPP_NAMESPACE using Type = PhysicalDeviceInvocationMaskFeaturesHUAWEI; }; + struct PhysicalDeviceLayeredDriverPropertiesMSFT + { + using NativeType = VkPhysicalDeviceLayeredDriverPropertiesMSFT; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceLayeredDriverPropertiesMSFT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceLayeredDriverPropertiesMSFT( + VULKAN_HPP_NAMESPACE::LayeredDriverUnderlyingApiMSFT underlyingAPI_ = VULKAN_HPP_NAMESPACE::LayeredDriverUnderlyingApiMSFT::eNone, + void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT + : pNext( pNext_ ) + , underlyingAPI( underlyingAPI_ ) + { + } + + VULKAN_HPP_CONSTEXPR PhysicalDeviceLayeredDriverPropertiesMSFT( PhysicalDeviceLayeredDriverPropertiesMSFT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceLayeredDriverPropertiesMSFT( VkPhysicalDeviceLayeredDriverPropertiesMSFT const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceLayeredDriverPropertiesMSFT( *reinterpret_cast( &rhs ) ) + { + } + + PhysicalDeviceLayeredDriverPropertiesMSFT & operator=( PhysicalDeviceLayeredDriverPropertiesMSFT const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + PhysicalDeviceLayeredDriverPropertiesMSFT & operator=( VkPhysicalDeviceLayeredDriverPropertiesMSFT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + operator VkPhysicalDeviceLayeredDriverPropertiesMSFT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPhysicalDeviceLayeredDriverPropertiesMSFT &() 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, underlyingAPI ); + } +#endif + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceLayeredDriverPropertiesMSFT const & ) const = default; +#else + bool operator==( PhysicalDeviceLayeredDriverPropertiesMSFT 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 ) && ( underlyingAPI == rhs.underlyingAPI ); +# endif + } + + bool operator!=( PhysicalDeviceLayeredDriverPropertiesMSFT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceLayeredDriverPropertiesMSFT; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::LayeredDriverUnderlyingApiMSFT underlyingAPI = VULKAN_HPP_NAMESPACE::LayeredDriverUnderlyingApiMSFT::eNone; + }; + + template <> + struct CppType + { + using Type = PhysicalDeviceLayeredDriverPropertiesMSFT; + }; + struct PhysicalDeviceLegacyDitheringFeaturesEXT { using NativeType = VkPhysicalDeviceLegacyDitheringFeaturesEXT; @@ -69751,6 +72105,229 @@ namespace VULKAN_HPP_NAMESPACE }; using PhysicalDeviceMutableDescriptorTypeFeaturesVALVE = PhysicalDeviceMutableDescriptorTypeFeaturesEXT; + struct PhysicalDeviceNestedCommandBufferFeaturesEXT + { + using NativeType = VkPhysicalDeviceNestedCommandBufferFeaturesEXT; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceNestedCommandBufferFeaturesEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceNestedCommandBufferFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 nestedCommandBuffer_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 nestedCommandBufferRendering_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 nestedCommandBufferSimultaneousUse_ = {}, + void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT + : pNext( pNext_ ) + , nestedCommandBuffer( nestedCommandBuffer_ ) + , nestedCommandBufferRendering( nestedCommandBufferRendering_ ) + , nestedCommandBufferSimultaneousUse( nestedCommandBufferSimultaneousUse_ ) + { + } + + VULKAN_HPP_CONSTEXPR PhysicalDeviceNestedCommandBufferFeaturesEXT( PhysicalDeviceNestedCommandBufferFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceNestedCommandBufferFeaturesEXT( VkPhysicalDeviceNestedCommandBufferFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceNestedCommandBufferFeaturesEXT( *reinterpret_cast( &rhs ) ) + { + } + + PhysicalDeviceNestedCommandBufferFeaturesEXT & operator=( PhysicalDeviceNestedCommandBufferFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + PhysicalDeviceNestedCommandBufferFeaturesEXT & operator=( VkPhysicalDeviceNestedCommandBufferFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + +#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceNestedCommandBufferFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceNestedCommandBufferFeaturesEXT & + setNestedCommandBuffer( VULKAN_HPP_NAMESPACE::Bool32 nestedCommandBuffer_ ) VULKAN_HPP_NOEXCEPT + { + nestedCommandBuffer = nestedCommandBuffer_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceNestedCommandBufferFeaturesEXT & + setNestedCommandBufferRendering( VULKAN_HPP_NAMESPACE::Bool32 nestedCommandBufferRendering_ ) VULKAN_HPP_NOEXCEPT + { + nestedCommandBufferRendering = nestedCommandBufferRendering_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceNestedCommandBufferFeaturesEXT & + setNestedCommandBufferSimultaneousUse( VULKAN_HPP_NAMESPACE::Bool32 nestedCommandBufferSimultaneousUse_ ) VULKAN_HPP_NOEXCEPT + { + nestedCommandBufferSimultaneousUse = nestedCommandBufferSimultaneousUse_; + return *this; + } +#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/ + + operator VkPhysicalDeviceNestedCommandBufferFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPhysicalDeviceNestedCommandBufferFeaturesEXT &() 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, nestedCommandBuffer, nestedCommandBufferRendering, nestedCommandBufferSimultaneousUse ); + } +#endif + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceNestedCommandBufferFeaturesEXT const & ) const = default; +#else + bool operator==( PhysicalDeviceNestedCommandBufferFeaturesEXT 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 ) && ( nestedCommandBuffer == rhs.nestedCommandBuffer ) && + ( nestedCommandBufferRendering == rhs.nestedCommandBufferRendering ) && + ( nestedCommandBufferSimultaneousUse == rhs.nestedCommandBufferSimultaneousUse ); +# endif + } + + bool operator!=( PhysicalDeviceNestedCommandBufferFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceNestedCommandBufferFeaturesEXT; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 nestedCommandBuffer = {}; + VULKAN_HPP_NAMESPACE::Bool32 nestedCommandBufferRendering = {}; + VULKAN_HPP_NAMESPACE::Bool32 nestedCommandBufferSimultaneousUse = {}; + }; + + template <> + struct CppType + { + using Type = PhysicalDeviceNestedCommandBufferFeaturesEXT; + }; + + struct PhysicalDeviceNestedCommandBufferPropertiesEXT + { + using NativeType = VkPhysicalDeviceNestedCommandBufferPropertiesEXT; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceNestedCommandBufferPropertiesEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceNestedCommandBufferPropertiesEXT( uint32_t maxCommandBufferNestingLevel_ = {}, + void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT + : pNext( pNext_ ) + , maxCommandBufferNestingLevel( maxCommandBufferNestingLevel_ ) + { + } + + VULKAN_HPP_CONSTEXPR + PhysicalDeviceNestedCommandBufferPropertiesEXT( PhysicalDeviceNestedCommandBufferPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceNestedCommandBufferPropertiesEXT( VkPhysicalDeviceNestedCommandBufferPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceNestedCommandBufferPropertiesEXT( *reinterpret_cast( &rhs ) ) + { + } + + PhysicalDeviceNestedCommandBufferPropertiesEXT & operator=( PhysicalDeviceNestedCommandBufferPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + PhysicalDeviceNestedCommandBufferPropertiesEXT & operator=( VkPhysicalDeviceNestedCommandBufferPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + +#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceNestedCommandBufferPropertiesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceNestedCommandBufferPropertiesEXT & + setMaxCommandBufferNestingLevel( uint32_t maxCommandBufferNestingLevel_ ) VULKAN_HPP_NOEXCEPT + { + maxCommandBufferNestingLevel = maxCommandBufferNestingLevel_; + return *this; + } +#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/ + + operator VkPhysicalDeviceNestedCommandBufferPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPhysicalDeviceNestedCommandBufferPropertiesEXT &() 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, maxCommandBufferNestingLevel ); + } +#endif + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceNestedCommandBufferPropertiesEXT const & ) const = default; +#else + bool operator==( PhysicalDeviceNestedCommandBufferPropertiesEXT 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 ) && ( maxCommandBufferNestingLevel == rhs.maxCommandBufferNestingLevel ); +# endif + } + + bool operator!=( PhysicalDeviceNestedCommandBufferPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceNestedCommandBufferPropertiesEXT; + void * pNext = {}; + uint32_t maxCommandBufferNestingLevel = {}; + }; + + template <> + struct CppType + { + using Type = PhysicalDeviceNestedCommandBufferPropertiesEXT; + }; + struct PhysicalDeviceNonSeamlessCubeMapFeaturesEXT { using NativeType = VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT; @@ -84338,6 +86915,102 @@ namespace VULKAN_HPP_NAMESPACE using Type = PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT; }; + struct PhysicalDeviceYcbcrDegammaFeaturesQCOM + { + using NativeType = VkPhysicalDeviceYcbcrDegammaFeaturesQCOM; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceYcbcrDegammaFeaturesQCOM; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceYcbcrDegammaFeaturesQCOM( VULKAN_HPP_NAMESPACE::Bool32 ycbcrDegamma_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT + : pNext( pNext_ ) + , ycbcrDegamma( ycbcrDegamma_ ) + { + } + + VULKAN_HPP_CONSTEXPR PhysicalDeviceYcbcrDegammaFeaturesQCOM( PhysicalDeviceYcbcrDegammaFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceYcbcrDegammaFeaturesQCOM( VkPhysicalDeviceYcbcrDegammaFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceYcbcrDegammaFeaturesQCOM( *reinterpret_cast( &rhs ) ) + { + } + + PhysicalDeviceYcbcrDegammaFeaturesQCOM & operator=( PhysicalDeviceYcbcrDegammaFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + PhysicalDeviceYcbcrDegammaFeaturesQCOM & operator=( VkPhysicalDeviceYcbcrDegammaFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + +#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceYcbcrDegammaFeaturesQCOM & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceYcbcrDegammaFeaturesQCOM & setYcbcrDegamma( VULKAN_HPP_NAMESPACE::Bool32 ycbcrDegamma_ ) VULKAN_HPP_NOEXCEPT + { + ycbcrDegamma = ycbcrDegamma_; + return *this; + } +#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/ + + operator VkPhysicalDeviceYcbcrDegammaFeaturesQCOM const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPhysicalDeviceYcbcrDegammaFeaturesQCOM &() 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, ycbcrDegamma ); + } +#endif + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceYcbcrDegammaFeaturesQCOM const & ) const = default; +#else + bool operator==( PhysicalDeviceYcbcrDegammaFeaturesQCOM 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 ) && ( ycbcrDegamma == rhs.ycbcrDegamma ); +# endif + } + + bool operator!=( PhysicalDeviceYcbcrDegammaFeaturesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceYcbcrDegammaFeaturesQCOM; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 ycbcrDegamma = {}; + }; + + template <> + struct CppType + { + using Type = PhysicalDeviceYcbcrDegammaFeaturesQCOM; + }; + struct PhysicalDeviceYcbcrImageArraysFeaturesEXT { using NativeType = VkPhysicalDeviceYcbcrImageArraysFeaturesEXT; @@ -92616,10 +95289,10 @@ namespace VULKAN_HPP_NAMESPACE #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) VULKAN_HPP_CONSTEXPR RayTracingShaderGroupCreateInfoKHR( VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR type_ = VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR::eGeneral, - uint32_t generalShader_ = {}, - uint32_t closestHitShader_ = {}, - uint32_t anyHitShader_ = {}, - uint32_t intersectionShader_ = {}, + uint32_t generalShader_ = VULKAN_HPP_NAMESPACE::ShaderUnusedKHR, + uint32_t closestHitShader_ = VULKAN_HPP_NAMESPACE::ShaderUnusedKHR, + uint32_t anyHitShader_ = VULKAN_HPP_NAMESPACE::ShaderUnusedKHR, + uint32_t intersectionShader_ = VULKAN_HPP_NAMESPACE::ShaderUnusedKHR, const void * pShaderGroupCaptureReplayHandle_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT : pNext( pNext_ ) @@ -92746,10 +95419,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRayTracingShaderGroupCreateInfoKHR; const void * pNext = {}; VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR type = VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR::eGeneral; - uint32_t generalShader = {}; - uint32_t closestHitShader = {}; - uint32_t anyHitShader = {}; - uint32_t intersectionShader = {}; + uint32_t generalShader = VULKAN_HPP_NAMESPACE::ShaderUnusedKHR; + uint32_t closestHitShader = VULKAN_HPP_NAMESPACE::ShaderUnusedKHR; + uint32_t anyHitShader = VULKAN_HPP_NAMESPACE::ShaderUnusedKHR; + uint32_t intersectionShader = VULKAN_HPP_NAMESPACE::ShaderUnusedKHR; const void * pShaderGroupCaptureReplayHandle = {}; }; @@ -93157,10 +95830,10 @@ namespace VULKAN_HPP_NAMESPACE #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) VULKAN_HPP_CONSTEXPR RayTracingShaderGroupCreateInfoNV( VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR type_ = VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR::eGeneral, - uint32_t generalShader_ = {}, - uint32_t closestHitShader_ = {}, - uint32_t anyHitShader_ = {}, - uint32_t intersectionShader_ = {}, + uint32_t generalShader_ = VULKAN_HPP_NAMESPACE::ShaderUnusedNV, + uint32_t closestHitShader_ = VULKAN_HPP_NAMESPACE::ShaderUnusedNV, + uint32_t anyHitShader_ = VULKAN_HPP_NAMESPACE::ShaderUnusedNV, + uint32_t intersectionShader_ = VULKAN_HPP_NAMESPACE::ShaderUnusedNV, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT : pNext( pNext_ ) , type( type_ ) @@ -93276,10 +95949,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRayTracingShaderGroupCreateInfoNV; const void * pNext = {}; VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR type = VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR::eGeneral; - uint32_t generalShader = {}; - uint32_t closestHitShader = {}; - uint32_t anyHitShader = {}; - uint32_t intersectionShader = {}; + uint32_t generalShader = VULKAN_HPP_NAMESPACE::ShaderUnusedNV; + uint32_t closestHitShader = VULKAN_HPP_NAMESPACE::ShaderUnusedNV; + uint32_t anyHitShader = VULKAN_HPP_NAMESPACE::ShaderUnusedNV; + uint32_t intersectionShader = VULKAN_HPP_NAMESPACE::ShaderUnusedNV; }; template <> @@ -97483,6 +100156,117 @@ namespace VULKAN_HPP_NAMESPACE }; using ResolveImageInfo2KHR = ResolveImageInfo2; + struct SamplerBlockMatchWindowCreateInfoQCOM + { + using NativeType = VkSamplerBlockMatchWindowCreateInfoQCOM; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerBlockMatchWindowCreateInfoQCOM; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR SamplerBlockMatchWindowCreateInfoQCOM( + VULKAN_HPP_NAMESPACE::Extent2D windowExtent_ = {}, + VULKAN_HPP_NAMESPACE::BlockMatchWindowCompareModeQCOM windowCompareMode_ = VULKAN_HPP_NAMESPACE::BlockMatchWindowCompareModeQCOM::eMin, + const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT + : pNext( pNext_ ) + , windowExtent( windowExtent_ ) + , windowCompareMode( windowCompareMode_ ) + { + } + + VULKAN_HPP_CONSTEXPR SamplerBlockMatchWindowCreateInfoQCOM( SamplerBlockMatchWindowCreateInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + SamplerBlockMatchWindowCreateInfoQCOM( VkSamplerBlockMatchWindowCreateInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT + : SamplerBlockMatchWindowCreateInfoQCOM( *reinterpret_cast( &rhs ) ) + { + } + + SamplerBlockMatchWindowCreateInfoQCOM & operator=( SamplerBlockMatchWindowCreateInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + SamplerBlockMatchWindowCreateInfoQCOM & operator=( VkSamplerBlockMatchWindowCreateInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + +#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 SamplerBlockMatchWindowCreateInfoQCOM & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 SamplerBlockMatchWindowCreateInfoQCOM & setWindowExtent( VULKAN_HPP_NAMESPACE::Extent2D const & windowExtent_ ) VULKAN_HPP_NOEXCEPT + { + windowExtent = windowExtent_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 SamplerBlockMatchWindowCreateInfoQCOM & + setWindowCompareMode( VULKAN_HPP_NAMESPACE::BlockMatchWindowCompareModeQCOM windowCompareMode_ ) VULKAN_HPP_NOEXCEPT + { + windowCompareMode = windowCompareMode_; + return *this; + } +#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/ + + operator VkSamplerBlockMatchWindowCreateInfoQCOM const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkSamplerBlockMatchWindowCreateInfoQCOM &() 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, windowExtent, windowCompareMode ); + } +#endif + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( SamplerBlockMatchWindowCreateInfoQCOM const & ) const = default; +#else + bool operator==( SamplerBlockMatchWindowCreateInfoQCOM 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 ) && ( windowExtent == rhs.windowExtent ) && ( windowCompareMode == rhs.windowCompareMode ); +# endif + } + + bool operator!=( SamplerBlockMatchWindowCreateInfoQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerBlockMatchWindowCreateInfoQCOM; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::Extent2D windowExtent = {}; + VULKAN_HPP_NAMESPACE::BlockMatchWindowCompareModeQCOM windowCompareMode = VULKAN_HPP_NAMESPACE::BlockMatchWindowCompareModeQCOM::eMin; + }; + + template <> + struct CppType + { + using Type = SamplerBlockMatchWindowCreateInfoQCOM; + }; + struct SamplerBorderColorComponentMappingCreateInfoEXT { using NativeType = VkSamplerBorderColorComponentMappingCreateInfoEXT; @@ -97957,6 +100741,105 @@ namespace VULKAN_HPP_NAMESPACE using Type = SamplerCreateInfo; }; + struct SamplerCubicWeightsCreateInfoQCOM + { + using NativeType = VkSamplerCubicWeightsCreateInfoQCOM; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerCubicWeightsCreateInfoQCOM; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + SamplerCubicWeightsCreateInfoQCOM( VULKAN_HPP_NAMESPACE::CubicFilterWeightsQCOM cubicWeights_ = VULKAN_HPP_NAMESPACE::CubicFilterWeightsQCOM::eCatmullRom, + const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT + : pNext( pNext_ ) + , cubicWeights( cubicWeights_ ) + { + } + + VULKAN_HPP_CONSTEXPR SamplerCubicWeightsCreateInfoQCOM( SamplerCubicWeightsCreateInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + SamplerCubicWeightsCreateInfoQCOM( VkSamplerCubicWeightsCreateInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT + : SamplerCubicWeightsCreateInfoQCOM( *reinterpret_cast( &rhs ) ) + { + } + + SamplerCubicWeightsCreateInfoQCOM & operator=( SamplerCubicWeightsCreateInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + SamplerCubicWeightsCreateInfoQCOM & operator=( VkSamplerCubicWeightsCreateInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + +#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 SamplerCubicWeightsCreateInfoQCOM & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 SamplerCubicWeightsCreateInfoQCOM & + setCubicWeights( VULKAN_HPP_NAMESPACE::CubicFilterWeightsQCOM cubicWeights_ ) VULKAN_HPP_NOEXCEPT + { + cubicWeights = cubicWeights_; + return *this; + } +#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/ + + operator VkSamplerCubicWeightsCreateInfoQCOM const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkSamplerCubicWeightsCreateInfoQCOM &() 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, cubicWeights ); + } +#endif + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( SamplerCubicWeightsCreateInfoQCOM const & ) const = default; +#else + bool operator==( SamplerCubicWeightsCreateInfoQCOM 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 ) && ( cubicWeights == rhs.cubicWeights ); +# endif + } + + bool operator!=( SamplerCubicWeightsCreateInfoQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerCubicWeightsCreateInfoQCOM; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::CubicFilterWeightsQCOM cubicWeights = VULKAN_HPP_NAMESPACE::CubicFilterWeightsQCOM::eCatmullRom; + }; + + template <> + struct CppType + { + using Type = SamplerCubicWeightsCreateInfoQCOM; + }; + struct SamplerCustomBorderColorCreateInfoEXT { using NativeType = VkSamplerCustomBorderColorCreateInfoEXT; @@ -98506,6 +101389,115 @@ namespace VULKAN_HPP_NAMESPACE }; using SamplerYcbcrConversionInfoKHR = SamplerYcbcrConversionInfo; + struct SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM + { + using NativeType = VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM( VULKAN_HPP_NAMESPACE::Bool32 enableYDegamma_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 enableCbCrDegamma_ = {}, + void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT + : pNext( pNext_ ) + , enableYDegamma( enableYDegamma_ ) + , enableCbCrDegamma( enableCbCrDegamma_ ) + { + } + + VULKAN_HPP_CONSTEXPR + SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM( SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM( VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT + : SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM( *reinterpret_cast( &rhs ) ) + { + } + + SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM & operator=( SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM & operator=( VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + +#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM & + setEnableYDegamma( VULKAN_HPP_NAMESPACE::Bool32 enableYDegamma_ ) VULKAN_HPP_NOEXCEPT + { + enableYDegamma = enableYDegamma_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM & + setEnableCbCrDegamma( VULKAN_HPP_NAMESPACE::Bool32 enableCbCrDegamma_ ) VULKAN_HPP_NOEXCEPT + { + enableCbCrDegamma = enableCbCrDegamma_; + return *this; + } +#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/ + + operator VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM &() 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, enableYDegamma, enableCbCrDegamma ); + } +#endif + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM const & ) const = default; +#else + bool operator==( SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM 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 ) && ( enableYDegamma == rhs.enableYDegamma ) && ( enableCbCrDegamma == rhs.enableCbCrDegamma ); +# endif + } + + bool operator!=( SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 enableYDegamma = {}; + VULKAN_HPP_NAMESPACE::Bool32 enableCbCrDegamma = {}; + }; + + template <> + struct CppType + { + using Type = SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM; + }; + #if defined( VK_USE_PLATFORM_SCREEN_QNX ) struct ScreenBufferFormatPropertiesQNX { @@ -99791,6 +102783,112 @@ namespace VULKAN_HPP_NAMESPACE }; using SemaphoreWaitInfoKHR = SemaphoreWaitInfo; + struct SetLatencyMarkerInfoNV + { + using NativeType = VkSetLatencyMarkerInfoNV; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSetLatencyMarkerInfoNV; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR SetLatencyMarkerInfoNV( uint64_t presentID_ = {}, + VULKAN_HPP_NAMESPACE::LatencyMarkerNV marker_ = VULKAN_HPP_NAMESPACE::LatencyMarkerNV::eSimulationStart, + const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT + : pNext( pNext_ ) + , presentID( presentID_ ) + , marker( marker_ ) + { + } + + VULKAN_HPP_CONSTEXPR SetLatencyMarkerInfoNV( SetLatencyMarkerInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + SetLatencyMarkerInfoNV( VkSetLatencyMarkerInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + : SetLatencyMarkerInfoNV( *reinterpret_cast( &rhs ) ) + { + } + + SetLatencyMarkerInfoNV & operator=( SetLatencyMarkerInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + SetLatencyMarkerInfoNV & operator=( VkSetLatencyMarkerInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + +#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 SetLatencyMarkerInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 SetLatencyMarkerInfoNV & setPresentID( uint64_t presentID_ ) VULKAN_HPP_NOEXCEPT + { + presentID = presentID_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 SetLatencyMarkerInfoNV & setMarker( VULKAN_HPP_NAMESPACE::LatencyMarkerNV marker_ ) VULKAN_HPP_NOEXCEPT + { + marker = marker_; + return *this; + } +#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/ + + operator VkSetLatencyMarkerInfoNV const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkSetLatencyMarkerInfoNV &() 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, marker ); + } +#endif + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( SetLatencyMarkerInfoNV const & ) const = default; +#else + bool operator==( SetLatencyMarkerInfoNV 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 ) && ( marker == rhs.marker ); +# endif + } + + bool operator!=( SetLatencyMarkerInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSetLatencyMarkerInfoNV; + const void * pNext = {}; + uint64_t presentID = {}; + VULKAN_HPP_NAMESPACE::LatencyMarkerNV marker = VULKAN_HPP_NAMESPACE::LatencyMarkerNV::eSimulationStart; + }; + + template <> + struct CppType + { + using Type = SetLatencyMarkerInfoNV; + }; + struct SetStateFlagsIndirectCommandNV { using NativeType = VkSetStateFlagsIndirectCommandNV; @@ -104396,6 +107494,102 @@ namespace VULKAN_HPP_NAMESPACE using Type = SwapchainDisplayNativeHdrCreateInfoAMD; }; + struct SwapchainLatencyCreateInfoNV + { + using NativeType = VkSwapchainLatencyCreateInfoNV; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSwapchainLatencyCreateInfoNV; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR SwapchainLatencyCreateInfoNV( VULKAN_HPP_NAMESPACE::Bool32 latencyModeEnable_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT + : pNext( pNext_ ) + , latencyModeEnable( latencyModeEnable_ ) + { + } + + VULKAN_HPP_CONSTEXPR SwapchainLatencyCreateInfoNV( SwapchainLatencyCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + SwapchainLatencyCreateInfoNV( VkSwapchainLatencyCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + : SwapchainLatencyCreateInfoNV( *reinterpret_cast( &rhs ) ) + { + } + + SwapchainLatencyCreateInfoNV & operator=( SwapchainLatencyCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + SwapchainLatencyCreateInfoNV & operator=( VkSwapchainLatencyCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + +#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 SwapchainLatencyCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 SwapchainLatencyCreateInfoNV & setLatencyModeEnable( VULKAN_HPP_NAMESPACE::Bool32 latencyModeEnable_ ) VULKAN_HPP_NOEXCEPT + { + latencyModeEnable = latencyModeEnable_; + return *this; + } +#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/ + + operator VkSwapchainLatencyCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkSwapchainLatencyCreateInfoNV &() 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, latencyModeEnable ); + } +#endif + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( SwapchainLatencyCreateInfoNV const & ) const = default; +#else + bool operator==( SwapchainLatencyCreateInfoNV 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 ) && ( latencyModeEnable == rhs.latencyModeEnable ); +# endif + } + + bool operator!=( SwapchainLatencyCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSwapchainLatencyCreateInfoNV; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 latencyModeEnable = {}; + }; + + template <> + struct CppType + { + using Type = SwapchainLatencyCreateInfoNV; + }; + struct SwapchainPresentBarrierCreateInfoNV { using NativeType = VkSwapchainPresentBarrierCreateInfoNV; diff --git a/deps/vulkan-headers/include/vulkan/vulkan_to_string.hpp b/deps/vulkan-headers/include/vulkan/vulkan_to_string.hpp index 3eac3e83..3a34b364 100644 --- a/deps/vulkan-headers/include/vulkan/vulkan_to_string.hpp +++ b/deps/vulkan-headers/include/vulkan/vulkan_to_string.hpp @@ -935,6 +935,10 @@ namespace VULKAN_HPP_NAMESPACE result += "UpdateAfterBind | "; if ( value & DescriptorPoolCreateFlagBits::eHostOnlyEXT ) result += "HostOnlyEXT | "; + if ( value & DescriptorPoolCreateFlagBits::eAllowOverallocationSetsNV ) + result += "AllowOverallocationSetsNV | "; + if ( value & DescriptorPoolCreateFlagBits::eAllowOverallocationPoolsNV ) + result += "AllowOverallocationPoolsNV | "; return "{ " + result.substr( 0, result.size() - 3 ) + " }"; } @@ -1456,6 +1460,10 @@ namespace VULKAN_HPP_NAMESPACE result += "Min | "; if ( value & ResolveModeFlagBits::eMax ) result += "Max | "; +#if defined( VK_USE_PLATFORM_ANDROID_KHR ) + if ( value & ResolveModeFlagBits::eExternalFormatDownsampleANDROID ) + result += "ExternalFormatDownsampleANDROID | "; +#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ return "{ " + result.substr( 0, result.size() - 3 ) + " }"; } @@ -1733,6 +1741,8 @@ namespace VULKAN_HPP_NAMESPACE result += "Suspending | "; if ( value & RenderingFlagBits::eResuming ) result += "Resuming | "; + if ( value & RenderingFlagBits::eContentsInlineEXT ) + result += "ContentsInlineEXT | "; if ( value & RenderingFlagBits::eEnableLegacyDitheringEXT ) result += "EnableLegacyDitheringEXT | "; @@ -2256,6 +2266,10 @@ namespace VULKAN_HPP_NAMESPACE result += "DeblockingFilterEnabled | "; if ( value & VideoEncodeH264StdFlagBitsEXT::eDeblockingFilterPartial ) result += "DeblockingFilterPartial | "; + if ( value & VideoEncodeH264StdFlagBitsEXT::eSliceQpDelta ) + result += "SliceQpDelta | "; + if ( value & VideoEncodeH264StdFlagBitsEXT::eDifferentSliceQpDelta ) + result += "DifferentSliceQpDelta | "; return "{ " + result.substr( 0, result.size() - 3 ) + " }"; } @@ -2358,6 +2372,10 @@ namespace VULKAN_HPP_NAMESPACE result += "DependentSliceSegmentsEnabledFlagSet | "; if ( value & VideoEncodeH265StdFlagBitsEXT::eDependentSliceSegmentFlagSet ) result += "DependentSliceSegmentFlagSet | "; + if ( value & VideoEncodeH265StdFlagBitsEXT::eSliceQpDelta ) + result += "SliceQpDelta | "; + if ( value & VideoEncodeH265StdFlagBitsEXT::eDifferentSliceQpDelta ) + result += "DifferentSliceQpDelta | "; return "{ " + result.substr( 0, result.size() - 3 ) + " }"; } @@ -2893,6 +2911,8 @@ namespace VULKAN_HPP_NAMESPACE std::string result; if ( value & VideoEncodeCapabilityFlagBitsKHR::ePrecedingExternallyEncodedBytes ) result += "PrecedingExternallyEncodedBytes | "; + if ( value & VideoEncodeCapabilityFlagBitsKHR::eInsufficientstreamBufferRangeDetectionBit ) + result += "InsufficientstreamBufferRangeDetectionBit | "; return "{ " + result.substr( 0, result.size() - 3 ) + " }"; } @@ -3175,6 +3195,20 @@ namespace VULKAN_HPP_NAMESPACE } #endif /*VK_USE_PLATFORM_FUCHSIA*/ + //=== VK_EXT_frame_boundary === + + VULKAN_HPP_INLINE std::string to_string( FrameBoundaryFlagsEXT value ) + { + if ( !value ) + return "{}"; + + std::string result; + if ( value & FrameBoundaryFlagBitsEXT::eFrameEnd ) + result += "FrameEnd | "; + + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; + } + #if defined( VK_USE_PLATFORM_SCREEN_QNX ) //=== VK_QNX_screen_surface === @@ -4304,6 +4338,8 @@ namespace VULKAN_HPP_NAMESPACE case StructureType::ePhysicalDeviceExternalMemoryRdmaFeaturesNV: return "PhysicalDeviceExternalMemoryRdmaFeaturesNV"; case StructureType::ePipelinePropertiesIdentifierEXT: return "PipelinePropertiesIdentifierEXT"; case StructureType::ePhysicalDevicePipelinePropertiesFeaturesEXT: return "PhysicalDevicePipelinePropertiesFeaturesEXT"; + case StructureType::ePhysicalDeviceFrameBoundaryFeaturesEXT: return "PhysicalDeviceFrameBoundaryFeaturesEXT"; + case StructureType::eFrameBoundaryEXT: return "FrameBoundaryEXT"; case StructureType::ePhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT: return "PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT"; case StructureType::eSubpassResolvePerformanceQueryEXT: return "SubpassResolvePerformanceQueryEXT"; case StructureType::eMultisampledRenderToSingleSampledInfoEXT: return "MultisampledRenderToSingleSampledInfoEXT"; @@ -4365,6 +4401,8 @@ namespace VULKAN_HPP_NAMESPACE case StructureType::ePhysicalDeviceImageProcessingFeaturesQCOM: return "PhysicalDeviceImageProcessingFeaturesQCOM"; case StructureType::ePhysicalDeviceImageProcessingPropertiesQCOM: return "PhysicalDeviceImageProcessingPropertiesQCOM"; case StructureType::eImageViewSampleWeightCreateInfoQCOM: return "ImageViewSampleWeightCreateInfoQCOM"; + case StructureType::ePhysicalDeviceNestedCommandBufferFeaturesEXT: return "PhysicalDeviceNestedCommandBufferFeaturesEXT"; + case StructureType::ePhysicalDeviceNestedCommandBufferPropertiesEXT: return "PhysicalDeviceNestedCommandBufferPropertiesEXT"; case StructureType::eExternalMemoryAcquireUnmodifiedEXT: return "ExternalMemoryAcquireUnmodifiedEXT"; case StructureType::ePhysicalDeviceExtendedDynamicState3FeaturesEXT: return "PhysicalDeviceExtendedDynamicState3FeaturesEXT"; case StructureType::ePhysicalDeviceExtendedDynamicState3PropertiesEXT: return "PhysicalDeviceExtendedDynamicState3PropertiesEXT"; @@ -4388,6 +4426,11 @@ namespace VULKAN_HPP_NAMESPACE case StructureType::eOpticalFlowSessionCreatePrivateDataInfoNV: return "OpticalFlowSessionCreatePrivateDataInfoNV"; case StructureType::ePhysicalDeviceLegacyDitheringFeaturesEXT: return "PhysicalDeviceLegacyDitheringFeaturesEXT"; case StructureType::ePhysicalDevicePipelineProtectedAccessFeaturesEXT: return "PhysicalDevicePipelineProtectedAccessFeaturesEXT"; +#if defined( VK_USE_PLATFORM_ANDROID_KHR ) + case StructureType::ePhysicalDeviceExternalFormatResolveFeaturesANDROID: return "PhysicalDeviceExternalFormatResolveFeaturesANDROID"; + case StructureType::ePhysicalDeviceExternalFormatResolvePropertiesANDROID: return "PhysicalDeviceExternalFormatResolvePropertiesANDROID"; + case StructureType::eAndroidHardwareBufferFormatResolvePropertiesANDROID: return "AndroidHardwareBufferFormatResolvePropertiesANDROID"; +#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ case StructureType::ePhysicalDeviceMaintenance5FeaturesKHR: return "PhysicalDeviceMaintenance5FeaturesKHR"; case StructureType::ePhysicalDeviceMaintenance5PropertiesKHR: return "PhysicalDeviceMaintenance5PropertiesKHR"; case StructureType::eRenderingAreaInfoKHR: return "RenderingAreaInfoKHR"; @@ -4407,17 +4450,37 @@ namespace VULKAN_HPP_NAMESPACE case StructureType::ePhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM: return "PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM"; case StructureType::ePhysicalDeviceRayTracingInvocationReorderFeaturesNV: return "PhysicalDeviceRayTracingInvocationReorderFeaturesNV"; case StructureType::ePhysicalDeviceRayTracingInvocationReorderPropertiesNV: return "PhysicalDeviceRayTracingInvocationReorderPropertiesNV"; + case StructureType::ePhysicalDeviceExtendedSparseAddressSpaceFeaturesNV: return "PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV"; + case StructureType::ePhysicalDeviceExtendedSparseAddressSpacePropertiesNV: return "PhysicalDeviceExtendedSparseAddressSpacePropertiesNV"; case StructureType::ePhysicalDeviceMutableDescriptorTypeFeaturesEXT: return "PhysicalDeviceMutableDescriptorTypeFeaturesEXT"; case StructureType::eMutableDescriptorTypeCreateInfoEXT: return "MutableDescriptorTypeCreateInfoEXT"; case StructureType::ePhysicalDeviceShaderCoreBuiltinsFeaturesARM: return "PhysicalDeviceShaderCoreBuiltinsFeaturesARM"; case StructureType::ePhysicalDeviceShaderCoreBuiltinsPropertiesARM: return "PhysicalDeviceShaderCoreBuiltinsPropertiesARM"; case StructureType::ePhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT: return "PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT"; case StructureType::ePhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT: return "PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT"; + case StructureType::eLatencySleepModeInfoNV: return "LatencySleepModeInfoNV"; + case StructureType::eLatencySleepInfoNV: return "LatencySleepInfoNV"; + case StructureType::eSetLatencyMarkerInfoNV: return "SetLatencyMarkerInfoNV"; + case StructureType::eGetLatencyMarkerInfoNV: return "GetLatencyMarkerInfoNV"; + case StructureType::eLatencyTimingsFrameReportNV: return "LatencyTimingsFrameReportNV"; + case StructureType::eLatencySubmissionPresentIdNV: return "LatencySubmissionPresentIdNV"; + case StructureType::eOutOfBandQueueTypeInfoNV: return "OutOfBandQueueTypeInfoNV"; + case StructureType::eSwapchainLatencyCreateInfoNV: return "SwapchainLatencyCreateInfoNV"; + case StructureType::eLatencySurfaceCapabilitiesNV: return "LatencySurfaceCapabilitiesNV"; case StructureType::ePhysicalDeviceCooperativeMatrixFeaturesKHR: return "PhysicalDeviceCooperativeMatrixFeaturesKHR"; case StructureType::eCooperativeMatrixPropertiesKHR: return "CooperativeMatrixPropertiesKHR"; case StructureType::ePhysicalDeviceCooperativeMatrixPropertiesKHR: return "PhysicalDeviceCooperativeMatrixPropertiesKHR"; case StructureType::ePhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM: return "PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM"; case StructureType::eMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM: return "MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM"; + case StructureType::ePhysicalDeviceImageProcessing2FeaturesQCOM: return "PhysicalDeviceImageProcessing2FeaturesQCOM"; + case StructureType::ePhysicalDeviceImageProcessing2PropertiesQCOM: return "PhysicalDeviceImageProcessing2PropertiesQCOM"; + case StructureType::eSamplerBlockMatchWindowCreateInfoQCOM: return "SamplerBlockMatchWindowCreateInfoQCOM"; + case StructureType::eSamplerCubicWeightsCreateInfoQCOM: return "SamplerCubicWeightsCreateInfoQCOM"; + case StructureType::ePhysicalDeviceCubicWeightsFeaturesQCOM: return "PhysicalDeviceCubicWeightsFeaturesQCOM"; + case StructureType::eBlitImageCubicWeightsInfoQCOM: return "BlitImageCubicWeightsInfoQCOM"; + case StructureType::ePhysicalDeviceYcbcrDegammaFeaturesQCOM: return "PhysicalDeviceYcbcrDegammaFeaturesQCOM"; + case StructureType::eSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM: return "SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM"; + case StructureType::ePhysicalDeviceCubicClampFeaturesQCOM: return "PhysicalDeviceCubicClampFeaturesQCOM"; case StructureType::ePhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT: return "PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT"; #if defined( VK_USE_PLATFORM_SCREEN_QNX ) case StructureType::eScreenBufferPropertiesQNX: return "ScreenBufferPropertiesQNX"; @@ -4426,6 +4489,8 @@ namespace VULKAN_HPP_NAMESPACE case StructureType::eExternalFormatQNX: return "ExternalFormatQNX"; case StructureType::ePhysicalDeviceExternalMemoryScreenBufferFeaturesQNX: return "PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX"; #endif /*VK_USE_PLATFORM_SCREEN_QNX*/ + case StructureType::ePhysicalDeviceLayeredDriverPropertiesMSFT: return "PhysicalDeviceLayeredDriverPropertiesMSFT"; + case StructureType::ePhysicalDeviceDescriptorPoolOverallocationFeaturesNV: return "PhysicalDeviceDescriptorPoolOverallocationFeaturesNV"; default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } @@ -5002,6 +5067,15 @@ namespace VULKAN_HPP_NAMESPACE return "(void)"; } + VULKAN_HPP_INLINE std::string to_string( DeviceQueueCreateFlagBits value ) + { + switch ( value ) + { + case DeviceQueueCreateFlagBits::eProtected: return "Protected"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; + } + } + VULKAN_HPP_INLINE std::string to_string( PipelineStageFlagBits value ) { switch ( value ) @@ -5323,6 +5397,15 @@ namespace VULKAN_HPP_NAMESPACE return "(void)"; } + VULKAN_HPP_INLINE std::string to_string( PipelineCacheCreateFlagBits value ) + { + switch ( value ) + { + case PipelineCacheCreateFlagBits::eExternallySynchronized: return "ExternallySynchronized"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; + } + } + VULKAN_HPP_INLINE std::string to_string( BlendFactor value ) { switch ( value ) @@ -5697,6 +5780,25 @@ namespace VULKAN_HPP_NAMESPACE } } + VULKAN_HPP_INLINE std::string to_string( PipelineColorBlendStateCreateFlagBits value ) + { + switch ( value ) + { + case PipelineColorBlendStateCreateFlagBits::eRasterizationOrderAttachmentAccessEXT: return "RasterizationOrderAttachmentAccessEXT"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; + } + } + + VULKAN_HPP_INLINE std::string to_string( PipelineDepthStencilStateCreateFlagBits value ) + { + switch ( value ) + { + case PipelineDepthStencilStateCreateFlagBits::eRasterizationOrderAttachmentDepthAccessEXT: return "RasterizationOrderAttachmentDepthAccessEXT"; + case PipelineDepthStencilStateCreateFlagBits::eRasterizationOrderAttachmentStencilAccessEXT: return "RasterizationOrderAttachmentStencilAccessEXT"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; + } + } + VULKAN_HPP_INLINE std::string to_string( PipelineDynamicStateCreateFlagBits ) { return "(void)"; @@ -5707,6 +5809,15 @@ namespace VULKAN_HPP_NAMESPACE return "(void)"; } + VULKAN_HPP_INLINE std::string to_string( PipelineLayoutCreateFlagBits value ) + { + switch ( value ) + { + case PipelineLayoutCreateFlagBits::eIndependentSetsEXT: return "IndependentSetsEXT"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; + } + } + VULKAN_HPP_INLINE std::string to_string( PipelineMultisampleStateCreateFlagBits ) { return "(void)"; @@ -5802,6 +5913,8 @@ namespace VULKAN_HPP_NAMESPACE case DescriptorPoolCreateFlagBits::eFreeDescriptorSet: return "FreeDescriptorSet"; case DescriptorPoolCreateFlagBits::eUpdateAfterBind: return "UpdateAfterBind"; case DescriptorPoolCreateFlagBits::eHostOnlyEXT: return "HostOnlyEXT"; + case DescriptorPoolCreateFlagBits::eAllowOverallocationSetsNV: return "AllowOverallocationSetsNV"; + case DescriptorPoolCreateFlagBits::eAllowOverallocationPoolsNV: return "AllowOverallocationPoolsNV"; default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } @@ -6068,6 +6181,7 @@ namespace VULKAN_HPP_NAMESPACE { case SubpassContents::eInline: return "Inline"; case SubpassContents::eSecondaryCommandBuffers: return "SecondaryCommandBuffers"; + case SubpassContents::eInlineAndSecondaryCommandBuffersEXT: return "InlineAndSecondaryCommandBuffersEXT"; default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } @@ -6139,15 +6253,6 @@ namespace VULKAN_HPP_NAMESPACE } } - VULKAN_HPP_INLINE std::string to_string( DeviceQueueCreateFlagBits value ) - { - switch ( value ) - { - case DeviceQueueCreateFlagBits::eProtected: return "Protected"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - VULKAN_HPP_INLINE std::string to_string( SamplerYcbcrModelConversion value ) { switch ( value ) @@ -6332,6 +6437,7 @@ namespace VULKAN_HPP_NAMESPACE case DriverId::eMesaDozen: return "MesaDozen"; case DriverId::eMesaNvk: return "MesaNvk"; case DriverId::eImaginationOpenSourceMESA: return "ImaginationOpenSourceMESA"; + case DriverId::eMesaAgxv: return "MesaAgxv"; default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } @@ -6368,6 +6474,9 @@ namespace VULKAN_HPP_NAMESPACE case ResolveModeFlagBits::eAverage: return "Average"; case ResolveModeFlagBits::eMin: return "Min"; case ResolveModeFlagBits::eMax: return "Max"; +#if defined( VK_USE_PLATFORM_ANDROID_KHR ) + case ResolveModeFlagBits::eExternalFormatDownsampleANDROID: return "ExternalFormatDownsampleANDROID"; +#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } @@ -6379,6 +6488,7 @@ namespace VULKAN_HPP_NAMESPACE case SamplerReductionMode::eWeightedAverage: return "WeightedAverage"; case SamplerReductionMode::eMin: return "Min"; case SamplerReductionMode::eMax: return "Max"; + case SamplerReductionMode::eWeightedAverageRangeclampQCOM: return "WeightedAverageRangeclampQCOM"; default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } @@ -6556,6 +6666,7 @@ namespace VULKAN_HPP_NAMESPACE case RenderingFlagBits::eContentsSecondaryCommandBuffers: return "ContentsSecondaryCommandBuffers"; case RenderingFlagBits::eSuspending: return "Suspending"; case RenderingFlagBits::eResuming: return "Resuming"; + case RenderingFlagBits::eContentsInlineEXT: return "ContentsInlineEXT"; case RenderingFlagBits::eEnableLegacyDitheringEXT: return "EnableLegacyDitheringEXT"; default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } @@ -6939,6 +7050,9 @@ namespace VULKAN_HPP_NAMESPACE case QueryResultStatusKHR::eError: return "Error"; case QueryResultStatusKHR::eNotReady: return "NotReady"; case QueryResultStatusKHR::eComplete: return "Complete"; +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + case QueryResultStatusKHR::eInsufficientBitstreamBufferRange: return "InsufficientBitstreamBufferRange"; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } @@ -7036,6 +7150,8 @@ namespace VULKAN_HPP_NAMESPACE case VideoEncodeH264StdFlagBitsEXT::eDeblockingFilterDisabled: return "DeblockingFilterDisabled"; case VideoEncodeH264StdFlagBitsEXT::eDeblockingFilterEnabled: return "DeblockingFilterEnabled"; case VideoEncodeH264StdFlagBitsEXT::eDeblockingFilterPartial: return "DeblockingFilterPartial"; + case VideoEncodeH264StdFlagBitsEXT::eSliceQpDelta: return "SliceQpDelta"; + case VideoEncodeH264StdFlagBitsEXT::eDifferentSliceQpDelta: return "DifferentSliceQpDelta"; default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } @@ -7098,6 +7214,8 @@ namespace VULKAN_HPP_NAMESPACE case VideoEncodeH265StdFlagBitsEXT::eDeblockingFilterOverrideEnabledFlagSet: return "DeblockingFilterOverrideEnabledFlagSet"; case VideoEncodeH265StdFlagBitsEXT::eDependentSliceSegmentsEnabledFlagSet: return "DependentSliceSegmentsEnabledFlagSet"; case VideoEncodeH265StdFlagBitsEXT::eDependentSliceSegmentFlagSet: return "DependentSliceSegmentFlagSet"; + case VideoEncodeH265StdFlagBitsEXT::eSliceQpDelta: return "SliceQpDelta"; + case VideoEncodeH265StdFlagBitsEXT::eDifferentSliceQpDelta: return "DifferentSliceQpDelta"; default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } @@ -8097,17 +8215,6 @@ namespace VULKAN_HPP_NAMESPACE return "(void)"; } - //=== VK_EXT_pipeline_creation_cache_control === - - VULKAN_HPP_INLINE std::string to_string( PipelineCacheCreateFlagBits value ) - { - switch ( value ) - { - case PipelineCacheCreateFlagBits::eExternallySynchronized: return "ExternallySynchronized"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - #if defined( VK_ENABLE_BETA_EXTENSIONS ) //=== VK_KHR_video_encode_queue === @@ -8116,6 +8223,7 @@ namespace VULKAN_HPP_NAMESPACE switch ( value ) { case VideoEncodeCapabilityFlagBitsKHR::ePrecedingExternallyEncodedBytes: return "PrecedingExternallyEncodedBytes"; + case VideoEncodeCapabilityFlagBitsKHR::eInsufficientstreamBufferRangeDetectionBit: return "InsufficientstreamBufferRangeDetectionBit"; default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } @@ -8238,15 +8346,6 @@ namespace VULKAN_HPP_NAMESPACE } } - VULKAN_HPP_INLINE std::string to_string( PipelineLayoutCreateFlagBits value ) - { - switch ( value ) - { - case PipelineLayoutCreateFlagBits::eIndependentSetsEXT: return "IndependentSetsEXT"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - //=== VK_NV_fragment_shading_rate_enums === VULKAN_HPP_INLINE std::string to_string( FragmentShadingRateNV value ) @@ -8427,6 +8526,17 @@ namespace VULKAN_HPP_NAMESPACE } #endif /*VK_USE_PLATFORM_FUCHSIA*/ + //=== VK_EXT_frame_boundary === + + VULKAN_HPP_INLINE std::string to_string( FrameBoundaryFlagBitsEXT value ) + { + switch ( value ) + { + case FrameBoundaryFlagBitsEXT::eFrameEnd: return "FrameEnd"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; + } + } + #if defined( VK_USE_PLATFORM_SCREEN_QNX ) //=== VK_QNX_screen_surface === @@ -8580,27 +8690,6 @@ namespace VULKAN_HPP_NAMESPACE return "(void)"; } - //=== VK_EXT_rasterization_order_attachment_access === - - VULKAN_HPP_INLINE std::string to_string( PipelineColorBlendStateCreateFlagBits value ) - { - switch ( value ) - { - case PipelineColorBlendStateCreateFlagBits::eRasterizationOrderAttachmentAccessEXT: return "RasterizationOrderAttachmentAccessEXT"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - VULKAN_HPP_INLINE std::string to_string( PipelineDepthStencilStateCreateFlagBits value ) - { - switch ( value ) - { - case PipelineDepthStencilStateCreateFlagBits::eRasterizationOrderAttachmentDepthAccessEXT: return "RasterizationOrderAttachmentDepthAccessEXT"; - case PipelineDepthStencilStateCreateFlagBits::eRasterizationOrderAttachmentStencilAccessEXT: return "RasterizationOrderAttachmentStencilAccessEXT"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - //=== VK_NV_optical_flow === VULKAN_HPP_INLINE std::string to_string( OpticalFlowUsageFlagBitsNV value ) @@ -8799,6 +8888,38 @@ namespace VULKAN_HPP_NAMESPACE } } + //=== VK_NV_low_latency2 === + + VULKAN_HPP_INLINE std::string to_string( LatencyMarkerNV value ) + { + switch ( value ) + { + case LatencyMarkerNV::eSimulationStart: return "SimulationStart"; + case LatencyMarkerNV::eSimulationEnd: return "SimulationEnd"; + case LatencyMarkerNV::eRendersubmitStart: return "RendersubmitStart"; + case LatencyMarkerNV::eRendersubmitEnd: return "RendersubmitEnd"; + case LatencyMarkerNV::ePresentStart: return "PresentStart"; + case LatencyMarkerNV::ePresentEnd: return "PresentEnd"; + case LatencyMarkerNV::eInputSample: return "InputSample"; + case LatencyMarkerNV::eTriggerFlash: return "TriggerFlash"; + case LatencyMarkerNV::eOutOfBandRendersubmitStart: return "OutOfBandRendersubmitStart"; + case LatencyMarkerNV::eOutOfBandRendersubmitEnd: return "OutOfBandRendersubmitEnd"; + case LatencyMarkerNV::eOutOfBandPresentStart: return "OutOfBandPresentStart"; + case LatencyMarkerNV::eOutOfBandPresentEnd: return "OutOfBandPresentEnd"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; + } + } + + VULKAN_HPP_INLINE std::string to_string( OutOfBandQueueTypeNV value ) + { + switch ( value ) + { + case OutOfBandQueueTypeNV::eRender: return "Render"; + case OutOfBandQueueTypeNV::ePresent: return "Present"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; + } + } + //=== VK_KHR_cooperative_matrix === VULKAN_HPP_INLINE std::string to_string( ScopeKHR value ) @@ -8832,5 +8953,43 @@ namespace VULKAN_HPP_NAMESPACE } } + //=== VK_QCOM_image_processing2 === + + VULKAN_HPP_INLINE std::string to_string( BlockMatchWindowCompareModeQCOM value ) + { + switch ( value ) + { + case BlockMatchWindowCompareModeQCOM::eMin: return "Min"; + case BlockMatchWindowCompareModeQCOM::eMax: return "Max"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; + } + } + + //=== VK_QCOM_filter_cubic_weights === + + VULKAN_HPP_INLINE std::string to_string( CubicFilterWeightsQCOM value ) + { + switch ( value ) + { + case CubicFilterWeightsQCOM::eCatmullRom: return "CatmullRom"; + case CubicFilterWeightsQCOM::eZeroTangentCardinal: return "ZeroTangentCardinal"; + case CubicFilterWeightsQCOM::eBSpline: return "BSpline"; + case CubicFilterWeightsQCOM::eMitchellNetravali: return "MitchellNetravali"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; + } + } + + //=== VK_MSFT_layered_driver === + + VULKAN_HPP_INLINE std::string to_string( LayeredDriverUnderlyingApiMSFT value ) + { + switch ( value ) + { + case LayeredDriverUnderlyingApiMSFT::eNone: return "None"; + case LayeredDriverUnderlyingApiMSFT::eD3D12: return "D3D12"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; + } + } + } // namespace VULKAN_HPP_NAMESPACE #endif diff --git a/deps/vulkan-headers/include/vulkan/vulkan_video.hpp b/deps/vulkan-headers/include/vulkan/vulkan_video.hpp index 74659382..76dc641a 100644 --- a/deps/vulkan-headers/include/vulkan/vulkan_video.hpp +++ b/deps/vulkan-headers/include/vulkan/vulkan_video.hpp @@ -1028,9 +1028,9 @@ namespace VULKAN_HPP_NAMESPACE bool operator==( EncodeH264RefPicMarkingEntry const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( operation == rhs.operation ) && ( difference_of_pic_nums_minus1 == rhs.difference_of_pic_nums_minus1 ) && - ( long_term_pic_num == rhs.long_term_pic_num ) && ( long_term_frame_idx == rhs.long_term_frame_idx ) && - ( max_long_term_frame_idx_plus1 == rhs.max_long_term_frame_idx_plus1 ); + return ( memory_management_control_operation == rhs.memory_management_control_operation ) && + ( difference_of_pic_nums_minus1 == rhs.difference_of_pic_nums_minus1 ) && ( long_term_pic_num == rhs.long_term_pic_num ) && + ( long_term_frame_idx == rhs.long_term_frame_idx ) && ( max_long_term_frame_idx_plus1 == rhs.max_long_term_frame_idx_plus1 ); } bool operator!=( EncodeH264RefPicMarkingEntry const & rhs ) const VULKAN_HPP_NOEXCEPT @@ -1039,7 +1039,7 @@ namespace VULKAN_HPP_NAMESPACE } public: - VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264MemMgmtControlOp operation = + VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264MemMgmtControlOp memory_management_control_operation = VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264MemMgmtControlOp::eEnd; uint16_t difference_of_pic_nums_minus1 = {}; uint16_t long_term_pic_num = {}; @@ -1185,7 +1185,7 @@ namespace VULKAN_HPP_NAMESPACE { return ( flags == rhs.flags ) && ( first_mb_in_slice == rhs.first_mb_in_slice ) && ( slice_type == rhs.slice_type ) && ( slice_alpha_c0_offset_div2 == rhs.slice_alpha_c0_offset_div2 ) && ( slice_beta_offset_div2 == rhs.slice_beta_offset_div2 ) && - ( reserved1 == rhs.reserved1 ) && ( cabac_init_idc == rhs.cabac_init_idc ) && + ( slice_qp_delta == rhs.slice_qp_delta ) && ( reserved1 == rhs.reserved1 ) && ( cabac_init_idc == rhs.cabac_init_idc ) && ( disable_deblocking_filter_idc == rhs.disable_deblocking_filter_idc ) && ( pWeightTable == rhs.pWeightTable ); } @@ -1200,7 +1200,8 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264SliceType slice_type = VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264SliceType::eP; int8_t slice_alpha_c0_offset_div2 = {}; int8_t slice_beta_offset_div2 = {}; - uint16_t reserved1 = {}; + int8_t slice_qp_delta = {}; + uint8_t reserved1 = {}; VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264CabacInitIdc cabac_init_idc = VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264CabacInitIdc::e0; VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264DisableDeblockingFilterIdc disable_deblocking_filter_idc = @@ -2416,7 +2417,8 @@ namespace VULKAN_HPP_NAMESPACE ( slice_cb_qp_offset == rhs.slice_cb_qp_offset ) && ( slice_cr_qp_offset == rhs.slice_cr_qp_offset ) && ( slice_beta_offset_div2 == rhs.slice_beta_offset_div2 ) && ( slice_tc_offset_div2 == rhs.slice_tc_offset_div2 ) && ( slice_act_y_qp_offset == rhs.slice_act_y_qp_offset ) && ( slice_act_cb_qp_offset == rhs.slice_act_cb_qp_offset ) && - ( slice_act_cr_qp_offset == rhs.slice_act_cr_qp_offset ) && ( reserved1 == rhs.reserved1 ) && ( pWeightTable == rhs.pWeightTable ); + ( slice_act_cr_qp_offset == rhs.slice_act_cr_qp_offset ) && ( slice_qp_delta == rhs.slice_qp_delta ) && ( reserved1 == rhs.reserved1 ) && + ( pWeightTable == rhs.pWeightTable ); } bool operator!=( EncodeH265SliceSegmentHeader const & rhs ) const VULKAN_HPP_NOEXCEPT @@ -2437,7 +2439,8 @@ namespace VULKAN_HPP_NAMESPACE int8_t slice_act_y_qp_offset = {}; int8_t slice_act_cb_qp_offset = {}; int8_t slice_act_cr_qp_offset = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D reserved1 = {}; + int8_t slice_qp_delta = {}; + uint16_t reserved1 = {}; const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265WeightTable * pWeightTable = {}; }; @@ -2550,28 +2553,28 @@ namespace VULKAN_HPP_NAMESPACE uint32_t reserved : 23; }; - struct EncodeH265SliceSegmentLongTermRefPics + struct EncodeH265LongTermRefPics { - using NativeType = StdVideoEncodeH265SliceSegmentLongTermRefPics; + using NativeType = StdVideoEncodeH265LongTermRefPics; - operator StdVideoEncodeH265SliceSegmentLongTermRefPics const &() const VULKAN_HPP_NOEXCEPT + operator StdVideoEncodeH265LongTermRefPics const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator StdVideoEncodeH265SliceSegmentLongTermRefPics &() VULKAN_HPP_NOEXCEPT + operator StdVideoEncodeH265LongTermRefPics &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( EncodeH265SliceSegmentLongTermRefPics const & rhs ) const VULKAN_HPP_NOEXCEPT + bool operator==( EncodeH265LongTermRefPics const & rhs ) const VULKAN_HPP_NOEXCEPT { return ( num_long_term_sps == rhs.num_long_term_sps ) && ( num_long_term_pics == rhs.num_long_term_pics ) && ( lt_idx_sps == rhs.lt_idx_sps ) && ( poc_lsb_lt == rhs.poc_lsb_lt ) && ( used_by_curr_pic_lt_flag == rhs.used_by_curr_pic_lt_flag ) && ( delta_poc_msb_present_flag == rhs.delta_poc_msb_present_flag ) && ( delta_poc_msb_cycle_lt == rhs.delta_poc_msb_cycle_lt ); } - bool operator!=( EncodeH265SliceSegmentLongTermRefPics const & rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( EncodeH265LongTermRefPics const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } @@ -2617,16 +2620,16 @@ namespace VULKAN_HPP_NAMESPACE public: VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265PictureInfoFlags flags = {}; VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265PictureType pic_type = VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265PictureType::eP; - uint8_t sps_video_parameter_set_id = {}; - uint8_t pps_seq_parameter_set_id = {}; - uint8_t pps_pic_parameter_set_id = {}; - uint8_t short_term_ref_pic_set_idx = {}; - int32_t PicOrderCntVal = {}; - uint8_t TemporalId = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D reserved1 = {}; - const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265ReferenceListsInfo * pRefLists = {}; - const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ShortTermRefPicSet * pShortTermRefPicSet = {}; - const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265SliceSegmentLongTermRefPics * pLongTermRefPics = {}; + uint8_t sps_video_parameter_set_id = {}; + uint8_t pps_seq_parameter_set_id = {}; + uint8_t pps_pic_parameter_set_id = {}; + uint8_t short_term_ref_pic_set_idx = {}; + int32_t PicOrderCntVal = {}; + uint8_t TemporalId = {}; + VULKAN_HPP_NAMESPACE::ArrayWrapper1D reserved1 = {}; + const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265ReferenceListsInfo * pRefLists = {}; + const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ShortTermRefPicSet * pShortTermRefPicSet = {}; + const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265LongTermRefPics * pLongTermRefPics = {}; }; struct EncodeH265ReferenceInfoFlags diff --git a/deps/vulkan-headers/share/cmake/VulkanHeaders/VulkanHeadersConfigVersion.cmake b/deps/vulkan-headers/share/cmake/VulkanHeaders/VulkanHeadersConfigVersion.cmake index 4f9042ec..c5d9a84f 100644 --- a/deps/vulkan-headers/share/cmake/VulkanHeaders/VulkanHeadersConfigVersion.cmake +++ b/deps/vulkan-headers/share/cmake/VulkanHeaders/VulkanHeadersConfigVersion.cmake @@ -9,19 +9,19 @@ # The variable CVF_VERSION must be set before calling configure_file(). -set(PACKAGE_VERSION "1.3.261") +set(PACKAGE_VERSION "1.3.268") if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) set(PACKAGE_VERSION_COMPATIBLE FALSE) else() - if("1.3.261" MATCHES "^([0-9]+)\\.") + if("1.3.268" MATCHES "^([0-9]+)\\.") set(CVF_VERSION_MAJOR "${CMAKE_MATCH_1}") if(NOT CVF_VERSION_MAJOR VERSION_EQUAL 0) string(REGEX REPLACE "^0+" "" CVF_VERSION_MAJOR "${CVF_VERSION_MAJOR}") endif() else() - set(CVF_VERSION_MAJOR "1.3.261") + set(CVF_VERSION_MAJOR "1.3.268") endif() if(PACKAGE_FIND_VERSION_RANGE) diff --git a/deps/vulkan-headers/share/vulkan/registry/genvk.py b/deps/vulkan-headers/share/vulkan/registry/genvk.py index 71e6baf7..676c78c4 100755 --- a/deps/vulkan-headers/share/vulkan/registry/genvk.py +++ b/deps/vulkan-headers/share/vulkan/registry/genvk.py @@ -428,7 +428,8 @@ def makeGenOpts(args): platforms = [ [ 'vulkan_android.h', [ 'VK_KHR_android_surface', - 'VK_ANDROID_external_memory_android_hardware_buffer' + 'VK_ANDROID_external_memory_android_hardware_buffer', + 'VK_ANDROID_external_format_resolve' ], commonSuppressExtensions + [ 'VK_KHR_format_feature_flags2', ] ], diff --git a/deps/vulkan-headers/share/vulkan/registry/validusage.json b/deps/vulkan-headers/share/vulkan/registry/validusage.json index cbea59d9..3a1129df 100644 --- a/deps/vulkan-headers/share/vulkan/registry/validusage.json +++ b/deps/vulkan-headers/share/vulkan/registry/validusage.json @@ -1,20 +1,22 @@ { "version info": { "schema version": 2, - "api version": "1.3.261", - "comment": "from git branch: github-main commit: b9aad705f0d9e5e6734ac2ad671d5d1de57b05e0", - "date": "2023-08-04 10:29:09Z" + "api version": "1.3.268", + "comment": "from git branch: github-main commit: bb6783481f96d778772ea9607e2991c27e2bbe96", + "date": "2023-10-13 09:30:15Z" }, "validation": { "vkGetInstanceProcAddr": { "core": [ { "vuid": "VUID-vkGetInstanceProcAddr-instance-parameter", - "text": " If instance is not NULL, instance must be a valid VkInstance handle" + "text": "If instance is not NULL, instance must be a valid VkInstance handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetInstanceProcAddr-pName-parameter", - "text": " pName must be a null-terminated UTF-8 string" + "text": "pName must be a null-terminated UTF-8 string", + "page": "vkspec" } ] }, @@ -22,11 +24,13 @@ "core": [ { "vuid": "VUID-vkGetDeviceProcAddr-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetDeviceProcAddr-pName-parameter", - "text": " pName must be a null-terminated UTF-8 string" + "text": "pName must be a null-terminated UTF-8 string", + "page": "vkspec" } ] }, @@ -34,7 +38,8 @@ "core": [ { "vuid": "VUID-vkEnumerateInstanceVersion-pApiVersion-parameter", - "text": " pApiVersion must be a valid pointer to a uint32_t value" + "text": "pApiVersion must be a valid pointer to a uint32_t value", + "page": "vkspec" } ] }, @@ -42,19 +47,23 @@ "core": [ { "vuid": "VUID-vkCreateInstance-ppEnabledExtensionNames-01388", - "text": " All required extensions for each extension in the VkInstanceCreateInfo::ppEnabledExtensionNames list must also be present in that list" + "text": "All required extensions for each extension in the VkInstanceCreateInfo::ppEnabledExtensionNames list must also be present in that list", + "page": "vkspec" }, { "vuid": "VUID-vkCreateInstance-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkInstanceCreateInfo structure" + "text": "pCreateInfo must be a valid pointer to a valid VkInstanceCreateInfo structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateInstance-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateInstance-pInstance-parameter", - "text": " pInstance must be a valid pointer to a VkInstance handle" + "text": "pInstance must be a valid pointer to a VkInstance handle", + "page": "vkspec" } ] }, @@ -62,51 +71,63 @@ "core": [ { "vuid": "VUID-VkInstanceCreateInfo-pNext-04925", - "text": " If the pNext chain of VkInstanceCreateInfo includes a VkDebugReportCallbackCreateInfoEXT structure, the list of enabled extensions in ppEnabledExtensionNames must contain VK_EXT_debug_report" + "text": "If the pNext chain of VkInstanceCreateInfo includes a VkDebugReportCallbackCreateInfoEXT structure, the list of enabled extensions in ppEnabledExtensionNames must contain VK_EXT_debug_report", + "page": "vkspec" }, { "vuid": "VUID-VkInstanceCreateInfo-pNext-04926", - "text": " If the pNext chain of VkInstanceCreateInfo includes a VkDebugUtilsMessengerCreateInfoEXT structure, the list of enabled extensions in ppEnabledExtensionNames must contain VK_EXT_debug_utils" + "text": "If the pNext chain of VkInstanceCreateInfo includes a VkDebugUtilsMessengerCreateInfoEXT structure, the list of enabled extensions in ppEnabledExtensionNames must contain VK_EXT_debug_utils", + "page": "vkspec" }, { "vuid": "VUID-VkInstanceCreateInfo-pNext-06779", - "text": " If the pNext chain includes a VkExportMetalObjectCreateInfoEXT structure, its exportObjectType member must be either VK_EXPORT_METAL_OBJECT_TYPE_METAL_DEVICE_BIT_EXT or VK_EXPORT_METAL_OBJECT_TYPE_METAL_COMMAND_QUEUE_BIT_EXT" + "text": "If the pNext chain includes a VkExportMetalObjectCreateInfoEXT structure, its exportObjectType member must be either VK_EXPORT_METAL_OBJECT_TYPE_METAL_DEVICE_BIT_EXT or VK_EXPORT_METAL_OBJECT_TYPE_METAL_COMMAND_QUEUE_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkInstanceCreateInfo-flags-06559", - "text": " If flags has the VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR bit set, the list of enabled extensions in ppEnabledExtensionNames must contain VK_KHR_portability_enumeration" + "text": "If flags has the VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR bit set, the list of enabled extensions in ppEnabledExtensionNames must contain VK_KHR_portability_enumeration", + "page": "vkspec" }, { "vuid": "VUID-VkInstanceCreateInfo-pNext", - "text": " If the pNext chain of VkInstanceCreateInfo includes a VkDirectDriverLoadingListLUNARG structure, the list of enabled extensions in ppEnabledExtensionNames must contain VK_LUNARG_direct_driver_loading" + "text": "If the pNext chain of VkInstanceCreateInfo includes a VkDirectDriverLoadingListLUNARG structure, the list of enabled extensions in ppEnabledExtensionNames must contain VK_LUNARG_direct_driver_loading", + "page": "vkspec" }, { "vuid": "VUID-VkInstanceCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkInstanceCreateInfo-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 VkDebugReportCallbackCreateInfoEXT, VkDebugUtilsMessengerCreateInfoEXT, VkDirectDriverLoadingListLUNARG, VkExportMetalObjectCreateInfoEXT, VkValidationFeaturesEXT, or VkValidationFlagsEXT" + "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 VkDebugReportCallbackCreateInfoEXT, VkDebugUtilsMessengerCreateInfoEXT, VkDirectDriverLoadingListLUNARG, VkExportMetalObjectCreateInfoEXT, VkValidationFeaturesEXT, or VkValidationFlagsEXT", + "page": "vkspec" }, { "vuid": "VUID-VkInstanceCreateInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique, with the exception of structures of type VkDebugUtilsMessengerCreateInfoEXT or VkExportMetalObjectCreateInfoEXT" + "text": "The sType value of each struct in the pNext chain must be unique, with the exception of structures of type VkDebugUtilsMessengerCreateInfoEXT or VkExportMetalObjectCreateInfoEXT", + "page": "vkspec" }, { "vuid": "VUID-VkInstanceCreateInfo-flags-parameter", - "text": " flags must be a valid combination of VkInstanceCreateFlagBits values" + "text": "flags must be a valid combination of VkInstanceCreateFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkInstanceCreateInfo-pApplicationInfo-parameter", - "text": " If pApplicationInfo is not NULL, pApplicationInfo must be a valid pointer to a valid VkApplicationInfo structure" + "text": "If pApplicationInfo is not NULL, pApplicationInfo must be a valid pointer to a valid VkApplicationInfo structure", + "page": "vkspec" }, { "vuid": "VUID-VkInstanceCreateInfo-ppEnabledLayerNames-parameter", - "text": " If enabledLayerCount is not 0, ppEnabledLayerNames must be a valid pointer to an array of enabledLayerCount null-terminated UTF-8 strings" + "text": "If enabledLayerCount is not 0, ppEnabledLayerNames must be a valid pointer to an array of enabledLayerCount null-terminated UTF-8 strings", + "page": "vkspec" }, { "vuid": "VUID-VkInstanceCreateInfo-ppEnabledExtensionNames-parameter", - "text": " If enabledExtensionCount is not 0, ppEnabledExtensionNames must be a valid pointer to an array of enabledExtensionCount null-terminated UTF-8 strings" + "text": "If enabledExtensionCount is not 0, ppEnabledExtensionNames must be a valid pointer to an array of enabledExtensionCount null-terminated UTF-8 strings", + "page": "vkspec" } ] }, @@ -114,15 +135,18 @@ "core": [ { "vuid": "VUID-VkValidationFlagsEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkValidationFlagsEXT-pDisabledValidationChecks-parameter", - "text": " pDisabledValidationChecks must be a valid pointer to an array of disabledValidationCheckCount valid VkValidationCheckEXT values" + "text": "pDisabledValidationChecks must be a valid pointer to an array of disabledValidationCheckCount valid VkValidationCheckEXT values", + "page": "vkspec" }, { "vuid": "VUID-VkValidationFlagsEXT-disabledValidationCheckCount-arraylength", - "text": " disabledValidationCheckCount must be greater than 0" + "text": "disabledValidationCheckCount must be greater than 0", + "page": "vkspec" } ] }, @@ -130,23 +154,28 @@ "core": [ { "vuid": "VUID-VkValidationFeaturesEXT-pEnabledValidationFeatures-02967", - "text": " If the pEnabledValidationFeatures array contains VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT, then it must also contain VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT" + "text": "If the pEnabledValidationFeatures array contains VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT, then it must also contain VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkValidationFeaturesEXT-pEnabledValidationFeatures-02968", - "text": " If the pEnabledValidationFeatures array contains VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT, then it must not contain VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT" + "text": "If the pEnabledValidationFeatures array contains VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT, then it must not contain VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkValidationFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkValidationFeaturesEXT-pEnabledValidationFeatures-parameter", - "text": " If enabledValidationFeatureCount is not 0, pEnabledValidationFeatures must be a valid pointer to an array of enabledValidationFeatureCount valid VkValidationFeatureEnableEXT values" + "text": "If enabledValidationFeatureCount is not 0, pEnabledValidationFeatures must be a valid pointer to an array of enabledValidationFeatureCount valid VkValidationFeatureEnableEXT values", + "page": "vkspec" }, { "vuid": "VUID-VkValidationFeaturesEXT-pDisabledValidationFeatures-parameter", - "text": " If disabledValidationFeatureCount is not 0, pDisabledValidationFeatures must be a valid pointer to an array of disabledValidationFeatureCount valid VkValidationFeatureDisableEXT values" + "text": "If disabledValidationFeatureCount is not 0, pDisabledValidationFeatures must be a valid pointer to an array of disabledValidationFeatureCount valid VkValidationFeatureDisableEXT values", + "page": "vkspec" } ] }, @@ -154,19 +183,23 @@ "core": [ { "vuid": "VUID-VkDirectDriverLoadingListLUNARG-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG" + "text": "sType must be VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG", + "page": "vkspec" }, { "vuid": "VUID-VkDirectDriverLoadingListLUNARG-mode-parameter", - "text": " mode must be a valid VkDirectDriverLoadingModeLUNARG value" + "text": "mode must be a valid VkDirectDriverLoadingModeLUNARG value", + "page": "vkspec" }, { "vuid": "VUID-VkDirectDriverLoadingListLUNARG-pDrivers-parameter", - "text": " pDrivers must be a valid pointer to an array of driverCount valid VkDirectDriverLoadingInfoLUNARG structures" + "text": "pDrivers must be a valid pointer to an array of driverCount valid VkDirectDriverLoadingInfoLUNARG structures", + "page": "vkspec" }, { "vuid": "VUID-VkDirectDriverLoadingListLUNARG-driverCount-arraylength", - "text": " driverCount must be greater than 0" + "text": "driverCount must be greater than 0", + "page": "vkspec" } ] }, @@ -174,11 +207,13 @@ "core": [ { "vuid": "VUID-VkDirectDriverLoadingInfoLUNARG-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_INFO_LUNARG" + "text": "sType must be VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_INFO_LUNARG", + "page": "vkspec" }, { "vuid": "VUID-VkDirectDriverLoadingInfoLUNARG-flags-zerobitmask", - "text": " flags must be 0" + "text": "flags must be 0", + "page": "vkspec" } ] }, @@ -186,23 +221,28 @@ "core": [ { "vuid": "VUID-VkApplicationInfo-apiVersion-04010", - "text": " If apiVersion is not 0, then it must be greater than or equal to VK_API_VERSION_1_0" + "text": "If apiVersion is not 0, then it must be greater than or equal to VK_API_VERSION_1_0", + "page": "vkspec" }, { "vuid": "VUID-VkApplicationInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_APPLICATION_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_APPLICATION_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkApplicationInfo-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkApplicationInfo-pApplicationName-parameter", - "text": " If pApplicationName is not NULL, pApplicationName must be a null-terminated UTF-8 string" + "text": "If pApplicationName is not NULL, pApplicationName must be a null-terminated UTF-8 string", + "page": "vkspec" }, { "vuid": "VUID-VkApplicationInfo-pEngineName-parameter", - "text": " If pEngineName is not NULL, pEngineName must be a null-terminated UTF-8 string" + "text": "If pEngineName is not NULL, pEngineName must be a null-terminated UTF-8 string", + "page": "vkspec" } ] }, @@ -210,23 +250,28 @@ "core": [ { "vuid": "VUID-vkDestroyInstance-instance-00629", - "text": " All child objects created using instance must have been destroyed prior to destroying instance" + "text": "All child objects created using instance must have been destroyed prior to destroying instance", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyInstance-instance-00630", - "text": " If VkAllocationCallbacks were provided when instance was created, a compatible set of callbacks must be provided here" + "text": "If VkAllocationCallbacks were provided when instance was created, a compatible set of callbacks must be provided here", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyInstance-instance-00631", - "text": " If no VkAllocationCallbacks were provided when instance was created, pAllocator must be NULL" + "text": "If no VkAllocationCallbacks were provided when instance was created, pAllocator must be NULL", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyInstance-instance-parameter", - "text": " If instance is not NULL, instance must be a valid VkInstance handle" + "text": "If instance is not NULL, instance must be a valid VkInstance handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyInstance-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" } ] }, @@ -234,15 +279,18 @@ "core": [ { "vuid": "VUID-vkEnumeratePhysicalDevices-instance-parameter", - "text": " instance must be a valid VkInstance handle" + "text": "instance must be a valid VkInstance handle", + "page": "vkspec" }, { "vuid": "VUID-vkEnumeratePhysicalDevices-pPhysicalDeviceCount-parameter", - "text": " pPhysicalDeviceCount must be a valid pointer to a uint32_t value" + "text": "pPhysicalDeviceCount must be a valid pointer to a uint32_t value", + "page": "vkspec" }, { "vuid": "VUID-vkEnumeratePhysicalDevices-pPhysicalDevices-parameter", - "text": " If the value referenced by pPhysicalDeviceCount is not 0, and pPhysicalDevices is not NULL, pPhysicalDevices must be a valid pointer to an array of pPhysicalDeviceCount VkPhysicalDevice handles" + "text": "If the value referenced by pPhysicalDeviceCount is not 0, and pPhysicalDevices is not NULL, pPhysicalDevices must be a valid pointer to an array of pPhysicalDeviceCount VkPhysicalDevice handles", + "page": "vkspec" } ] }, @@ -250,11 +298,13 @@ "core": [ { "vuid": "VUID-vkGetPhysicalDeviceProperties-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": "physicalDevice must be a valid VkPhysicalDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceProperties-pProperties-parameter", - "text": " pProperties must be a valid pointer to a VkPhysicalDeviceProperties structure" + "text": "pProperties must be a valid pointer to a VkPhysicalDeviceProperties structure", + "page": "vkspec" } ] }, @@ -262,11 +312,13 @@ "core": [ { "vuid": "VUID-vkGetPhysicalDeviceProperties2-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": "physicalDevice must be a valid VkPhysicalDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceProperties2-pProperties-parameter", - "text": " pProperties must be a valid pointer to a VkPhysicalDeviceProperties2 structure" + "text": "pProperties must be a valid pointer to a VkPhysicalDeviceProperties2 structure", + "page": "vkspec" } ] }, @@ -274,15 +326,18 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceProperties2-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2", + "page": "vkspec" }, { "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, VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI, VkPhysicalDeviceConservativeRasterizationPropertiesEXT, VkPhysicalDeviceCooperativeMatrixPropertiesKHR, VkPhysicalDeviceCooperativeMatrixPropertiesNV, VkPhysicalDeviceCopyMemoryIndirectPropertiesNV, VkPhysicalDeviceCustomBorderColorPropertiesEXT, VkPhysicalDeviceDepthStencilResolveProperties, VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT, VkPhysicalDeviceDescriptorBufferPropertiesEXT, VkPhysicalDeviceDescriptorIndexingProperties, VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV, VkPhysicalDeviceDiscardRectanglePropertiesEXT, VkPhysicalDeviceDisplacementMicromapPropertiesNV, VkPhysicalDeviceDriverProperties, VkPhysicalDeviceDrmPropertiesEXT, VkPhysicalDeviceExtendedDynamicState3PropertiesEXT, VkPhysicalDeviceExternalMemoryHostPropertiesEXT, VkPhysicalDeviceFloatControlsProperties, VkPhysicalDeviceFragmentDensityMap2PropertiesEXT, VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM, VkPhysicalDeviceFragmentDensityMapPropertiesEXT, VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR, VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV, VkPhysicalDeviceFragmentShadingRatePropertiesKHR, VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT, VkPhysicalDeviceHostImageCopyPropertiesEXT, VkPhysicalDeviceIDProperties, VkPhysicalDeviceImageProcessingPropertiesQCOM, VkPhysicalDeviceInlineUniformBlockProperties, VkPhysicalDeviceLineRasterizationPropertiesEXT, VkPhysicalDeviceMaintenance3Properties, VkPhysicalDeviceMaintenance4Properties, VkPhysicalDeviceMaintenance5PropertiesKHR, VkPhysicalDeviceMemoryDecompressionPropertiesNV, VkPhysicalDeviceMeshShaderPropertiesEXT, VkPhysicalDeviceMeshShaderPropertiesNV, VkPhysicalDeviceMultiDrawPropertiesEXT, VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, VkPhysicalDeviceMultiviewProperties, VkPhysicalDeviceOpacityMicromapPropertiesEXT, VkPhysicalDeviceOpticalFlowPropertiesNV, VkPhysicalDevicePCIBusInfoPropertiesEXT, VkPhysicalDevicePerformanceQueryPropertiesKHR, VkPhysicalDevicePipelineRobustnessPropertiesEXT, VkPhysicalDevicePointClippingProperties, VkPhysicalDevicePortabilitySubsetPropertiesKHR, VkPhysicalDeviceProtectedMemoryProperties, VkPhysicalDeviceProvokingVertexPropertiesEXT, VkPhysicalDevicePushDescriptorPropertiesKHR, VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV, VkPhysicalDeviceRayTracingPipelinePropertiesKHR, VkPhysicalDeviceRayTracingPropertiesNV, VkPhysicalDeviceRobustness2PropertiesEXT, VkPhysicalDeviceSampleLocationsPropertiesEXT, VkPhysicalDeviceSamplerFilterMinmaxProperties, VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM, VkPhysicalDeviceShaderCoreProperties2AMD, VkPhysicalDeviceShaderCorePropertiesAMD, VkPhysicalDeviceShaderCorePropertiesARM, VkPhysicalDeviceShaderEnqueuePropertiesAMDX, VkPhysicalDeviceShaderIntegerDotProductProperties, VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT, VkPhysicalDeviceShaderObjectPropertiesEXT, VkPhysicalDeviceShaderSMBuiltinsPropertiesNV, VkPhysicalDeviceShaderTileImagePropertiesEXT, VkPhysicalDeviceShadingRateImagePropertiesNV, VkPhysicalDeviceSubgroupProperties, VkPhysicalDeviceSubgroupSizeControlProperties, VkPhysicalDeviceSubpassShadingPropertiesHUAWEI, VkPhysicalDeviceTexelBufferAlignmentProperties, VkPhysicalDeviceTimelineSemaphoreProperties, VkPhysicalDeviceTransformFeedbackPropertiesEXT, VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT, VkPhysicalDeviceVulkan11Properties, VkPhysicalDeviceVulkan12Properties, or VkPhysicalDeviceVulkan13Properties" + "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, VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI, VkPhysicalDeviceConservativeRasterizationPropertiesEXT, VkPhysicalDeviceCooperativeMatrixPropertiesKHR, VkPhysicalDeviceCooperativeMatrixPropertiesNV, VkPhysicalDeviceCopyMemoryIndirectPropertiesNV, VkPhysicalDeviceCustomBorderColorPropertiesEXT, VkPhysicalDeviceDepthStencilResolveProperties, VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT, VkPhysicalDeviceDescriptorBufferPropertiesEXT, VkPhysicalDeviceDescriptorIndexingProperties, VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV, VkPhysicalDeviceDiscardRectanglePropertiesEXT, VkPhysicalDeviceDisplacementMicromapPropertiesNV, VkPhysicalDeviceDriverProperties, VkPhysicalDeviceDrmPropertiesEXT, VkPhysicalDeviceExtendedDynamicState3PropertiesEXT, VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV, VkPhysicalDeviceExternalFormatResolvePropertiesANDROID, VkPhysicalDeviceExternalMemoryHostPropertiesEXT, VkPhysicalDeviceFloatControlsProperties, VkPhysicalDeviceFragmentDensityMap2PropertiesEXT, VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM, VkPhysicalDeviceFragmentDensityMapPropertiesEXT, VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR, VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV, VkPhysicalDeviceFragmentShadingRatePropertiesKHR, VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT, VkPhysicalDeviceHostImageCopyPropertiesEXT, VkPhysicalDeviceIDProperties, VkPhysicalDeviceImageProcessing2PropertiesQCOM, VkPhysicalDeviceImageProcessingPropertiesQCOM, VkPhysicalDeviceInlineUniformBlockProperties, VkPhysicalDeviceLayeredDriverPropertiesMSFT, VkPhysicalDeviceLineRasterizationPropertiesEXT, VkPhysicalDeviceMaintenance3Properties, VkPhysicalDeviceMaintenance4Properties, VkPhysicalDeviceMaintenance5PropertiesKHR, VkPhysicalDeviceMemoryDecompressionPropertiesNV, VkPhysicalDeviceMeshShaderPropertiesEXT, VkPhysicalDeviceMeshShaderPropertiesNV, VkPhysicalDeviceMultiDrawPropertiesEXT, VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, VkPhysicalDeviceMultiviewProperties, VkPhysicalDeviceNestedCommandBufferPropertiesEXT, VkPhysicalDeviceOpacityMicromapPropertiesEXT, VkPhysicalDeviceOpticalFlowPropertiesNV, VkPhysicalDevicePCIBusInfoPropertiesEXT, VkPhysicalDevicePerformanceQueryPropertiesKHR, VkPhysicalDevicePipelineRobustnessPropertiesEXT, VkPhysicalDevicePointClippingProperties, VkPhysicalDevicePortabilitySubsetPropertiesKHR, VkPhysicalDeviceProtectedMemoryProperties, VkPhysicalDeviceProvokingVertexPropertiesEXT, VkPhysicalDevicePushDescriptorPropertiesKHR, VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV, VkPhysicalDeviceRayTracingPipelinePropertiesKHR, VkPhysicalDeviceRayTracingPropertiesNV, VkPhysicalDeviceRobustness2PropertiesEXT, VkPhysicalDeviceSampleLocationsPropertiesEXT, VkPhysicalDeviceSamplerFilterMinmaxProperties, VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM, VkPhysicalDeviceShaderCoreProperties2AMD, VkPhysicalDeviceShaderCorePropertiesAMD, VkPhysicalDeviceShaderCorePropertiesARM, VkPhysicalDeviceShaderEnqueuePropertiesAMDX, VkPhysicalDeviceShaderIntegerDotProductProperties, VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT, VkPhysicalDeviceShaderObjectPropertiesEXT, VkPhysicalDeviceShaderSMBuiltinsPropertiesNV, VkPhysicalDeviceShaderTileImagePropertiesEXT, VkPhysicalDeviceShadingRateImagePropertiesNV, VkPhysicalDeviceSubgroupProperties, VkPhysicalDeviceSubgroupSizeControlProperties, VkPhysicalDeviceSubpassShadingPropertiesHUAWEI, VkPhysicalDeviceTexelBufferAlignmentProperties, VkPhysicalDeviceTimelineSemaphoreProperties, VkPhysicalDeviceTransformFeedbackPropertiesEXT, VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT, VkPhysicalDeviceVulkan11Properties, VkPhysicalDeviceVulkan12Properties, or VkPhysicalDeviceVulkan13Properties", + "page": "vkspec" }, { "vuid": "VUID-VkPhysicalDeviceProperties2-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" } ] }, @@ -290,7 +345,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceVulkan11Properties-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES", + "page": "vkspec" } ] }, @@ -298,7 +354,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceVulkan12Properties-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES", + "page": "vkspec" } ] }, @@ -306,7 +363,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceVulkan13Properties-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES", + "page": "vkspec" } ] }, @@ -314,7 +372,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceIDProperties-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES", + "page": "vkspec" } ] }, @@ -322,7 +381,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceDriverProperties-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES", + "page": "vkspec" } ] }, @@ -330,7 +390,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDevicePCIBusInfoPropertiesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT", + "page": "vkspec" } ] }, @@ -338,7 +399,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceDrmPropertiesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT", + "page": "vkspec" } ] }, @@ -346,7 +408,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceShaderIntegerDotProductProperties-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES", + "page": "vkspec" } ] }, @@ -354,7 +417,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceImageProcessingPropertiesQCOM-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM", + "page": "vkspec" } ] }, @@ -362,7 +426,26 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceShaderTileImagePropertiesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT", + "page": "vkspec" + } + ] + }, + "VkPhysicalDeviceImageProcessing2PropertiesQCOM": { + "core": [ + { + "vuid": "VUID-VkPhysicalDeviceImageProcessing2PropertiesQCOM-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM", + "page": "vkspec" + } + ] + }, + "VkPhysicalDeviceLayeredDriverPropertiesMSFT": { + "core": [ + { + "vuid": "VUID-VkPhysicalDeviceLayeredDriverPropertiesMSFT-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT", + "page": "vkspec" } ] }, @@ -370,15 +453,18 @@ "core": [ { "vuid": "VUID-vkGetPhysicalDeviceQueueFamilyProperties-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": "physicalDevice must be a valid VkPhysicalDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceQueueFamilyProperties-pQueueFamilyPropertyCount-parameter", - "text": " pQueueFamilyPropertyCount must be a valid pointer to a uint32_t value" + "text": "pQueueFamilyPropertyCount must be a valid pointer to a uint32_t value", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceQueueFamilyProperties-pQueueFamilyProperties-parameter", - "text": " If the value referenced by pQueueFamilyPropertyCount is not 0, and pQueueFamilyProperties is not NULL, pQueueFamilyProperties must be a valid pointer to an array of pQueueFamilyPropertyCount VkQueueFamilyProperties structures" + "text": "If the value referenced by pQueueFamilyPropertyCount is not 0, and pQueueFamilyProperties is not NULL, pQueueFamilyProperties must be a valid pointer to an array of pQueueFamilyPropertyCount VkQueueFamilyProperties structures", + "page": "vkspec" } ] }, @@ -386,15 +472,18 @@ "core": [ { "vuid": "VUID-vkGetPhysicalDeviceQueueFamilyProperties2-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": "physicalDevice must be a valid VkPhysicalDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceQueueFamilyProperties2-pQueueFamilyPropertyCount-parameter", - "text": " pQueueFamilyPropertyCount must be a valid pointer to a uint32_t value" + "text": "pQueueFamilyPropertyCount must be a valid pointer to a uint32_t value", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceQueueFamilyProperties2-pQueueFamilyProperties-parameter", - "text": " If the value referenced by pQueueFamilyPropertyCount is not 0, and pQueueFamilyProperties is not NULL, pQueueFamilyProperties must be a valid pointer to an array of pQueueFamilyPropertyCount VkQueueFamilyProperties2 structures" + "text": "If the value referenced by pQueueFamilyPropertyCount is not 0, and pQueueFamilyProperties is not NULL, pQueueFamilyProperties must be a valid pointer to an array of pQueueFamilyPropertyCount VkQueueFamilyProperties2 structures", + "page": "vkspec" } ] }, @@ -402,15 +491,18 @@ "core": [ { "vuid": "VUID-VkQueueFamilyProperties2-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2" + "text": "sType must be VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2", + "page": "vkspec" }, { "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, VkQueueFamilyGlobalPriorityPropertiesKHR, 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, VkQueueFamilyGlobalPriorityPropertiesKHR, VkQueueFamilyQueryResultStatusPropertiesKHR, or VkQueueFamilyVideoPropertiesKHR", + "page": "vkspec" }, { "vuid": "VUID-VkQueueFamilyProperties2-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" } ] }, @@ -418,11 +510,13 @@ "core": [ { "vuid": "VUID-VkQueueFamilyGlobalPriorityPropertiesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkQueueFamilyGlobalPriorityPropertiesKHR-priorities-parameter", - "text": " Each element of priorities must be a valid VkQueueGlobalPriorityKHR value" + "text": "Each element of priorities must be a valid VkQueueGlobalPriorityKHR value", + "page": "vkspec" } ] }, @@ -430,7 +524,8 @@ "core": [ { "vuid": "VUID-VkQueueFamilyCheckpointProperties2NV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV" + "text": "sType must be VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV", + "page": "vkspec" } ] }, @@ -438,7 +533,8 @@ "core": [ { "vuid": "VUID-VkQueueFamilyCheckpointPropertiesNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV" + "text": "sType must be VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV", + "page": "vkspec" } ] }, @@ -446,7 +542,8 @@ "core": [ { "vuid": "VUID-VkQueueFamilyVideoPropertiesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR", + "page": "vkspec" } ] }, @@ -454,7 +551,8 @@ "core": [ { "vuid": "VUID-VkQueueFamilyQueryResultStatusPropertiesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR", + "page": "vkspec" } ] }, @@ -462,19 +560,23 @@ "core": [ { "vuid": "VUID-vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": "physicalDevice must be a valid VkPhysicalDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR-pCounterCount-parameter", - "text": " pCounterCount must be a valid pointer to a uint32_t value" + "text": "pCounterCount must be a valid pointer to a uint32_t value", + "page": "vkspec" }, { "vuid": "VUID-vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR-pCounters-parameter", - "text": " If the value referenced by pCounterCount is not 0, and pCounters is not NULL, pCounters must be a valid pointer to an array of pCounterCount VkPerformanceCounterKHR structures" + "text": "If the value referenced by pCounterCount is not 0, and pCounters is not NULL, pCounters must be a valid pointer to an array of pCounterCount VkPerformanceCounterKHR structures", + "page": "vkspec" }, { "vuid": "VUID-vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR-pCounterDescriptions-parameter", - "text": " If the value referenced by pCounterCount is not 0, and pCounterDescriptions is not NULL, pCounterDescriptions must be a valid pointer to an array of pCounterCount VkPerformanceCounterDescriptionKHR structures" + "text": "If the value referenced by pCounterCount is not 0, and pCounterDescriptions is not NULL, pCounterDescriptions must be a valid pointer to an array of pCounterCount VkPerformanceCounterDescriptionKHR structures", + "page": "vkspec" } ] }, @@ -482,11 +584,13 @@ "core": [ { "vuid": "VUID-VkPerformanceCounterKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkPerformanceCounterKHR-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" } ] }, @@ -494,11 +598,13 @@ "core": [ { "vuid": "VUID-VkPerformanceCounterDescriptionKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkPerformanceCounterDescriptionKHR-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" } ] }, @@ -506,15 +612,18 @@ "core": [ { "vuid": "VUID-vkEnumeratePhysicalDeviceGroups-instance-parameter", - "text": " instance must be a valid VkInstance handle" + "text": "instance must be a valid VkInstance handle", + "page": "vkspec" }, { "vuid": "VUID-vkEnumeratePhysicalDeviceGroups-pPhysicalDeviceGroupCount-parameter", - "text": " pPhysicalDeviceGroupCount must be a valid pointer to a uint32_t value" + "text": "pPhysicalDeviceGroupCount must be a valid pointer to a uint32_t value", + "page": "vkspec" }, { "vuid": "VUID-vkEnumeratePhysicalDeviceGroups-pPhysicalDeviceGroupProperties-parameter", - "text": " If the value referenced by pPhysicalDeviceGroupCount is not 0, and pPhysicalDeviceGroupProperties is not NULL, pPhysicalDeviceGroupProperties must be a valid pointer to an array of pPhysicalDeviceGroupCount VkPhysicalDeviceGroupProperties structures" + "text": "If the value referenced by pPhysicalDeviceGroupCount is not 0, and pPhysicalDeviceGroupProperties is not NULL, pPhysicalDeviceGroupProperties must be a valid pointer to an array of pPhysicalDeviceGroupCount VkPhysicalDeviceGroupProperties structures", + "page": "vkspec" } ] }, @@ -522,11 +631,13 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceGroupProperties-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES", + "page": "vkspec" }, { "vuid": "VUID-VkPhysicalDeviceGroupProperties-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" } ] }, @@ -534,23 +645,28 @@ "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": "vkspec" }, { "vuid": "VUID-vkCreateDevice-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": "physicalDevice must be a valid VkPhysicalDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkCreateDevice-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkDeviceCreateInfo structure" + "text": "pCreateInfo must be a valid pointer to a valid VkDeviceCreateInfo structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateDevice-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateDevice-pDevice-parameter", - "text": " pDevice must be a valid pointer to a VkDevice handle" + "text": "pDevice must be a valid pointer to a VkDevice handle", + "page": "vkspec" } ] }, @@ -558,155 +674,193 @@ "core": [ { "vuid": "VUID-VkDeviceCreateInfo-queueFamilyIndex-02802", - "text": " The queueFamilyIndex member of each element of pQueueCreateInfos must be unique within pQueueCreateInfos, except that two members can share the same queueFamilyIndex if one describes protected-capable queues and one describes queues that are not protected-capable" + "text": "The queueFamilyIndex member of each element of pQueueCreateInfos must be unique within pQueueCreateInfos , except that two members can share the same queueFamilyIndex if one describes protected-capable queues and one describes queues that are not protected-capable", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceCreateInfo-pQueueCreateInfos-06755", - "text": " If multiple elements of pQueueCreateInfos share the same queueFamilyIndex, the sum of their queueCount members must be less than or equal to the queueCount member of the VkQueueFamilyProperties structure, as returned by vkGetPhysicalDeviceQueueFamilyProperties in the pQueueFamilyProperties[queueFamilyIndex]" + "text": "If multiple elements of pQueueCreateInfos share the same queueFamilyIndex, the sum of their queueCount members must be less than or equal to the queueCount member of the VkQueueFamilyProperties structure, as returned by vkGetPhysicalDeviceQueueFamilyProperties in the pQueueFamilyProperties[queueFamilyIndex]", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceCreateInfo-pQueueCreateInfos-06654", - "text": " If multiple elements of pQueueCreateInfos share the same queueFamilyIndex, then all of such elements must have the same global priority level, which can be specified explicitly by the including a VkDeviceQueueGlobalPriorityCreateInfoKHR structure in the pNext chain, or by the implicit default value" + "text": "If multiple elements of pQueueCreateInfos share the same queueFamilyIndex, then all of such elements must have the same global priority level, which can be specified explicitly by the including a VkDeviceQueueGlobalPriorityCreateInfoKHR structure in the pNext chain, or by the implicit default value", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceCreateInfo-pNext-00373", - "text": " If the pNext chain includes a VkPhysicalDeviceFeatures2 structure, then pEnabledFeatures must be NULL" + "text": "If the pNext chain includes a VkPhysicalDeviceFeatures2 structure, then pEnabledFeatures must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-01840", - "text": " If VkPhysicalDeviceProperties::apiVersion advertises Vulkan 1.1 or later, ppEnabledExtensionNames must not contain VK_AMD_negative_viewport_height" + "text": "If VkPhysicalDeviceProperties::apiVersion advertises Vulkan 1.1 or later, ppEnabledExtensionNames must not contain VK_AMD_negative_viewport_height", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-00374", - "text": " ppEnabledExtensionNames must not contain both VK_KHR_maintenance1 and VK_AMD_negative_viewport_height" + "text": "ppEnabledExtensionNames must not contain both VK_KHR_maintenance1 and VK_AMD_negative_viewport_height", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-03328", - "text": " ppEnabledExtensionNames must not contain both VK_KHR_buffer_device_address and VK_EXT_buffer_device_address" + "text": "ppEnabledExtensionNames must not contain both VK_KHR_buffer_device_address and VK_EXT_buffer_device_address", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceCreateInfo-pNext-04748", - "text": " If the pNext chain includes a VkPhysicalDeviceVulkan12Features structure and VkPhysicalDeviceVulkan12Features::bufferDeviceAddress is VK_TRUE, ppEnabledExtensionNames must not contain VK_EXT_buffer_device_address" + "text": "If the pNext chain includes a VkPhysicalDeviceVulkan12Features structure and VkPhysicalDeviceVulkan12Features::bufferDeviceAddress is VK_TRUE, ppEnabledExtensionNames must not contain VK_EXT_buffer_device_address", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceCreateInfo-pNext-02829", - "text": " If the pNext chain includes a VkPhysicalDeviceVulkan11Features structure, then it must not include a VkPhysicalDevice16BitStorageFeatures, VkPhysicalDeviceMultiviewFeatures, VkPhysicalDeviceVariablePointersFeatures, VkPhysicalDeviceProtectedMemoryFeatures, VkPhysicalDeviceSamplerYcbcrConversionFeatures, or VkPhysicalDeviceShaderDrawParametersFeatures structure" + "text": "If the pNext chain includes a VkPhysicalDeviceVulkan11Features structure, then it must not include a VkPhysicalDevice16BitStorageFeatures, VkPhysicalDeviceMultiviewFeatures, VkPhysicalDeviceVariablePointersFeatures, VkPhysicalDeviceProtectedMemoryFeatures, VkPhysicalDeviceSamplerYcbcrConversionFeatures, or VkPhysicalDeviceShaderDrawParametersFeatures structure", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceCreateInfo-pNext-02830", - "text": " If the pNext chain includes a VkPhysicalDeviceVulkan12Features structure, then it must not include a VkPhysicalDevice8BitStorageFeatures, VkPhysicalDeviceShaderAtomicInt64Features, VkPhysicalDeviceShaderFloat16Int8Features, VkPhysicalDeviceDescriptorIndexingFeatures, VkPhysicalDeviceScalarBlockLayoutFeatures, VkPhysicalDeviceImagelessFramebufferFeatures, VkPhysicalDeviceUniformBufferStandardLayoutFeatures, VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures, VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures, VkPhysicalDeviceHostQueryResetFeatures, VkPhysicalDeviceTimelineSemaphoreFeatures, VkPhysicalDeviceBufferDeviceAddressFeatures, or VkPhysicalDeviceVulkanMemoryModelFeatures structure" + "text": "If the pNext chain includes a VkPhysicalDeviceVulkan12Features structure, then it must not include a VkPhysicalDevice8BitStorageFeatures, VkPhysicalDeviceShaderAtomicInt64Features, VkPhysicalDeviceShaderFloat16Int8Features, VkPhysicalDeviceDescriptorIndexingFeatures, VkPhysicalDeviceScalarBlockLayoutFeatures, VkPhysicalDeviceImagelessFramebufferFeatures, VkPhysicalDeviceUniformBufferStandardLayoutFeatures, VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures, VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures, VkPhysicalDeviceHostQueryResetFeatures, VkPhysicalDeviceTimelineSemaphoreFeatures, VkPhysicalDeviceBufferDeviceAddressFeatures, or VkPhysicalDeviceVulkanMemoryModelFeatures structure", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-04476", - "text": " If ppEnabledExtensionNames contains \"VK_KHR_shader_draw_parameters\" and the pNext chain includes a VkPhysicalDeviceVulkan11Features structure, then VkPhysicalDeviceVulkan11Features::shaderDrawParameters must be VK_TRUE" + "text": "If ppEnabledExtensionNames contains \"VK_KHR_shader_draw_parameters\" and the pNext chain includes a VkPhysicalDeviceVulkan11Features structure, then VkPhysicalDeviceVulkan11Features::shaderDrawParameters must be VK_TRUE", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-02831", - "text": " If ppEnabledExtensionNames contains \"VK_KHR_draw_indirect_count\" and the pNext chain includes a VkPhysicalDeviceVulkan12Features structure, then VkPhysicalDeviceVulkan12Features::drawIndirectCount must be VK_TRUE" + "text": "If ppEnabledExtensionNames contains \"VK_KHR_draw_indirect_count\" and the pNext chain includes a VkPhysicalDeviceVulkan12Features structure, then VkPhysicalDeviceVulkan12Features::drawIndirectCount must be VK_TRUE", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-02832", - "text": " If ppEnabledExtensionNames contains \"VK_KHR_sampler_mirror_clamp_to_edge\" and the pNext chain includes a VkPhysicalDeviceVulkan12Features structure, then VkPhysicalDeviceVulkan12Features::samplerMirrorClampToEdge must be VK_TRUE" + "text": "If ppEnabledExtensionNames contains \"VK_KHR_sampler_mirror_clamp_to_edge\" and the pNext chain includes a VkPhysicalDeviceVulkan12Features structure, then VkPhysicalDeviceVulkan12Features::samplerMirrorClampToEdge must be VK_TRUE", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-02833", - "text": " If ppEnabledExtensionNames contains \"VK_EXT_descriptor_indexing\" and the pNext chain includes a VkPhysicalDeviceVulkan12Features structure, then VkPhysicalDeviceVulkan12Features::descriptorIndexing must be VK_TRUE" + "text": "If ppEnabledExtensionNames contains \"VK_EXT_descriptor_indexing\" and the pNext chain includes a VkPhysicalDeviceVulkan12Features structure, then VkPhysicalDeviceVulkan12Features::descriptorIndexing must be VK_TRUE", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-02834", - "text": " If ppEnabledExtensionNames contains \"VK_EXT_sampler_filter_minmax\" and the pNext chain includes a VkPhysicalDeviceVulkan12Features structure, then VkPhysicalDeviceVulkan12Features::samplerFilterMinmax must be VK_TRUE" + "text": "If ppEnabledExtensionNames contains \"VK_EXT_sampler_filter_minmax\" and the pNext chain includes a VkPhysicalDeviceVulkan12Features structure, then VkPhysicalDeviceVulkan12Features::samplerFilterMinmax must be VK_TRUE", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-02835", - "text": " If ppEnabledExtensionNames contains \"VK_EXT_shader_viewport_index_layer\" and the pNext chain includes a VkPhysicalDeviceVulkan12Features structure, then VkPhysicalDeviceVulkan12Features::shaderOutputViewportIndex and VkPhysicalDeviceVulkan12Features::shaderOutputLayer must both be VK_TRUE" + "text": "If ppEnabledExtensionNames contains \"VK_EXT_shader_viewport_index_layer\" and the pNext chain includes a VkPhysicalDeviceVulkan12Features structure, then VkPhysicalDeviceVulkan12Features::shaderOutputViewportIndex and VkPhysicalDeviceVulkan12Features::shaderOutputLayer must both be VK_TRUE", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceCreateInfo-pNext-06532", - "text": " If the pNext chain includes a VkPhysicalDeviceVulkan13Features structure, then it must not include a VkPhysicalDeviceDynamicRenderingFeatures, VkPhysicalDeviceImageRobustnessFeatures, VkPhysicalDeviceInlineUniformBlockFeatures, VkPhysicalDeviceMaintenance4Features, VkPhysicalDevicePipelineCreationCacheControlFeatures, VkPhysicalDevicePrivateDataFeatures, VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures, VkPhysicalDeviceShaderIntegerDotProductFeatures, VkPhysicalDeviceShaderTerminateInvocationFeatures, VkPhysicalDeviceSubgroupSizeControlFeatures, VkPhysicalDeviceSynchronization2Features, VkPhysicalDeviceTextureCompressionASTCHDRFeatures, or VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures structure" + "text": "If the pNext chain includes a VkPhysicalDeviceVulkan13Features structure, then it must not include a VkPhysicalDeviceDynamicRenderingFeatures, VkPhysicalDeviceImageRobustnessFeatures, VkPhysicalDeviceInlineUniformBlockFeatures, VkPhysicalDeviceMaintenance4Features, VkPhysicalDevicePipelineCreationCacheControlFeatures, VkPhysicalDevicePrivateDataFeatures, VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures, VkPhysicalDeviceShaderIntegerDotProductFeatures, VkPhysicalDeviceShaderTerminateInvocationFeatures, VkPhysicalDeviceSubgroupSizeControlFeatures, VkPhysicalDeviceSynchronization2Features, VkPhysicalDeviceTextureCompressionASTCHDRFeatures, or VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures structure", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceCreateInfo-pProperties-04451", - "text": " If the VK_KHR_portability_subset extension is included in pProperties of vkEnumerateDeviceExtensionProperties, ppEnabledExtensionNames must include \"VK_KHR_portability_subset\"" + "text": "If the VK_KHR_portability_subset extension is included in pProperties of vkEnumerateDeviceExtensionProperties, ppEnabledExtensionNames must include \"VK_KHR_portability_subset\"", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceCreateInfo-shadingRateImage-04478", - "text": " If the shadingRateImage feature is enabled, the pipelineFragmentShadingRate feature must not be enabled" + "text": "If the shadingRateImage feature is enabled, the pipelineFragmentShadingRate feature must not be enabled", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceCreateInfo-shadingRateImage-04479", - "text": " If the shadingRateImage feature is enabled, the primitiveFragmentShadingRate feature must not be enabled" + "text": "If the shadingRateImage feature is enabled, the primitiveFragmentShadingRate feature must not be enabled", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceCreateInfo-shadingRateImage-04480", - "text": " If the shadingRateImage feature is enabled, the attachmentFragmentShadingRate feature must not be enabled" + "text": "If the shadingRateImage feature is enabled, the attachmentFragmentShadingRate feature must not be enabled", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceCreateInfo-fragmentDensityMap-04481", - "text": " If the fragmentDensityMap feature is enabled, the pipelineFragmentShadingRate feature must not be enabled" + "text": "If the fragmentDensityMap feature is enabled, the pipelineFragmentShadingRate feature must not be enabled", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceCreateInfo-fragmentDensityMap-04482", - "text": " If the fragmentDensityMap feature is enabled, the primitiveFragmentShadingRate feature must not be enabled" + "text": "If the fragmentDensityMap feature is enabled, the primitiveFragmentShadingRate feature must not be enabled", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceCreateInfo-fragmentDensityMap-04483", - "text": " If the fragmentDensityMap feature is enabled, the attachmentFragmentShadingRate feature must not be enabled" + "text": "If the fragmentDensityMap feature is enabled, the attachmentFragmentShadingRate feature must not be enabled", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceCreateInfo-None-04896", - "text": " If sparseImageInt64Atomics is enabled, shaderImageInt64Atomics must be enabled" + "text": "If sparseImageInt64Atomics is enabled, shaderImageInt64Atomics must be enabled", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceCreateInfo-None-04897", - "text": " If sparseImageFloat32Atomics is enabled, shaderImageFloat32Atomics must be enabled" + "text": "If sparseImageFloat32Atomics is enabled, shaderImageFloat32Atomics must be enabled", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceCreateInfo-None-04898", - "text": " If sparseImageFloat32AtomicAdd is enabled, shaderImageFloat32AtomicAdd must be enabled" + "text": "If sparseImageFloat32AtomicAdd is enabled, shaderImageFloat32AtomicAdd must be enabled", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceCreateInfo-sparseImageFloat32AtomicMinMax-04975", - "text": " If sparseImageFloat32AtomicMinMax is enabled, shaderImageFloat32AtomicMinMax must be enabled" + "text": "If sparseImageFloat32AtomicMinMax is enabled, shaderImageFloat32AtomicMinMax must be enabled", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceCreateInfo-None-08095", - "text": " If descriptorBuffer is enabled, ppEnabledExtensionNames must not contain VK_AMD_shader_fragment_mask" + "text": "If descriptorBuffer is enabled, ppEnabledExtensionNames must not contain VK_AMD_shader_fragment_mask", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO", + "page": "vkspec" }, { "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, VkDevicePrivateDataCreateInfo, VkPhysicalDevice16BitStorageFeatures, VkPhysicalDevice4444FormatsFeaturesEXT, VkPhysicalDevice8BitStorageFeatures, VkPhysicalDeviceASTCDecodeFeaturesEXT, VkPhysicalDeviceAccelerationStructureFeaturesKHR, VkPhysicalDeviceAddressBindingReportFeaturesEXT, VkPhysicalDeviceAmigoProfilingFeaturesSEC, VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT, VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT, VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, VkPhysicalDeviceBorderColorSwizzleFeaturesEXT, VkPhysicalDeviceBufferDeviceAddressFeatures, VkPhysicalDeviceBufferDeviceAddressFeaturesEXT, VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI, VkPhysicalDeviceCoherentMemoryFeaturesAMD, VkPhysicalDeviceColorWriteEnableFeaturesEXT, VkPhysicalDeviceComputeShaderDerivativesFeaturesNV, VkPhysicalDeviceConditionalRenderingFeaturesEXT, VkPhysicalDeviceCooperativeMatrixFeaturesKHR, VkPhysicalDeviceCooperativeMatrixFeaturesNV, VkPhysicalDeviceCopyMemoryIndirectFeaturesNV, VkPhysicalDeviceCornerSampledImageFeaturesNV, VkPhysicalDeviceCoverageReductionModeFeaturesNV, VkPhysicalDeviceCustomBorderColorFeaturesEXT, VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV, VkPhysicalDeviceDepthBiasControlFeaturesEXT, VkPhysicalDeviceDepthClampZeroOneFeaturesEXT, VkPhysicalDeviceDepthClipControlFeaturesEXT, VkPhysicalDeviceDepthClipEnableFeaturesEXT, VkPhysicalDeviceDescriptorBufferFeaturesEXT, VkPhysicalDeviceDescriptorIndexingFeatures, VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE, VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV, VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV, VkPhysicalDeviceDeviceMemoryReportFeaturesEXT, VkPhysicalDeviceDiagnosticsConfigFeaturesNV, VkPhysicalDeviceDisplacementMicromapFeaturesNV, VkPhysicalDeviceDynamicRenderingFeatures, VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT, VkPhysicalDeviceExclusiveScissorFeaturesNV, VkPhysicalDeviceExtendedDynamicState2FeaturesEXT, VkPhysicalDeviceExtendedDynamicState3FeaturesEXT, VkPhysicalDeviceExtendedDynamicStateFeaturesEXT, VkPhysicalDeviceExternalMemoryRDMAFeaturesNV, VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX, VkPhysicalDeviceFaultFeaturesEXT, VkPhysicalDeviceFeatures2, VkPhysicalDeviceFragmentDensityMap2FeaturesEXT, VkPhysicalDeviceFragmentDensityMapFeaturesEXT, VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM, VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR, VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT, VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV, VkPhysicalDeviceFragmentShadingRateFeaturesKHR, VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR, VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT, VkPhysicalDeviceHostImageCopyFeaturesEXT, VkPhysicalDeviceHostQueryResetFeatures, VkPhysicalDeviceImage2DViewOf3DFeaturesEXT, VkPhysicalDeviceImageCompressionControlFeaturesEXT, VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT, VkPhysicalDeviceImageProcessingFeaturesQCOM, VkPhysicalDeviceImageRobustnessFeatures, VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT, VkPhysicalDeviceImageViewMinLodFeaturesEXT, VkPhysicalDeviceImagelessFramebufferFeatures, VkPhysicalDeviceIndexTypeUint8FeaturesEXT, VkPhysicalDeviceInheritedViewportScissorFeaturesNV, VkPhysicalDeviceInlineUniformBlockFeatures, VkPhysicalDeviceInvocationMaskFeaturesHUAWEI, VkPhysicalDeviceLegacyDitheringFeaturesEXT, VkPhysicalDeviceLineRasterizationFeaturesEXT, VkPhysicalDeviceLinearColorAttachmentFeaturesNV, VkPhysicalDeviceMaintenance4Features, VkPhysicalDeviceMaintenance5FeaturesKHR, VkPhysicalDeviceMemoryDecompressionFeaturesNV, VkPhysicalDeviceMemoryPriorityFeaturesEXT, VkPhysicalDeviceMeshShaderFeaturesEXT, VkPhysicalDeviceMeshShaderFeaturesNV, VkPhysicalDeviceMultiDrawFeaturesEXT, VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT, VkPhysicalDeviceMultiviewFeatures, VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM, VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM, VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT, VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT, VkPhysicalDeviceOpacityMicromapFeaturesEXT, VkPhysicalDeviceOpticalFlowFeaturesNV, VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT, VkPhysicalDevicePerformanceQueryFeaturesKHR, VkPhysicalDevicePipelineCreationCacheControlFeatures, VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR, VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT, VkPhysicalDevicePipelinePropertiesFeaturesEXT, VkPhysicalDevicePipelineProtectedAccessFeaturesEXT, VkPhysicalDevicePipelineRobustnessFeaturesEXT, VkPhysicalDevicePortabilitySubsetFeaturesKHR, VkPhysicalDevicePresentBarrierFeaturesNV, VkPhysicalDevicePresentIdFeaturesKHR, VkPhysicalDevicePresentWaitFeaturesKHR, VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT, VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT, VkPhysicalDevicePrivateDataFeatures, VkPhysicalDeviceProtectedMemoryFeatures, VkPhysicalDeviceProvokingVertexFeaturesEXT, VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT, VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT, VkPhysicalDeviceRayQueryFeaturesKHR, VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV, VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR, VkPhysicalDeviceRayTracingMotionBlurFeaturesNV, VkPhysicalDeviceRayTracingPipelineFeaturesKHR, VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR, VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV, VkPhysicalDeviceRobustness2FeaturesEXT, VkPhysicalDeviceSamplerYcbcrConversionFeatures, VkPhysicalDeviceScalarBlockLayoutFeatures, VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures, VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT, VkPhysicalDeviceShaderAtomicFloatFeaturesEXT, VkPhysicalDeviceShaderAtomicInt64Features, VkPhysicalDeviceShaderClockFeaturesKHR, VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM, VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures, VkPhysicalDeviceShaderDrawParametersFeatures, VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD, VkPhysicalDeviceShaderEnqueueFeaturesAMDX, VkPhysicalDeviceShaderFloat16Int8Features, VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT, VkPhysicalDeviceShaderImageFootprintFeaturesNV, VkPhysicalDeviceShaderIntegerDotProductFeatures, VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL, VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT, VkPhysicalDeviceShaderObjectFeaturesEXT, VkPhysicalDeviceShaderSMBuiltinsFeaturesNV, VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures, VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR, VkPhysicalDeviceShaderTerminateInvocationFeatures, VkPhysicalDeviceShaderTileImageFeaturesEXT, VkPhysicalDeviceShadingRateImageFeaturesNV, VkPhysicalDeviceSubgroupSizeControlFeatures, VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT, VkPhysicalDeviceSubpassShadingFeaturesHUAWEI, VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT, VkPhysicalDeviceSynchronization2Features, VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT, VkPhysicalDeviceTextureCompressionASTCHDRFeatures, VkPhysicalDeviceTilePropertiesFeaturesQCOM, VkPhysicalDeviceTimelineSemaphoreFeatures, VkPhysicalDeviceTransformFeedbackFeaturesEXT, VkPhysicalDeviceUniformBufferStandardLayoutFeatures, VkPhysicalDeviceVariablePointersFeatures, VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT, VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT, VkPhysicalDeviceVulkan11Features, VkPhysicalDeviceVulkan12Features, VkPhysicalDeviceVulkan13Features, VkPhysicalDeviceVulkanMemoryModelFeatures, VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR, VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT, VkPhysicalDeviceYcbcrImageArraysFeaturesEXT, 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, VkDevicePrivateDataCreateInfo, VkPhysicalDevice16BitStorageFeatures, VkPhysicalDevice4444FormatsFeaturesEXT, VkPhysicalDevice8BitStorageFeatures, VkPhysicalDeviceASTCDecodeFeaturesEXT, VkPhysicalDeviceAccelerationStructureFeaturesKHR, VkPhysicalDeviceAddressBindingReportFeaturesEXT, VkPhysicalDeviceAmigoProfilingFeaturesSEC, VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT, VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT, VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, VkPhysicalDeviceBorderColorSwizzleFeaturesEXT, VkPhysicalDeviceBufferDeviceAddressFeatures, VkPhysicalDeviceBufferDeviceAddressFeaturesEXT, VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI, VkPhysicalDeviceCoherentMemoryFeaturesAMD, VkPhysicalDeviceColorWriteEnableFeaturesEXT, VkPhysicalDeviceComputeShaderDerivativesFeaturesNV, VkPhysicalDeviceConditionalRenderingFeaturesEXT, VkPhysicalDeviceCooperativeMatrixFeaturesKHR, VkPhysicalDeviceCooperativeMatrixFeaturesNV, VkPhysicalDeviceCopyMemoryIndirectFeaturesNV, VkPhysicalDeviceCornerSampledImageFeaturesNV, VkPhysicalDeviceCoverageReductionModeFeaturesNV, VkPhysicalDeviceCubicClampFeaturesQCOM, VkPhysicalDeviceCubicWeightsFeaturesQCOM, VkPhysicalDeviceCustomBorderColorFeaturesEXT, VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV, VkPhysicalDeviceDepthBiasControlFeaturesEXT, VkPhysicalDeviceDepthClampZeroOneFeaturesEXT, VkPhysicalDeviceDepthClipControlFeaturesEXT, VkPhysicalDeviceDepthClipEnableFeaturesEXT, VkPhysicalDeviceDescriptorBufferFeaturesEXT, VkPhysicalDeviceDescriptorIndexingFeatures, VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV, VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE, VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV, VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV, VkPhysicalDeviceDeviceMemoryReportFeaturesEXT, VkPhysicalDeviceDiagnosticsConfigFeaturesNV, VkPhysicalDeviceDisplacementMicromapFeaturesNV, VkPhysicalDeviceDynamicRenderingFeatures, VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT, VkPhysicalDeviceExclusiveScissorFeaturesNV, VkPhysicalDeviceExtendedDynamicState2FeaturesEXT, VkPhysicalDeviceExtendedDynamicState3FeaturesEXT, VkPhysicalDeviceExtendedDynamicStateFeaturesEXT, VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV, VkPhysicalDeviceExternalFormatResolveFeaturesANDROID, VkPhysicalDeviceExternalMemoryRDMAFeaturesNV, VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX, VkPhysicalDeviceFaultFeaturesEXT, VkPhysicalDeviceFeatures2, VkPhysicalDeviceFragmentDensityMap2FeaturesEXT, VkPhysicalDeviceFragmentDensityMapFeaturesEXT, VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM, VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR, VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT, VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV, VkPhysicalDeviceFragmentShadingRateFeaturesKHR, VkPhysicalDeviceFrameBoundaryFeaturesEXT, VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR, VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT, VkPhysicalDeviceHostImageCopyFeaturesEXT, VkPhysicalDeviceHostQueryResetFeatures, VkPhysicalDeviceImage2DViewOf3DFeaturesEXT, VkPhysicalDeviceImageCompressionControlFeaturesEXT, VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT, VkPhysicalDeviceImageProcessing2FeaturesQCOM, VkPhysicalDeviceImageProcessingFeaturesQCOM, VkPhysicalDeviceImageRobustnessFeatures, VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT, VkPhysicalDeviceImageViewMinLodFeaturesEXT, VkPhysicalDeviceImagelessFramebufferFeatures, VkPhysicalDeviceIndexTypeUint8FeaturesEXT, VkPhysicalDeviceInheritedViewportScissorFeaturesNV, VkPhysicalDeviceInlineUniformBlockFeatures, VkPhysicalDeviceInvocationMaskFeaturesHUAWEI, VkPhysicalDeviceLegacyDitheringFeaturesEXT, VkPhysicalDeviceLineRasterizationFeaturesEXT, VkPhysicalDeviceLinearColorAttachmentFeaturesNV, VkPhysicalDeviceMaintenance4Features, VkPhysicalDeviceMaintenance5FeaturesKHR, VkPhysicalDeviceMemoryDecompressionFeaturesNV, VkPhysicalDeviceMemoryPriorityFeaturesEXT, VkPhysicalDeviceMeshShaderFeaturesEXT, VkPhysicalDeviceMeshShaderFeaturesNV, VkPhysicalDeviceMultiDrawFeaturesEXT, VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT, VkPhysicalDeviceMultiviewFeatures, VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM, VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM, VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT, VkPhysicalDeviceNestedCommandBufferFeaturesEXT, VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT, VkPhysicalDeviceOpacityMicromapFeaturesEXT, VkPhysicalDeviceOpticalFlowFeaturesNV, VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT, VkPhysicalDevicePerformanceQueryFeaturesKHR, VkPhysicalDevicePipelineCreationCacheControlFeatures, VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR, VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT, VkPhysicalDevicePipelinePropertiesFeaturesEXT, VkPhysicalDevicePipelineProtectedAccessFeaturesEXT, VkPhysicalDevicePipelineRobustnessFeaturesEXT, VkPhysicalDevicePortabilitySubsetFeaturesKHR, VkPhysicalDevicePresentBarrierFeaturesNV, VkPhysicalDevicePresentIdFeaturesKHR, VkPhysicalDevicePresentWaitFeaturesKHR, VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT, VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT, VkPhysicalDevicePrivateDataFeatures, VkPhysicalDeviceProtectedMemoryFeatures, VkPhysicalDeviceProvokingVertexFeaturesEXT, VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT, VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT, VkPhysicalDeviceRayQueryFeaturesKHR, VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV, VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR, VkPhysicalDeviceRayTracingMotionBlurFeaturesNV, VkPhysicalDeviceRayTracingPipelineFeaturesKHR, VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR, VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV, VkPhysicalDeviceRobustness2FeaturesEXT, VkPhysicalDeviceSamplerYcbcrConversionFeatures, VkPhysicalDeviceScalarBlockLayoutFeatures, VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures, VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT, VkPhysicalDeviceShaderAtomicFloatFeaturesEXT, VkPhysicalDeviceShaderAtomicInt64Features, VkPhysicalDeviceShaderClockFeaturesKHR, VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM, VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures, VkPhysicalDeviceShaderDrawParametersFeatures, VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD, VkPhysicalDeviceShaderEnqueueFeaturesAMDX, VkPhysicalDeviceShaderFloat16Int8Features, VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT, VkPhysicalDeviceShaderImageFootprintFeaturesNV, VkPhysicalDeviceShaderIntegerDotProductFeatures, VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL, VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT, VkPhysicalDeviceShaderObjectFeaturesEXT, VkPhysicalDeviceShaderSMBuiltinsFeaturesNV, VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures, VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR, VkPhysicalDeviceShaderTerminateInvocationFeatures, VkPhysicalDeviceShaderTileImageFeaturesEXT, VkPhysicalDeviceShadingRateImageFeaturesNV, VkPhysicalDeviceSubgroupSizeControlFeatures, VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT, VkPhysicalDeviceSubpassShadingFeaturesHUAWEI, VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT, VkPhysicalDeviceSynchronization2Features, VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT, VkPhysicalDeviceTextureCompressionASTCHDRFeatures, VkPhysicalDeviceTilePropertiesFeaturesQCOM, VkPhysicalDeviceTimelineSemaphoreFeatures, VkPhysicalDeviceTransformFeedbackFeaturesEXT, VkPhysicalDeviceUniformBufferStandardLayoutFeatures, VkPhysicalDeviceVariablePointersFeatures, VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT, VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT, VkPhysicalDeviceVulkan11Features, VkPhysicalDeviceVulkan12Features, VkPhysicalDeviceVulkan13Features, VkPhysicalDeviceVulkanMemoryModelFeatures, VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR, VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT, VkPhysicalDeviceYcbcrDegammaFeaturesQCOM, VkPhysicalDeviceYcbcrImageArraysFeaturesEXT, or VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceCreateInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique, with the exception of structures of type VkDeviceDeviceMemoryReportCreateInfoEXT or VkDevicePrivateDataCreateInfo" + "text": "The sType value of each struct in the pNext chain must be unique, with the exception of structures of type VkDeviceDeviceMemoryReportCreateInfoEXT or VkDevicePrivateDataCreateInfo", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceCreateInfo-flags-zerobitmask", - "text": " flags must be 0" + "text": "flags must be 0", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceCreateInfo-pQueueCreateInfos-parameter", - "text": " pQueueCreateInfos must be a valid pointer to an array of queueCreateInfoCount valid VkDeviceQueueCreateInfo structures" + "text": "pQueueCreateInfos must be a valid pointer to an array of queueCreateInfoCount valid VkDeviceQueueCreateInfo structures", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceCreateInfo-ppEnabledLayerNames-parameter", - "text": " If enabledLayerCount is not 0, ppEnabledLayerNames must be a valid pointer to an array of enabledLayerCount null-terminated UTF-8 strings" + "text": "If enabledLayerCount is not 0, ppEnabledLayerNames must be a valid pointer to an array of enabledLayerCount null-terminated UTF-8 strings", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-parameter", - "text": " If enabledExtensionCount is not 0, ppEnabledExtensionNames must be a valid pointer to an array of enabledExtensionCount null-terminated UTF-8 strings" + "text": "If enabledExtensionCount is not 0, ppEnabledExtensionNames must be a valid pointer to an array of enabledExtensionCount null-terminated UTF-8 strings", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceCreateInfo-pEnabledFeatures-parameter", - "text": " If pEnabledFeatures is not NULL, pEnabledFeatures must be a valid pointer to a valid VkPhysicalDeviceFeatures structure" + "text": "If pEnabledFeatures is not NULL, pEnabledFeatures must be a valid pointer to a valid VkPhysicalDeviceFeatures structure", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceCreateInfo-queueCreateInfoCount-arraylength", - "text": " queueCreateInfoCount must be greater than 0" + "text": "queueCreateInfoCount must be greater than 0", + "page": "vkspec" } ] }, @@ -714,23 +868,28 @@ "core": [ { "vuid": "VUID-VkDeviceGroupDeviceCreateInfo-pPhysicalDevices-00375", - "text": " Each element of pPhysicalDevices must be unique" + "text": "Each element of pPhysicalDevices must be unique", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceGroupDeviceCreateInfo-pPhysicalDevices-00376", - "text": " All elements of pPhysicalDevices must be in the same device group as enumerated by vkEnumeratePhysicalDeviceGroups" + "text": "All elements of pPhysicalDevices must be in the same device group as enumerated by vkEnumeratePhysicalDeviceGroups", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceGroupDeviceCreateInfo-physicalDeviceCount-00377", - "text": " If physicalDeviceCount is not 0, the physicalDevice parameter of vkCreateDevice must be an element of pPhysicalDevices" + "text": "If physicalDeviceCount is not 0, the physicalDevice parameter of vkCreateDevice must be an element of pPhysicalDevices", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceGroupDeviceCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceGroupDeviceCreateInfo-pPhysicalDevices-parameter", - "text": " If physicalDeviceCount is not 0, pPhysicalDevices must be a valid pointer to an array of physicalDeviceCount valid VkPhysicalDevice handles" + "text": "If physicalDeviceCount is not 0, pPhysicalDevices must be a valid pointer to an array of physicalDeviceCount valid VkPhysicalDevice handles", + "page": "vkspec" } ] }, @@ -738,11 +897,13 @@ "core": [ { "vuid": "VUID-VkDeviceMemoryOverallocationCreateInfoAMD-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD" + "text": "sType must be VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceMemoryOverallocationCreateInfoAMD-overallocationBehavior-parameter", - "text": " overallocationBehavior must be a valid VkMemoryOverallocationBehaviorAMD value" + "text": "overallocationBehavior must be a valid VkMemoryOverallocationBehaviorAMD value", + "page": "vkspec" } ] }, @@ -750,11 +911,13 @@ "core": [ { "vuid": "VUID-VkDeviceDiagnosticsConfigCreateInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV" + "text": "sType must be VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceDiagnosticsConfigCreateInfoNV-flags-parameter", - "text": " flags must be a valid combination of VkDeviceDiagnosticsConfigFlagBitsNV values" + "text": "flags must be a valid combination of VkDeviceDiagnosticsConfigFlagBitsNV values", + "page": "vkspec" } ] }, @@ -762,19 +925,23 @@ "core": [ { "vuid": "VUID-VkDeviceDeviceMemoryReportCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceDeviceMemoryReportCreateInfoEXT-flags-zerobitmask", - "text": " flags must be 0" + "text": "flags must be 0", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceDeviceMemoryReportCreateInfoEXT-pfnUserCallback-parameter", - "text": " pfnUserCallback must be a valid PFN_vkDeviceMemoryReportCallbackEXT value" + "text": "pfnUserCallback must be a valid PFN_vkDeviceMemoryReportCallbackEXT value", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceDeviceMemoryReportCreateInfoEXT-pUserData-parameter", - "text": " pUserData must be a pointer value" + "text": "pUserData must be a pointer value", + "page": "vkspec" } ] }, @@ -782,11 +949,13 @@ "core": [ { "vuid": "VUID-VkDeviceMemoryReportCallbackDataEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceMemoryReportCallbackDataEXT-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" } ] }, @@ -794,31 +963,37 @@ "core": [ { "vuid": "VUID-VkDevicePrivateDataCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO", + "page": "vkspec" } ] }, "vkDestroyDevice": { "core": [ { - "vuid": "VUID-vkDestroyDevice-device-00378", - "text": " All child objects created on device must have been destroyed prior to destroying device" + "vuid": "VUID-vkDestroyDevice-device-05137", + "text": "All child objects created on device must have been destroyed prior to destroying device", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyDevice-device-00379", - "text": " If VkAllocationCallbacks were provided when device was created, a compatible set of callbacks must be provided here" + "text": "If VkAllocationCallbacks were provided when device was created, a compatible set of callbacks must be provided here", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyDevice-device-00380", - "text": " If no VkAllocationCallbacks were provided when device was created, pAllocator must be NULL" + "text": "If no VkAllocationCallbacks were provided when device was created, pAllocator must be NULL", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyDevice-device-parameter", - "text": " If device is not NULL, device must be a valid VkDevice handle" + "text": "If device is not NULL, device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyDevice-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" } ] }, @@ -826,47 +1001,58 @@ "core": [ { "vuid": "VUID-VkDeviceQueueCreateInfo-queueFamilyIndex-00381", - "text": " queueFamilyIndex must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties" + "text": "queueFamilyIndex must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceQueueCreateInfo-queueCount-00382", - "text": " queueCount must be less than or equal to the queueCount member of the VkQueueFamilyProperties structure, as returned by vkGetPhysicalDeviceQueueFamilyProperties in the pQueueFamilyProperties[queueFamilyIndex]" + "text": "queueCount must be less than or equal to the queueCount member of the VkQueueFamilyProperties structure, as returned by vkGetPhysicalDeviceQueueFamilyProperties in the pQueueFamilyProperties[queueFamilyIndex]", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceQueueCreateInfo-pQueuePriorities-00383", - "text": " Each element of pQueuePriorities must be between 0.0 and 1.0 inclusive" + "text": "Each element of pQueuePriorities must be between 0.0 and 1.0 inclusive", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceQueueCreateInfo-flags-02861", - "text": " If the protectedMemory feature is not enabled, the VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT bit of flags must not be set" + "text": "If the protectedMemory feature is not enabled, the VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT bit of flags must not be set", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceQueueCreateInfo-flags-06449", - "text": " If flags includes VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT, queueFamilyIndex must be the index of a queue family that includes the VK_QUEUE_PROTECTED_BIT capability" + "text": "If flags includes VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT, queueFamilyIndex must be the index of a queue family that includes the VK_QUEUE_PROTECTED_BIT capability", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceQueueCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceQueueCreateInfo-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkDeviceQueueGlobalPriorityCreateInfoKHR" + "text": "pNext must be NULL or a pointer to a valid instance of VkDeviceQueueGlobalPriorityCreateInfoKHR", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceQueueCreateInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceQueueCreateInfo-flags-parameter", - "text": " flags must be a valid combination of VkDeviceQueueCreateFlagBits values" + "text": "flags must be a valid combination of VkDeviceQueueCreateFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceQueueCreateInfo-pQueuePriorities-parameter", - "text": " pQueuePriorities must be a valid pointer to an array of queueCount float values" + "text": "pQueuePriorities must be a valid pointer to an array of queueCount float values", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceQueueCreateInfo-queueCount-arraylength", - "text": " queueCount must be greater than 0" + "text": "queueCount must be greater than 0", + "page": "vkspec" } ] }, @@ -874,11 +1060,13 @@ "core": [ { "vuid": "VUID-VkDeviceQueueGlobalPriorityCreateInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceQueueGlobalPriorityCreateInfoKHR-globalPriority-parameter", - "text": " globalPriority must be a valid VkQueueGlobalPriorityKHR value" + "text": "globalPriority must be a valid VkQueueGlobalPriorityKHR value", + "page": "vkspec" } ] }, @@ -886,23 +1074,28 @@ "core": [ { "vuid": "VUID-vkGetDeviceQueue-queueFamilyIndex-00384", - "text": " queueFamilyIndex must be one of the queue family indices specified when device was created, via the VkDeviceQueueCreateInfo structure" + "text": "queueFamilyIndex must be one of the queue family indices specified when device was created, via the VkDeviceQueueCreateInfo structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetDeviceQueue-queueIndex-00385", - "text": " queueIndex must be less than the value of VkDeviceQueueCreateInfo::queueCount for the queue family indicated by queueFamilyIndex when device was created" + "text": "queueIndex must be less than the value of VkDeviceQueueCreateInfo::queueCount for the queue family indicated by queueFamilyIndex when device was created", + "page": "vkspec" }, { "vuid": "VUID-vkGetDeviceQueue-flags-01841", - "text": " VkDeviceQueueCreateInfo::flags must have been set to zero when device was created" + "text": "VkDeviceQueueCreateInfo::flags must have been set to zero when device was created", + "page": "vkspec" }, { "vuid": "VUID-vkGetDeviceQueue-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetDeviceQueue-pQueue-parameter", - "text": " pQueue must be a valid pointer to a VkQueue handle" + "text": "pQueue must be a valid pointer to a VkQueue handle", + "page": "vkspec" } ] }, @@ -910,15 +1103,18 @@ "core": [ { "vuid": "VUID-vkGetDeviceQueue2-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetDeviceQueue2-pQueueInfo-parameter", - "text": " pQueueInfo must be a valid pointer to a valid VkDeviceQueueInfo2 structure" + "text": "pQueueInfo must be a valid pointer to a valid VkDeviceQueueInfo2 structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetDeviceQueue2-pQueue-parameter", - "text": " pQueue must be a valid pointer to a VkQueue handle" + "text": "pQueue must be a valid pointer to a VkQueue handle", + "page": "vkspec" } ] }, @@ -926,27 +1122,33 @@ "core": [ { "vuid": "VUID-VkDeviceQueueInfo2-queueFamilyIndex-01842", - "text": " queueFamilyIndex must be one of the queue family indices specified when device was created, via the VkDeviceQueueCreateInfo structure" + "text": "queueFamilyIndex must be one of the queue family indices specified when device was created, via the VkDeviceQueueCreateInfo structure", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceQueueInfo2-flags-06225", - "text": " flags must be equal to VkDeviceQueueCreateInfo::flags for a VkDeviceQueueCreateInfo structure for the queue family indicated by queueFamilyIndex when device was created" + "text": "flags must be equal to VkDeviceQueueCreateInfo::flags for a VkDeviceQueueCreateInfo structure for the queue family indicated by queueFamilyIndex when device was created", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceQueueInfo2-queueIndex-01843", - "text": " queueIndex must be less than VkDeviceQueueCreateInfo::queueCount for the corresponding queue family and flags indicated by queueFamilyIndex and flags when device was created" + "text": "queueIndex must be less than VkDeviceQueueCreateInfo::queueCount for the corresponding queue family and flags indicated by queueFamilyIndex and flags when device was created", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceQueueInfo2-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2" + "text": "sType must be VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceQueueInfo2-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceQueueInfo2-flags-parameter", - "text": " flags must be a valid combination of VkDeviceQueueCreateFlagBits values" + "text": "flags must be a valid combination of VkDeviceQueueCreateFlagBits values", + "page": "vkspec" } ] }, @@ -954,23 +1156,28 @@ "core": [ { "vuid": "VUID-vkCreateCommandPool-queueFamilyIndex-01937", - "text": " pCreateInfo->queueFamilyIndex must be the index of a queue family available in the logical device device" + "text": "pCreateInfo->queueFamilyIndex must be the index of a queue family available in the logical device device", + "page": "vkspec" }, { "vuid": "VUID-vkCreateCommandPool-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkCreateCommandPool-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkCommandPoolCreateInfo structure" + "text": "pCreateInfo must be a valid pointer to a valid VkCommandPoolCreateInfo structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateCommandPool-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateCommandPool-pCommandPool-parameter", - "text": " pCommandPool must be a valid pointer to a VkCommandPool handle" + "text": "pCommandPool must be a valid pointer to a VkCommandPool handle", + "page": "vkspec" } ] }, @@ -978,19 +1185,23 @@ "core": [ { "vuid": "VUID-VkCommandPoolCreateInfo-flags-02860", - "text": " If the protectedMemory feature is not enabled, the VK_COMMAND_POOL_CREATE_PROTECTED_BIT bit of flags must not be set" + "text": "If the protectedMemory feature is not enabled, the VK_COMMAND_POOL_CREATE_PROTECTED_BIT bit of flags must not be set", + "page": "vkspec" }, { "vuid": "VUID-VkCommandPoolCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkCommandPoolCreateInfo-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkCommandPoolCreateInfo-flags-parameter", - "text": " flags must be a valid combination of VkCommandPoolCreateFlagBits values" + "text": "flags must be a valid combination of VkCommandPoolCreateFlagBits values", + "page": "vkspec" } ] }, @@ -998,19 +1209,23 @@ "core": [ { "vuid": "VUID-vkTrimCommandPool-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkTrimCommandPool-commandPool-parameter", - "text": " commandPool must be a valid VkCommandPool handle" + "text": "commandPool must be a valid VkCommandPool handle", + "page": "vkspec" }, { "vuid": "VUID-vkTrimCommandPool-flags-zerobitmask", - "text": " flags must be 0" + "text": "flags must be 0", + "page": "vkspec" }, { "vuid": "VUID-vkTrimCommandPool-commandPool-parent", - "text": " commandPool must have been created, allocated, or retrieved from device" + "text": "commandPool must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -1018,23 +1233,28 @@ "core": [ { "vuid": "VUID-vkResetCommandPool-commandPool-00040", - "text": " All VkCommandBuffer objects allocated from commandPool must not be in the pending state" + "text": "All VkCommandBuffer objects allocated from commandPool must not be in the pending state", + "page": "vkspec" }, { "vuid": "VUID-vkResetCommandPool-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkResetCommandPool-commandPool-parameter", - "text": " commandPool must be a valid VkCommandPool handle" + "text": "commandPool must be a valid VkCommandPool handle", + "page": "vkspec" }, { "vuid": "VUID-vkResetCommandPool-flags-parameter", - "text": " flags must be a valid combination of VkCommandPoolResetFlagBits values" + "text": "flags must be a valid combination of VkCommandPoolResetFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-vkResetCommandPool-commandPool-parent", - "text": " commandPool must have been created, allocated, or retrieved from device" + "text": "commandPool must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -1042,31 +1262,38 @@ "core": [ { "vuid": "VUID-vkDestroyCommandPool-commandPool-00041", - "text": " All VkCommandBuffer objects allocated from commandPool must not be in the pending state" + "text": "All VkCommandBuffer objects allocated from commandPool must not be in the pending state", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyCommandPool-commandPool-00042", - "text": " If VkAllocationCallbacks were provided when commandPool was created, a compatible set of callbacks must be provided here" + "text": "If VkAllocationCallbacks were provided when commandPool was created, a compatible set of callbacks must be provided here", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyCommandPool-commandPool-00043", - "text": " If no VkAllocationCallbacks were provided when commandPool was created, pAllocator must be NULL" + "text": "If no VkAllocationCallbacks were provided when commandPool was created, pAllocator must be NULL", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyCommandPool-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyCommandPool-commandPool-parameter", - "text": " If commandPool is not VK_NULL_HANDLE, commandPool must be a valid VkCommandPool handle" + "text": "If commandPool is not VK_NULL_HANDLE, commandPool must be a valid VkCommandPool handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyCommandPool-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyCommandPool-commandPool-parent", - "text": " If commandPool is a valid handle, it must have been created, allocated, or retrieved from device" + "text": "If commandPool is a valid handle, it must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -1074,19 +1301,23 @@ "core": [ { "vuid": "VUID-vkAllocateCommandBuffers-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkAllocateCommandBuffers-pAllocateInfo-parameter", - "text": " pAllocateInfo must be a valid pointer to a valid VkCommandBufferAllocateInfo structure" + "text": "pAllocateInfo must be a valid pointer to a valid VkCommandBufferAllocateInfo structure", + "page": "vkspec" }, { "vuid": "VUID-vkAllocateCommandBuffers-pCommandBuffers-parameter", - "text": " pCommandBuffers must be a valid pointer to an array of pAllocateInfo->commandBufferCount VkCommandBuffer handles" + "text": "pCommandBuffers must be a valid pointer to an array of pAllocateInfo->commandBufferCount VkCommandBuffer handles", + "page": "vkspec" }, { "vuid": "VUID-vkAllocateCommandBuffers-pAllocateInfo::commandBufferCount-arraylength", - "text": " pAllocateInfo->commandBufferCount must be greater than 0" + "text": "pAllocateInfo->commandBufferCount must be greater than 0", + "page": "vkspec" } ] }, @@ -1094,19 +1325,23 @@ "core": [ { "vuid": "VUID-VkCommandBufferAllocateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkCommandBufferAllocateInfo-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkCommandBufferAllocateInfo-commandPool-parameter", - "text": " commandPool must be a valid VkCommandPool handle" + "text": "commandPool must be a valid VkCommandPool handle", + "page": "vkspec" }, { "vuid": "VUID-VkCommandBufferAllocateInfo-level-parameter", - "text": " level must be a valid VkCommandBufferLevel value" + "text": "level must be a valid VkCommandBufferLevel value", + "page": "vkspec" } ] }, @@ -1114,19 +1349,23 @@ "core": [ { "vuid": "VUID-vkResetCommandBuffer-commandBuffer-00045", - "text": " commandBuffer must not be in the pending state" + "text": "commandBuffer must not be in the pending state", + "page": "vkspec" }, { "vuid": "VUID-vkResetCommandBuffer-commandBuffer-00046", - "text": " commandBuffer must have been allocated from a pool that was created with the VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT" + "text": "commandBuffer must have been allocated from a pool that was created with the VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkResetCommandBuffer-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkResetCommandBuffer-flags-parameter", - "text": " flags must be a valid combination of VkCommandBufferResetFlagBits values" + "text": "flags must be a valid combination of VkCommandBufferResetFlagBits values", + "page": "vkspec" } ] }, @@ -1134,31 +1373,38 @@ "core": [ { "vuid": "VUID-vkFreeCommandBuffers-pCommandBuffers-00047", - "text": " All elements of pCommandBuffers must not be in the pending state" + "text": "All elements of pCommandBuffers must not be in the pending state", + "page": "vkspec" }, { "vuid": "VUID-vkFreeCommandBuffers-pCommandBuffers-00048", - "text": " pCommandBuffers must be a valid pointer to an array of commandBufferCount VkCommandBuffer handles, each element of which must either be a valid handle or NULL" + "text": "pCommandBuffers must be a valid pointer to an array of commandBufferCount VkCommandBuffer handles, each element of which must either be a valid handle or NULL", + "page": "vkspec" }, { "vuid": "VUID-vkFreeCommandBuffers-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkFreeCommandBuffers-commandPool-parameter", - "text": " commandPool must be a valid VkCommandPool handle" + "text": "commandPool must be a valid VkCommandPool handle", + "page": "vkspec" }, { "vuid": "VUID-vkFreeCommandBuffers-commandBufferCount-arraylength", - "text": " commandBufferCount must be greater than 0" + "text": "commandBufferCount must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-vkFreeCommandBuffers-commandPool-parent", - "text": " commandPool must have been created, allocated, or retrieved from device" + "text": "commandPool must have been created, allocated, or retrieved from device", + "page": "vkspec" }, { "vuid": "VUID-vkFreeCommandBuffers-pCommandBuffers-parent", - "text": " Each element of pCommandBuffers that is a valid handle must have been created, allocated, or retrieved from commandPool" + "text": "Each element of pCommandBuffers that is a valid handle must have been created, allocated, or retrieved from commandPool", + "page": "vkspec" } ] }, @@ -1166,31 +1412,38 @@ "core": [ { "vuid": "VUID-vkBeginCommandBuffer-commandBuffer-00049", - "text": " commandBuffer must not be in the recording or pending state" + "text": "commandBuffer must not be in the recording or pending state", + "page": "vkspec" }, { "vuid": "VUID-vkBeginCommandBuffer-commandBuffer-00050", - "text": " If commandBuffer was allocated from a VkCommandPool which did not have the VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT flag set, commandBuffer must be in the initial state" + "text": "If commandBuffer was allocated from a VkCommandPool which did not have the VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT flag set, commandBuffer must be in the initial state", + "page": "vkspec" }, { "vuid": "VUID-vkBeginCommandBuffer-commandBuffer-00051", - "text": " If commandBuffer is a secondary command buffer, the pInheritanceInfo member of pBeginInfo must be a valid VkCommandBufferInheritanceInfo structure" + "text": "If commandBuffer is a secondary command buffer, the pInheritanceInfo member of pBeginInfo must be a valid VkCommandBufferInheritanceInfo structure", + "page": "vkspec" }, { "vuid": "VUID-vkBeginCommandBuffer-commandBuffer-00052", - "text": " If commandBuffer is a secondary command buffer and either the occlusionQueryEnable member of the pInheritanceInfo member of pBeginInfo is VK_FALSE, or the occlusionQueryPrecise feature is not enabled, then pBeginInfo->pInheritanceInfo->queryFlags must not contain VK_QUERY_CONTROL_PRECISE_BIT" + "text": "If commandBuffer is a secondary command buffer and either the occlusionQueryEnable member of the pInheritanceInfo member of pBeginInfo is VK_FALSE, or the occlusionQueryPrecise feature is not enabled, then pBeginInfo->pInheritanceInfo->queryFlags must not contain VK_QUERY_CONTROL_PRECISE_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkBeginCommandBuffer-commandBuffer-02840", - "text": " If commandBuffer is a primary command buffer, then pBeginInfo->flags must not set both the VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT and the VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT flags" + "text": "If commandBuffer is a primary command buffer, then pBeginInfo->flags must not set both the VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT and the VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT flags", + "page": "vkspec" }, { "vuid": "VUID-vkBeginCommandBuffer-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkBeginCommandBuffer-pBeginInfo-parameter", - "text": " pBeginInfo must be a valid pointer to a valid VkCommandBufferBeginInfo structure" + "text": "pBeginInfo must be a valid pointer to a valid VkCommandBufferBeginInfo structure", + "page": "vkspec" } ] }, @@ -1198,43 +1451,58 @@ "core": [ { "vuid": "VUID-VkCommandBufferBeginInfo-flags-09123", - "text": " If flags contains VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT, the VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "If flags contains VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT, the VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-VkCommandBufferBeginInfo-flags-00055", - "text": " If flags contains VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT, the framebuffer member of pInheritanceInfo must be either VK_NULL_HANDLE, or a valid VkFramebuffer that is compatible with the renderPass member of pInheritanceInfo" + "text": "If flags contains VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT, the framebuffer member of pInheritanceInfo must be either VK_NULL_HANDLE, or a valid VkFramebuffer that is compatible with the renderPass member of pInheritanceInfo", + "page": "vkspec" }, { - "vuid": "VUID-VkCommandBufferBeginInfo-flags-06000", - "text": " If flags contains VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT and the renderPass member of pInheritanceInfo is not VK_NULL_HANDLE, renderPass must be a valid VkRenderPass" - }, - { - "vuid": "VUID-VkCommandBufferBeginInfo-flags-06001", - "text": " If flags contains VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT and the renderPass member of pInheritanceInfo is not VK_NULL_HANDLE, the subpass member of pInheritanceInfo must be a valid subpass index within the renderPass member of pInheritanceInfo" + "vuid": "VUID-VkCommandBufferBeginInfo-flags-09240", + "text": "If flags contains VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT and the dynamicRendering feature is not enabled, the renderPass member of pInheritanceInfo must not be VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-VkCommandBufferBeginInfo-flags-06002", - "text": " If flags contains VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT and the renderPass member of pInheritanceInfo is VK_NULL_HANDLE, the pNext chain of pInheritanceInfo must include a VkCommandBufferInheritanceRenderingInfo structure" + "text": "If flags contains VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT and the renderPass member of pInheritanceInfo is VK_NULL_HANDLE, the pNext chain of pInheritanceInfo must include a VkCommandBufferInheritanceRenderingInfo structure", + "page": "vkspec" }, { "vuid": "VUID-VkCommandBufferBeginInfo-flags-06003", - "text": " If flags contains VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT, the renderPass member of pInheritanceInfo is VK_NULL_HANDLE, and the pNext chain of pInheritanceInfo includes a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, the colorAttachmentCount member of that structure must be equal to the value of VkCommandBufferInheritanceRenderingInfo::colorAttachmentCount" + "text": "If flags contains VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT, the renderPass member of pInheritanceInfo is VK_NULL_HANDLE, and the pNext chain of pInheritanceInfo includes a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, the colorAttachmentCount member of that structure must be equal to the value of VkCommandBufferInheritanceRenderingInfo::colorAttachmentCount", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCommandBufferBeginInfo-flags-06000", + "text": "If flags contains VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT and the renderPass member of pInheritanceInfo is not VK_NULL_HANDLE, the renderPass member of pInheritanceInfo must be a valid VkRenderPass", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCommandBufferBeginInfo-flags-06001", + "text": "If flags contains VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT and the renderPass member of pInheritanceInfo is not VK_NULL_HANDLE, the subpass member of pInheritanceInfo must be a valid subpass index within the renderPass member of pInheritanceInfo", + "page": "vkspec" }, { "vuid": "VUID-VkCommandBufferBeginInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkCommandBufferBeginInfo-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkDeviceGroupCommandBufferBeginInfo" + "text": "pNext must be NULL or a pointer to a valid instance of VkDeviceGroupCommandBufferBeginInfo", + "page": "vkspec" }, { "vuid": "VUID-VkCommandBufferBeginInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" }, { "vuid": "VUID-VkCommandBufferBeginInfo-flags-parameter", - "text": " flags must be a valid combination of VkCommandBufferUsageFlagBits values" + "text": "flags must be a valid combination of VkCommandBufferUsageFlagBits values", + "page": "vkspec" } ] }, @@ -1242,39 +1510,48 @@ "core": [ { "vuid": "VUID-VkCommandBufferInheritanceInfo-occlusionQueryEnable-00056", - "text": " If the inheritedQueries feature is not enabled, occlusionQueryEnable must be VK_FALSE" + "text": "If the inheritedQueries feature is not enabled, occlusionQueryEnable must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-VkCommandBufferInheritanceInfo-queryFlags-00057", - "text": " If the inheritedQueries feature is enabled, queryFlags must be a valid combination of VkQueryControlFlagBits values" + "text": "If the inheritedQueries feature is enabled, queryFlags must be a valid combination of VkQueryControlFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkCommandBufferInheritanceInfo-queryFlags-02788", - "text": " If the inheritedQueries feature is not enabled, queryFlags must be 0" + "text": "If the inheritedQueries feature is not enabled, queryFlags must be 0", + "page": "vkspec" }, { "vuid": "VUID-VkCommandBufferInheritanceInfo-pipelineStatistics-02789", - "text": " If the pipelineStatisticsQuery feature is enabled, pipelineStatistics must be a valid combination of VkQueryPipelineStatisticFlagBits values" + "text": "If the pipelineStatisticsQuery feature is enabled, pipelineStatistics must be a valid combination of VkQueryPipelineStatisticFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkCommandBufferInheritanceInfo-pipelineStatistics-00058", - "text": " If the pipelineStatisticsQuery feature is not enabled, pipelineStatistics must be 0" + "text": "If the pipelineStatisticsQuery feature is not enabled, pipelineStatistics must be 0", + "page": "vkspec" }, { "vuid": "VUID-VkCommandBufferInheritanceInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkCommandBufferInheritanceInfo-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 VkAttachmentSampleCountInfoAMD, VkCommandBufferInheritanceConditionalRenderingInfoEXT, VkCommandBufferInheritanceRenderPassTransformInfoQCOM, VkCommandBufferInheritanceRenderingInfo, VkCommandBufferInheritanceViewportScissorInfoNV, or VkMultiviewPerViewAttributesInfoNVX" + "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 VkAttachmentSampleCountInfoAMD, VkCommandBufferInheritanceConditionalRenderingInfoEXT, VkCommandBufferInheritanceRenderPassTransformInfoQCOM, VkCommandBufferInheritanceRenderingInfo, VkCommandBufferInheritanceViewportScissorInfoNV, VkExternalFormatANDROID, or VkMultiviewPerViewAttributesInfoNVX", + "page": "vkspec" }, { "vuid": "VUID-VkCommandBufferInheritanceInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" }, { "vuid": "VUID-VkCommandBufferInheritanceInfo-commonparent", - "text": " Both of framebuffer, and renderPass that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of framebuffer, and renderPass that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -1282,11 +1559,13 @@ "core": [ { "vuid": "VUID-VkCommandBufferInheritanceConditionalRenderingInfoEXT-conditionalRenderingEnable-01977", - "text": " If the inheritedConditionalRendering feature is not enabled, conditionalRenderingEnable must be VK_FALSE" + "text": "If the inheritedConditionalRendering feature is not enabled, conditionalRenderingEnable must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-VkCommandBufferInheritanceConditionalRenderingInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT", + "page": "vkspec" } ] }, @@ -1294,11 +1573,13 @@ "core": [ { "vuid": "VUID-VkCommandBufferInheritanceRenderPassTransformInfoQCOM-transform-02864", - "text": " transform must be VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR, VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR, VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR, or VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR" + "text": "transform must be VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR, VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR, VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR, or VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkCommandBufferInheritanceRenderPassTransformInfoQCOM-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM" + "text": "sType must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM", + "page": "vkspec" } ] }, @@ -1306,27 +1587,33 @@ "core": [ { "vuid": "VUID-VkCommandBufferInheritanceViewportScissorInfoNV-viewportScissor2D-04782", - "text": " If the inheritedViewportScissor2D feature is not enabled, viewportScissor2D must be VK_FALSE" + "text": "If the inheritedViewportScissor2D feature is not enabled, viewportScissor2D must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-VkCommandBufferInheritanceViewportScissorInfoNV-viewportScissor2D-04783", - "text": " If the multiViewport feature is not enabled and viewportScissor2D is VK_TRUE, then viewportDepthCount must be 1" + "text": "If the multiViewport feature is not enabled and viewportScissor2D is VK_TRUE, then viewportDepthCount must be 1", + "page": "vkspec" }, { "vuid": "VUID-VkCommandBufferInheritanceViewportScissorInfoNV-viewportScissor2D-04784", - "text": " If viewportScissor2D is VK_TRUE, then viewportDepthCount must be greater than 0" + "text": "If viewportScissor2D is VK_TRUE, then viewportDepthCount must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-VkCommandBufferInheritanceViewportScissorInfoNV-viewportScissor2D-04785", - "text": " If viewportScissor2D is VK_TRUE, then pViewportDepths must be a valid pointer to an array of viewportDepthCount valid VkViewport structures, except any requirements on x, y, width, and height do not apply" + "text": "If viewportScissor2D is VK_TRUE, then pViewportDepths must be a valid pointer to an array of viewportDepthCount valid VkViewport structures, except any requirements on x, y, width, and height do not apply", + "page": "vkspec" }, { "vuid": "VUID-VkCommandBufferInheritanceViewportScissorInfoNV-viewportScissor2D-04786", - "text": " If viewportScissor2D is VK_TRUE, then the command buffer must be recorded with the VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT" + "text": "If viewportScissor2D is VK_TRUE, then the command buffer must be recorded with the VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkCommandBufferInheritanceViewportScissorInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV" + "text": "sType must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV", + "page": "vkspec" } ] }, @@ -1334,67 +1621,83 @@ "core": [ { "vuid": "VUID-VkCommandBufferInheritanceRenderingInfo-colorAttachmentCount-06004", - "text": " If colorAttachmentCount is not 0, rasterizationSamples must be a valid VkSampleCountFlagBits value" + "text": "If colorAttachmentCount is not 0, rasterizationSamples must be a valid VkSampleCountFlagBits value", + "page": "vkspec" }, { "vuid": "VUID-VkCommandBufferInheritanceRenderingInfo-variableMultisampleRate-06005", - "text": " If the variableMultisampleRate feature is not enabled, rasterizationSamples must be a valid VkSampleCountFlagBits value" + "text": "If the variableMultisampleRate feature is not enabled, rasterizationSamples must be a valid VkSampleCountFlagBits value", + "page": "vkspec" }, { "vuid": "VUID-VkCommandBufferInheritanceRenderingInfo-depthAttachmentFormat-06540", - "text": " If depthAttachmentFormat is not VK_FORMAT_UNDEFINED, it must be a format that includes a depth component" + "text": "If depthAttachmentFormat is not VK_FORMAT_UNDEFINED, it must be a format that includes a depth component", + "page": "vkspec" }, { "vuid": "VUID-VkCommandBufferInheritanceRenderingInfo-depthAttachmentFormat-06007", - "text": " If depthAttachmentFormat is not VK_FORMAT_UNDEFINED, it must be a format with potential format features that include VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT" + "text": "If depthAttachmentFormat is not VK_FORMAT_UNDEFINED, it must be a format with potential format features that include VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkCommandBufferInheritanceRenderingInfo-pColorAttachmentFormats-06492", - "text": " If any element of pColorAttachmentFormats is not VK_FORMAT_UNDEFINED, it must be a format with potential format features that include VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT, or VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV if the linearColorAttachment feature is enabled" + "text": "If any element of pColorAttachmentFormats is not VK_FORMAT_UNDEFINED, it must be a format with potential format features that include VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT , or VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV if the linearColorAttachment feature is enabled", + "page": "vkspec" }, { "vuid": "VUID-VkCommandBufferInheritanceRenderingInfo-stencilAttachmentFormat-06541", - "text": " If stencilAttachmentFormat is not VK_FORMAT_UNDEFINED, it must be a format that includes a stencil aspect" + "text": "If stencilAttachmentFormat is not VK_FORMAT_UNDEFINED, it must be a format that includes a stencil aspect", + "page": "vkspec" }, { "vuid": "VUID-VkCommandBufferInheritanceRenderingInfo-stencilAttachmentFormat-06199", - "text": " If stencilAttachmentFormat is not VK_FORMAT_UNDEFINED, it must be a format with potential format features that include VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT" + "text": "If stencilAttachmentFormat is not VK_FORMAT_UNDEFINED, it must be a format with potential format features that include VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkCommandBufferInheritanceRenderingInfo-depthAttachmentFormat-06200", - "text": " If depthAttachmentFormat is not VK_FORMAT_UNDEFINED and stencilAttachmentFormat is not VK_FORMAT_UNDEFINED, depthAttachmentFormat must equal stencilAttachmentFormat" + "text": "If depthAttachmentFormat is not VK_FORMAT_UNDEFINED and stencilAttachmentFormat is not VK_FORMAT_UNDEFINED, depthAttachmentFormat must equal stencilAttachmentFormat", + "page": "vkspec" }, { "vuid": "VUID-VkCommandBufferInheritanceRenderingInfo-multiview-06008", - "text": " If the multiview feature is not enabled, viewMask must be 0" + "text": "If the multiview feature is not enabled, viewMask must be 0", + "page": "vkspec" }, { "vuid": "VUID-VkCommandBufferInheritanceRenderingInfo-viewMask-06009", - "text": " The index of the most significant bit in viewMask must be less than maxMultiviewViewCount" + "text": "The index of the most significant bit in viewMask must be less than maxMultiviewViewCount", + "page": "vkspec" }, { "vuid": "VUID-VkCommandBufferInheritanceRenderingInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkCommandBufferInheritanceRenderingInfo-flags-parameter", - "text": " flags must be a valid combination of VkRenderingFlagBits values" + "text": "flags must be a valid combination of VkRenderingFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkCommandBufferInheritanceRenderingInfo-pColorAttachmentFormats-parameter", - "text": " If colorAttachmentCount is not 0, pColorAttachmentFormats must be a valid pointer to an array of colorAttachmentCount valid VkFormat values" + "text": "If colorAttachmentCount is not 0, pColorAttachmentFormats must be a valid pointer to an array of colorAttachmentCount valid VkFormat values", + "page": "vkspec" }, { "vuid": "VUID-VkCommandBufferInheritanceRenderingInfo-depthAttachmentFormat-parameter", - "text": " depthAttachmentFormat must be a valid VkFormat value" + "text": "depthAttachmentFormat must be a valid VkFormat value", + "page": "vkspec" }, { "vuid": "VUID-VkCommandBufferInheritanceRenderingInfo-stencilAttachmentFormat-parameter", - "text": " stencilAttachmentFormat must be a valid VkFormat value" + "text": "stencilAttachmentFormat must be a valid VkFormat value", + "page": "vkspec" }, { "vuid": "VUID-VkCommandBufferInheritanceRenderingInfo-rasterizationSamples-parameter", - "text": " If rasterizationSamples is not 0, rasterizationSamples must be a valid VkSampleCountFlagBits value" + "text": "If rasterizationSamples is not 0, rasterizationSamples must be a valid VkSampleCountFlagBits value", + "page": "vkspec" } ] }, @@ -1402,7 +1705,8 @@ "core": [ { "vuid": "VUID-VkAttachmentSampleCountInfoAMD-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD" + "text": "sType must be VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD", + "page": "vkspec" } ] }, @@ -1410,35 +1714,43 @@ "core": [ { "vuid": "VUID-vkEndCommandBuffer-commandBuffer-00059", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkEndCommandBuffer-commandBuffer-00060", - "text": " If commandBuffer is a primary command buffer, there must not be an active render pass instance" + "text": "If commandBuffer is a primary command buffer, there must not be an active render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkEndCommandBuffer-commandBuffer-00061", - "text": " All queries made active during the recording of commandBuffer must have been made inactive" + "text": "All queries made active during the recording of commandBuffer must have been made inactive", + "page": "vkspec" }, { "vuid": "VUID-vkEndCommandBuffer-None-01978", - "text": " Conditional rendering must not be active" + "text": "Conditional rendering must not be active", + "page": "vkspec" }, { "vuid": "VUID-vkEndCommandBuffer-None-06991", - "text": " There must be no video session object bound" + "text": "There must be no video session object bound", + "page": "vkspec" }, { "vuid": "VUID-vkEndCommandBuffer-commandBuffer-01815", - "text": " If commandBuffer is a secondary command buffer, there must not be an outstanding vkCmdBeginDebugUtilsLabelEXT command recorded to commandBuffer that has not previously been ended by a call to vkCmdEndDebugUtilsLabelEXT" + "text": "If commandBuffer is a secondary command buffer, there must not be an outstanding vkCmdBeginDebugUtilsLabelEXT command recorded to commandBuffer that has not previously been ended by a call to vkCmdEndDebugUtilsLabelEXT", + "page": "vkspec" }, { "vuid": "VUID-vkEndCommandBuffer-commandBuffer-00062", - "text": " If commandBuffer is a secondary command buffer, there must not be an outstanding vkCmdDebugMarkerBeginEXT command recorded to commandBuffer that has not previously been ended by a call to vkCmdDebugMarkerEndEXT" + "text": "If commandBuffer is a secondary command buffer, there must not be an outstanding vkCmdDebugMarkerBeginEXT command recorded to commandBuffer that has not previously been ended by a call to vkCmdDebugMarkerEndEXT", + "page": "vkspec" }, { "vuid": "VUID-vkEndCommandBuffer-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" } ] }, @@ -1446,87 +1758,108 @@ "core": [ { "vuid": "VUID-vkQueueSubmit2-fence-04894", - "text": " If fence is not VK_NULL_HANDLE, fence must be unsignaled" + "text": "If fence is not VK_NULL_HANDLE, fence must be unsignaled", + "page": "vkspec" }, { "vuid": "VUID-vkQueueSubmit2-fence-04895", - "text": " If fence is not VK_NULL_HANDLE, fence must not be associated with any other queue command that has not yet completed execution on that queue" + "text": "If fence is not VK_NULL_HANDLE, fence must not be associated with any other queue command that has not yet completed execution on that queue", + "page": "vkspec" }, { "vuid": "VUID-vkQueueSubmit2-synchronization2-03866", - "text": " The synchronization2 feature must be enabled" + "text": "The synchronization2 feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkQueueSubmit2-commandBuffer-03867", - "text": " If a command recorded into the commandBuffer member of any element of the pCommandBufferInfos member of any element of pSubmits referenced an VkEvent, that event must not be referenced by a command that has been submitted to another queue and is still in the pending state" + "text": "If a command recorded into the commandBuffer member of any element of the pCommandBufferInfos member of any element of pSubmits referenced an VkEvent, that event must not be referenced by a command that has been submitted to another queue and is still in the pending state", + "page": "vkspec" }, { "vuid": "VUID-vkQueueSubmit2-semaphore-03868", - "text": " The semaphore member of any binary semaphore element of the pSignalSemaphoreInfos member of any element of pSubmits must be unsignaled when the semaphore signal operation it defines is executed on the device" + "text": "The semaphore member of any binary semaphore element of the pSignalSemaphoreInfos member of any element of pSubmits must be unsignaled when the semaphore signal operation it defines is executed on the device", + "page": "vkspec" }, { "vuid": "VUID-vkQueueSubmit2-stageMask-03869", - "text": " The stageMask member of any element of the pSignalSemaphoreInfos member of any element of pSubmits must only include pipeline stages that are supported by the queue family which queue belongs to" + "text": "The stageMask member of any element of the pSignalSemaphoreInfos member of any element of pSubmits must only include pipeline stages that are supported by the queue family which queue belongs to", + "page": "vkspec" }, { "vuid": "VUID-vkQueueSubmit2-stageMask-03870", - "text": " The stageMask member of any element of the pWaitSemaphoreInfos member of any element of pSubmits must only include pipeline stages that are supported by the queue family which queue belongs to" + "text": "The stageMask member of any element of the pWaitSemaphoreInfos member of any element of pSubmits must only include pipeline stages that are supported by the queue family which queue belongs to", + "page": "vkspec" }, { "vuid": "VUID-vkQueueSubmit2-semaphore-03871", - "text": " When a semaphore wait operation for a binary semaphore is executed, as defined by the semaphore member of any element of the pWaitSemaphoreInfos member of any element of pSubmits, there must be no other queues waiting on the same semaphore" + "text": "When a semaphore wait operation for a binary semaphore is executed, as defined by the semaphore member of any element of the pWaitSemaphoreInfos member of any element of pSubmits, there must be no other queues waiting on the same semaphore", + "page": "vkspec" }, { "vuid": "VUID-vkQueueSubmit2-semaphore-03873", - "text": " Any semaphore member of any element of the pWaitSemaphoreInfos member of any element of pSubmits that was created with a VkSemaphoreTypeKHR of VK_SEMAPHORE_TYPE_BINARY_KHR must reference a semaphore signal operation that has been submitted for execution and any semaphore signal operations on which it depends (if any) must have also been submitted for execution" + "text": "The semaphore member of any element of the pWaitSemaphoreInfos member of any element of pSubmits that was created with a VkSemaphoreTypeKHR of VK_SEMAPHORE_TYPE_BINARY_KHR must reference a semaphore signal operation that has been submitted for execution and any semaphore signal operations on which it depends must have also been submitted for execution", + "page": "vkspec" }, { "vuid": "VUID-vkQueueSubmit2-commandBuffer-03874", - "text": " The commandBuffer member of any element of the pCommandBufferInfos member of any element of pSubmits must be in the pending or executable state" + "text": "The commandBuffer member of any element of the pCommandBufferInfos member of any element of pSubmits must be in the pending or executable state", + "page": "vkspec" }, { "vuid": "VUID-vkQueueSubmit2-commandBuffer-03875", - "text": " If a command recorded into the commandBuffer member of any element of the pCommandBufferInfos member of any element of pSubmits was not recorded with the VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT, it must not be in the pending state" + "text": "If a command recorded into the commandBuffer member of any element of the pCommandBufferInfos member of any element of pSubmits was not recorded with the VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT, it must not be in the pending state", + "page": "vkspec" }, { "vuid": "VUID-vkQueueSubmit2-commandBuffer-03876", - "text": " Any secondary command buffers recorded into the commandBuffer member of any element of the pCommandBufferInfos member of any element of pSubmits must be in the pending or executable state" + "text": "Any secondary command buffers recorded into the commandBuffer member of any element of the pCommandBufferInfos member of any element of pSubmits must be in the pending or executable state", + "page": "vkspec" }, { "vuid": "VUID-vkQueueSubmit2-commandBuffer-03877", - "text": " If any secondary command buffers recorded into the commandBuffer member of any element of the pCommandBufferInfos member of any element of pSubmits was not recorded with the VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT, it must not be in the pending state" + "text": "If any secondary command buffers recorded into the commandBuffer member of any element of the pCommandBufferInfos member of any element of pSubmits was not recorded with the VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT, it must not be in the pending state", + "page": "vkspec" }, { "vuid": "VUID-vkQueueSubmit2-commandBuffer-03878", - "text": " The commandBuffer member of any element of the pCommandBufferInfos member of any element of pSubmits must have been allocated from a VkCommandPool that was created for the same queue family queue belongs to" + "text": "The commandBuffer member of any element of the pCommandBufferInfos member of any element of pSubmits must have been allocated from a VkCommandPool that was created for the same queue family queue belongs to", + "page": "vkspec" }, { "vuid": "VUID-vkQueueSubmit2-commandBuffer-03879", - "text": " If a command recorded into the commandBuffer member of any element of the pCommandBufferInfos member of any element of pSubmits includes a Queue Family Transfer Acquire Operation, there must exist a previously submitted Queue Family Transfer Release Operation on a queue in the queue family identified by the acquire operation, with parameters matching the acquire operation as defined in the definition of such acquire operations, and which happens before the acquire operation" + "text": "If a command recorded into the commandBuffer member of any element of the pCommandBufferInfos member of any element of pSubmits includes a Queue Family Transfer Acquire Operation, there must exist a previously submitted Queue Family Transfer Release Operation on a queue in the queue family identified by the acquire operation, with parameters matching the acquire operation as defined in the definition of such acquire operations, and which happens before the acquire operation", + "page": "vkspec" }, { "vuid": "VUID-vkQueueSubmit2-commandBuffer-03880", - "text": " If a command recorded into the commandBuffer member of any element of the pCommandBufferInfos member of any element of pSubmits was a vkCmdBeginQuery whose queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, the profiling lock must have been held continuously on the VkDevice that queue was retrieved from, throughout recording of those command buffers" + "text": "If a command recorded into the commandBuffer member of any element of the pCommandBufferInfos member of any element of pSubmits was a vkCmdBeginQuery whose queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, the profiling lock must have been held continuously on the VkDevice that queue was retrieved from, throughout recording of those command buffers", + "page": "vkspec" }, { "vuid": "VUID-vkQueueSubmit2-queue-06447", - "text": " If queue was not created with VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT, the flags member of any element of pSubmits must not include VK_SUBMIT_PROTECTED_BIT_KHR" + "text": "If queue was not created with VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT, the flags member of any element of pSubmits must not include VK_SUBMIT_PROTECTED_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkQueueSubmit2-queue-parameter", - "text": " queue must be a valid VkQueue handle" + "text": "queue must be a valid VkQueue handle", + "page": "vkspec" }, { "vuid": "VUID-vkQueueSubmit2-pSubmits-parameter", - "text": " If submitCount is not 0, pSubmits must be a valid pointer to an array of submitCount valid VkSubmitInfo2 structures" + "text": "If submitCount is not 0, pSubmits must be a valid pointer to an array of submitCount valid VkSubmitInfo2 structures", + "page": "vkspec" }, { "vuid": "VUID-vkQueueSubmit2-fence-parameter", - "text": " If fence is not VK_NULL_HANDLE, fence must be a valid VkFence handle" + "text": "If fence is not VK_NULL_HANDLE, fence must be a valid VkFence handle", + "page": "vkspec" }, { "vuid": "VUID-vkQueueSubmit2-commonparent", - "text": " Both of fence, and queue that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of fence, and queue that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -1534,75 +1867,93 @@ "core": [ { "vuid": "VUID-VkSubmitInfo2-semaphore-03881", - "text": " If the same semaphore is used as the semaphore member of both an element of pSignalSemaphoreInfos and pWaitSemaphoreInfos, and that semaphore is a timeline semaphore, the value member of the pSignalSemaphoreInfos element must be greater than the value member of the pWaitSemaphoreInfos element" + "text": "If the same semaphore is used as the semaphore member of both an element of pSignalSemaphoreInfos and pWaitSemaphoreInfos, and that semaphore is a timeline semaphore, the value member of the pSignalSemaphoreInfos element must be greater than the value member of the pWaitSemaphoreInfos element", + "page": "vkspec" }, { "vuid": "VUID-VkSubmitInfo2-semaphore-03882", - "text": " If the semaphore member of any element of pSignalSemaphoreInfos is a timeline semaphore, the value member of that element must have a value greater than the current value of the semaphore when the semaphore signal operation is executed" + "text": "If the semaphore member of any element of pSignalSemaphoreInfos is a timeline semaphore, the value member of that element must have a value greater than the current value of the semaphore when the semaphore signal operation is executed", + "page": "vkspec" }, { "vuid": "VUID-VkSubmitInfo2-semaphore-03883", - "text": " If the semaphore member of any element of pSignalSemaphoreInfos is a timeline semaphore, the value member of that element must have a value which does not differ from the current value of the semaphore or the value of any outstanding semaphore wait or signal operation on that semaphore by more than maxTimelineSemaphoreValueDifference" + "text": "If the semaphore member of any element of pSignalSemaphoreInfos is a timeline semaphore, the value member of that element must have a value which does not differ from the current value of the semaphore or the value of any outstanding semaphore wait or signal operation on that semaphore by more than maxTimelineSemaphoreValueDifference", + "page": "vkspec" }, { "vuid": "VUID-VkSubmitInfo2-semaphore-03884", - "text": " If the semaphore member of any element of pWaitSemaphoreInfos is a timeline semaphore, the value member of that element must have a value which does not differ from the current value of the semaphore or the value of any outstanding semaphore wait or signal operation on that semaphore by more than maxTimelineSemaphoreValueDifference" + "text": "If the semaphore member of any element of pWaitSemaphoreInfos is a timeline semaphore, the value member of that element must have a value which does not differ from the current value of the semaphore or the value of any outstanding semaphore wait or signal operation on that semaphore by more than maxTimelineSemaphoreValueDifference", + "page": "vkspec" }, { "vuid": "VUID-VkSubmitInfo2-flags-03886", - "text": " If flags includes VK_SUBMIT_PROTECTED_BIT, all elements of pCommandBuffers must be protected command buffers" + "text": "If flags includes VK_SUBMIT_PROTECTED_BIT, all elements of pCommandBuffers must be protected command buffers", + "page": "vkspec" }, { "vuid": "VUID-VkSubmitInfo2-flags-03887", - "text": " If flags does not include VK_SUBMIT_PROTECTED_BIT, each element of pCommandBuffers must not be a protected command buffer" + "text": "If flags does not include VK_SUBMIT_PROTECTED_BIT, each element of pCommandBuffers must not be a protected command buffer", + "page": "vkspec" }, { "vuid": "VUID-VkSubmitInfo2KHR-commandBuffer-06192", - "text": " If any commandBuffer member of an element of pCommandBufferInfos contains any resumed render pass instances, they must be suspended by a render pass instance earlier in submission order within pCommandBufferInfos" + "text": "If any commandBuffer member of an element of pCommandBufferInfos contains any resumed render pass instances, they must be suspended by a render pass instance earlier in submission order within pCommandBufferInfos", + "page": "vkspec" }, { "vuid": "VUID-VkSubmitInfo2KHR-commandBuffer-06010", - "text": " If any commandBuffer member of an element of pCommandBufferInfos contains any suspended render pass instances, they must be resumed by a render pass instance later in submission order within pCommandBufferInfos" + "text": "If any commandBuffer member of an element of pCommandBufferInfos contains any suspended render pass instances, they must be resumed by a render pass instance later in submission order within pCommandBufferInfos", + "page": "vkspec" }, { "vuid": "VUID-VkSubmitInfo2KHR-commandBuffer-06011", - "text": " If any commandBuffer member of an element of pCommandBufferInfos contains any suspended render pass instances, there must be no action or synchronization commands between that render pass instance and the render pass instance that resumes it" + "text": "If any commandBuffer member of an element of pCommandBufferInfos contains any suspended render pass instances, there must be no action or synchronization commands between that render pass instance and the render pass instance that resumes it", + "page": "vkspec" }, { "vuid": "VUID-VkSubmitInfo2KHR-commandBuffer-06012", - "text": " If any commandBuffer member of an element of pCommandBufferInfos contains any suspended render pass instances, there must be no render pass instances between that render pass instance and the render pass instance that resumes it" + "text": "If any commandBuffer member of an element of pCommandBufferInfos contains any suspended render pass instances, there must be no render pass instances between that render pass instance and the render pass instance that resumes it", + "page": "vkspec" }, { "vuid": "VUID-VkSubmitInfo2KHR-variableSampleLocations-06013", - "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" + "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": "vkspec" }, { "vuid": "VUID-VkSubmitInfo2-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SUBMIT_INFO_2" + "text": "sType must be VK_STRUCTURE_TYPE_SUBMIT_INFO_2", + "page": "vkspec" }, { "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 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, VkLatencySubmissionPresentIdNV, VkPerformanceQuerySubmitInfoKHR, VkWin32KeyedMutexAcquireReleaseInfoKHR, or VkWin32KeyedMutexAcquireReleaseInfoNV", + "page": "vkspec" }, { "vuid": "VUID-VkSubmitInfo2-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" }, { "vuid": "VUID-VkSubmitInfo2-flags-parameter", - "text": " flags must be a valid combination of VkSubmitFlagBits values" + "text": "flags must be a valid combination of VkSubmitFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkSubmitInfo2-pWaitSemaphoreInfos-parameter", - "text": " If waitSemaphoreInfoCount is not 0, pWaitSemaphoreInfos must be a valid pointer to an array of waitSemaphoreInfoCount valid VkSemaphoreSubmitInfo structures" + "text": "If waitSemaphoreInfoCount is not 0, pWaitSemaphoreInfos must be a valid pointer to an array of waitSemaphoreInfoCount valid VkSemaphoreSubmitInfo structures", + "page": "vkspec" }, { "vuid": "VUID-VkSubmitInfo2-pCommandBufferInfos-parameter", - "text": " If commandBufferInfoCount is not 0, pCommandBufferInfos must be a valid pointer to an array of commandBufferInfoCount valid VkCommandBufferSubmitInfo structures" + "text": "If commandBufferInfoCount is not 0, pCommandBufferInfos must be a valid pointer to an array of commandBufferInfoCount valid VkCommandBufferSubmitInfo structures", + "page": "vkspec" }, { "vuid": "VUID-VkSubmitInfo2-pSignalSemaphoreInfos-parameter", - "text": " If signalSemaphoreInfoCount is not 0, pSignalSemaphoreInfos must be a valid pointer to an array of signalSemaphoreInfoCount valid VkSemaphoreSubmitInfo structures" + "text": "If signalSemaphoreInfoCount is not 0, pSignalSemaphoreInfos must be a valid pointer to an array of signalSemaphoreInfoCount valid VkSemaphoreSubmitInfo structures", + "page": "vkspec" } ] }, @@ -1610,71 +1961,88 @@ "core": [ { "vuid": "VUID-VkSemaphoreSubmitInfo-stageMask-03929", - "text": " If the geometryShader feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT" + "text": "If the geometryShader feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkSemaphoreSubmitInfo-stageMask-03930", - "text": " If the tessellationShader feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT" + "text": "If the tessellationShader feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkSemaphoreSubmitInfo-stageMask-03931", - "text": " If the conditionalRendering feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT" + "text": "If the conditionalRendering feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkSemaphoreSubmitInfo-stageMask-03932", - "text": " If the fragmentDensityMap feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT" + "text": "If the fragmentDensityMap feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkSemaphoreSubmitInfo-stageMask-03933", - "text": " If the transformFeedback feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT" + "text": "If the transformFeedback feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkSemaphoreSubmitInfo-stageMask-03934", - "text": " If the meshShader feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT" + "text": "If the meshShader feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkSemaphoreSubmitInfo-stageMask-03935", - "text": " If the taskShader feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT" + "text": "If the taskShader feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkSemaphoreSubmitInfo-stageMask-07316", - "text": " If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR" + "text": "If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, stageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkSemaphoreSubmitInfo-stageMask-04957", - "text": " If the subpassShading feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI" + "text": "If the subpassShading feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI", + "page": "vkspec" }, { "vuid": "VUID-VkSemaphoreSubmitInfo-stageMask-04995", - "text": " If the invocationMask feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI" + "text": "If the invocationMask feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI", + "page": "vkspec" }, { "vuid": "VUID-VkSemaphoreSubmitInfo-stageMask-07946", - "text": " If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR" + "text": "If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, stageMask must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkSemaphoreSubmitInfo-device-03888", - "text": " If the device that semaphore was created on is not a device group, deviceIndex must be 0" + "text": "If the device that semaphore was created on is not a device group, deviceIndex must be 0", + "page": "vkspec" }, { "vuid": "VUID-VkSemaphoreSubmitInfo-device-03889", - "text": " If the device that semaphore was created on is a device group, deviceIndex must be a valid device index" + "text": "If the device that semaphore was created on is a device group, deviceIndex must be a valid device index", + "page": "vkspec" }, { "vuid": "VUID-VkSemaphoreSubmitInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkSemaphoreSubmitInfo-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkSemaphoreSubmitInfo-semaphore-parameter", - "text": " semaphore must be a valid VkSemaphore handle" + "text": "semaphore must be a valid VkSemaphore handle", + "page": "vkspec" }, { "vuid": "VUID-VkSemaphoreSubmitInfo-stageMask-parameter", - "text": " stageMask must be a valid combination of VkPipelineStageFlagBits2 values" + "text": "stageMask must be a valid combination of VkPipelineStageFlagBits2 values", + "page": "vkspec" } ] }, @@ -1682,23 +2050,28 @@ "core": [ { "vuid": "VUID-VkCommandBufferSubmitInfo-commandBuffer-03890", - "text": " commandBuffer must not have been allocated with VK_COMMAND_BUFFER_LEVEL_SECONDARY" + "text": "commandBuffer must not have been allocated with VK_COMMAND_BUFFER_LEVEL_SECONDARY", + "page": "vkspec" }, { "vuid": "VUID-VkCommandBufferSubmitInfo-deviceMask-03891", - "text": " If deviceMask is not 0, it must be a valid device mask" + "text": "If deviceMask is not 0, it must be a valid device mask", + "page": "vkspec" }, { "vuid": "VUID-VkCommandBufferSubmitInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkCommandBufferSubmitInfo-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkCommandBufferSubmitInfo-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" } ] }, @@ -1706,87 +2079,108 @@ "core": [ { "vuid": "VUID-vkQueueSubmit-fence-00063", - "text": " If fence is not VK_NULL_HANDLE, fence must be unsignaled" + "text": "If fence is not VK_NULL_HANDLE, fence must be unsignaled", + "page": "vkspec" }, { "vuid": "VUID-vkQueueSubmit-fence-00064", - "text": " If fence is not VK_NULL_HANDLE, fence must not be associated with any other queue command that has not yet completed execution on that queue" + "text": "If fence is not VK_NULL_HANDLE, fence must not be associated with any other queue command that has not yet completed execution on that queue", + "page": "vkspec" }, { "vuid": "VUID-vkQueueSubmit-pCommandBuffers-00065", - "text": " Any calls to vkCmdSetEvent, vkCmdResetEvent or vkCmdWaitEvents that have been recorded into any of the command buffer elements of the pCommandBuffers member of any element of pSubmits, must not reference any VkEvent that is referenced by any of those commands in a command buffer that has been submitted to another queue and is still in the pending state" + "text": "Any calls to vkCmdSetEvent, vkCmdResetEvent or vkCmdWaitEvents that have been recorded into any of the command buffer elements of the pCommandBuffers member of any element of pSubmits, must not reference any VkEvent that is referenced by any of those commands in a command buffer that has been submitted to another queue and is still in the pending state", + "page": "vkspec" }, { "vuid": "VUID-vkQueueSubmit-pWaitDstStageMask-00066", - "text": " Any stage flag included in any element of the pWaitDstStageMask member of any element of pSubmits must be a pipeline stage supported by one of the capabilities of queue, as specified in the table of supported pipeline stages" + "text": "Any stage flag included in any element of the pWaitDstStageMask member of any element of pSubmits must be a pipeline stage supported by one of the capabilities of queue, as specified in the table of supported pipeline stages", + "page": "vkspec" }, { "vuid": "VUID-vkQueueSubmit-pSignalSemaphores-00067", - "text": " Each binary semaphore element of the pSignalSemaphores member of any element of pSubmits must be unsignaled when the semaphore signal operation it defines is executed on the device" + "text": "Each binary semaphore element of the pSignalSemaphores member of any element of pSubmits must be unsignaled when the semaphore signal operation it defines is executed on the device", + "page": "vkspec" }, { "vuid": "VUID-vkQueueSubmit-pWaitSemaphores-00068", - "text": " When a semaphore wait operation referring to a binary semaphore defined by any element of the pWaitSemaphores member of any element of pSubmits executes on queue, there must be no other queues waiting on the same semaphore" + "text": "When a semaphore wait operation referring to a binary semaphore defined by any element of the pWaitSemaphores member of any element of pSubmits executes on queue, there must be no other queues waiting on the same semaphore", + "page": "vkspec" }, { "vuid": "VUID-vkQueueSubmit-pWaitSemaphores-03238", - "text": " All elements of the pWaitSemaphores member of all elements of pSubmits created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_BINARY must reference a semaphore signal operation that has been submitted for execution and any semaphore signal operations on which it depends (if any) must have also been submitted for execution" + "text": "All elements of the pWaitSemaphores member of all elements of pSubmits created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_BINARY must reference a semaphore signal operation that has been submitted for execution and any semaphore signal operations on which it depends must have also been submitted for execution", + "page": "vkspec" }, { "vuid": "VUID-vkQueueSubmit-pCommandBuffers-00070", - "text": " Each element of the pCommandBuffers member of each element of pSubmits must be in the pending or executable state" + "text": "Each element of the pCommandBuffers member of each element of pSubmits must be in the pending or executable state", + "page": "vkspec" }, { "vuid": "VUID-vkQueueSubmit-pCommandBuffers-00071", - "text": " If any element of the pCommandBuffers member of any element of pSubmits was not recorded with the VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT, it must not be in the pending state" + "text": "If any element of the pCommandBuffers member of any element of pSubmits was not recorded with the VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT, it must not be in the pending state", + "page": "vkspec" }, { "vuid": "VUID-vkQueueSubmit-pCommandBuffers-00072", - "text": " Any secondary command buffers recorded into any element of the pCommandBuffers member of any element of pSubmits must be in the pending or executable state" + "text": "Any secondary command buffers recorded into any element of the pCommandBuffers member of any element of pSubmits must be in the pending or executable state", + "page": "vkspec" }, { "vuid": "VUID-vkQueueSubmit-pCommandBuffers-00073", - "text": " If any secondary command buffers recorded into any element of the pCommandBuffers member of any element of pSubmits was not recorded with the VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT, it must not be in the pending state" + "text": "If any secondary command buffers recorded into any element of the pCommandBuffers member of any element of pSubmits was not recorded with the VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT, it must not be in the pending state", + "page": "vkspec" }, { "vuid": "VUID-vkQueueSubmit-pCommandBuffers-00074", - "text": " Each element of the pCommandBuffers member of each element of pSubmits must have been allocated from a VkCommandPool that was created for the same queue family queue belongs to" + "text": "Each element of the pCommandBuffers member of each element of pSubmits must have been allocated from a VkCommandPool that was created for the same queue family queue belongs to", + "page": "vkspec" }, { "vuid": "VUID-vkQueueSubmit-pSubmits-02207", - "text": " If any element of pSubmits->pCommandBuffers includes a Queue Family Transfer Acquire Operation, there must exist a previously submitted Queue Family Transfer Release Operation on a queue in the queue family identified by the acquire operation, with parameters matching the acquire operation as defined in the definition of such acquire operations, and which happens-before the acquire operation" + "text": "If any element of pSubmits->pCommandBuffers includes a Queue Family Transfer Acquire Operation, there must exist a previously submitted Queue Family Transfer Release Operation on a queue in the queue family identified by the acquire operation, with parameters matching the acquire operation as defined in the definition of such acquire operations, and which happens-before the acquire operation", + "page": "vkspec" }, { "vuid": "VUID-vkQueueSubmit-pCommandBuffers-03220", - "text": " If a command recorded into any element of pCommandBuffers was a vkCmdBeginQuery whose queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, the profiling lock must have been held continuously on the VkDevice that queue was retrieved from, throughout recording of those command buffers" + "text": "If a command recorded into any element of pCommandBuffers was a vkCmdBeginQuery whose queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, the profiling lock must have been held continuously on the VkDevice that queue was retrieved from, throughout recording of those command buffers", + "page": "vkspec" }, { "vuid": "VUID-vkQueueSubmit-pSubmits-02808", - "text": " Any resource created with VK_SHARING_MODE_EXCLUSIVE that is read by an operation specified by pSubmits must not be owned by any queue family other than the one which queue belongs to, at the time it is executed" + "text": "Any resource created with VK_SHARING_MODE_EXCLUSIVE that is read by an operation specified by pSubmits must not be owned by any queue family other than the one which queue belongs to, at the time it is executed", + "page": "vkspec" }, { "vuid": "VUID-vkQueueSubmit-pSubmits-04626", - "text": " Any resource created with VK_SHARING_MODE_CONCURRENT that is accessed by an operation specified by pSubmits must have included the queue family of queue at resource creation time" + "text": "Any resource created with VK_SHARING_MODE_CONCURRENT that is accessed by an operation specified by pSubmits must have included the queue family of queue at resource creation time", + "page": "vkspec" }, { "vuid": "VUID-vkQueueSubmit-queue-06448", - "text": " If queue was not created with VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT, there must be no element of pSubmits that includes an VkProtectedSubmitInfo structure in its pNext chain with protectedSubmit equal to VK_TRUE" + "text": "If queue was not created with VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT, there must be no element of pSubmits that includes an VkProtectedSubmitInfo structure in its pNext chain with protectedSubmit equal to VK_TRUE", + "page": "vkspec" }, { "vuid": "VUID-vkQueueSubmit-queue-parameter", - "text": " queue must be a valid VkQueue handle" + "text": "queue must be a valid VkQueue handle", + "page": "vkspec" }, { "vuid": "VUID-vkQueueSubmit-pSubmits-parameter", - "text": " If submitCount is not 0, pSubmits must be a valid pointer to an array of submitCount valid VkSubmitInfo structures" + "text": "If submitCount is not 0, pSubmits must be a valid pointer to an array of submitCount valid VkSubmitInfo structures", + "page": "vkspec" }, { "vuid": "VUID-vkQueueSubmit-fence-parameter", - "text": " If fence is not VK_NULL_HANDLE, fence must be a valid VkFence handle" + "text": "If fence is not VK_NULL_HANDLE, fence must be a valid VkFence handle", + "page": "vkspec" }, { "vuid": "VUID-vkQueueSubmit-commonparent", - "text": " Both of fence, and queue that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of fence, and queue that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -1794,135 +2188,168 @@ "core": [ { "vuid": "VUID-VkSubmitInfo-pWaitDstStageMask-04090", - "text": " If the geometryShader feature is not enabled, pname:pWaitDstStageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT" + "text": "If the geometryShader feature is not enabled, pWaitDstStageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkSubmitInfo-pWaitDstStageMask-04091", - "text": " If the tessellationShader feature is not enabled, pname:pWaitDstStageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT" + "text": "If the tessellationShader feature is not enabled, pWaitDstStageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkSubmitInfo-pWaitDstStageMask-04092", - "text": " If the conditionalRendering feature is not enabled, pname:pWaitDstStageMask must not contain VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT" + "text": "If the conditionalRendering feature is not enabled, pWaitDstStageMask must not contain VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkSubmitInfo-pWaitDstStageMask-04093", - "text": " If the fragmentDensityMap feature is not enabled, pname:pWaitDstStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT" + "text": "If the fragmentDensityMap feature is not enabled, pWaitDstStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkSubmitInfo-pWaitDstStageMask-04094", - "text": " If the transformFeedback feature is not enabled, pname:pWaitDstStageMask must not contain VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT" + "text": "If the transformFeedback feature is not enabled, pWaitDstStageMask must not contain VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkSubmitInfo-pWaitDstStageMask-04095", - "text": " If the meshShader feature is not enabled, pname:pWaitDstStageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT" + "text": "If the meshShader feature is not enabled, pWaitDstStageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkSubmitInfo-pWaitDstStageMask-04096", - "text": " If the taskShader feature is not enabled, pname:pWaitDstStageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT" + "text": "If the taskShader feature is not enabled, pWaitDstStageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkSubmitInfo-pWaitDstStageMask-07318", - "text": " If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pname:pWaitDstStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR" + "text": "If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pWaitDstStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkSubmitInfo-pWaitDstStageMask-03937", - "text": " If the synchronization2 feature is not enabled, pname:pWaitDstStageMask must not be 0" + "text": "If the synchronization2 feature is not enabled, pWaitDstStageMask must not be 0", + "page": "vkspec" }, { "vuid": "VUID-VkSubmitInfo-pWaitDstStageMask-07949", - "text": " If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, pname:pWaitDstStageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR" + "text": "If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, pWaitDstStageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkSubmitInfo-pCommandBuffers-00075", - "text": " Each element of pCommandBuffers must not have been allocated with VK_COMMAND_BUFFER_LEVEL_SECONDARY" + "text": "Each element of pCommandBuffers must not have been allocated with VK_COMMAND_BUFFER_LEVEL_SECONDARY", + "page": "vkspec" }, { "vuid": "VUID-VkSubmitInfo-pWaitDstStageMask-00078", - "text": " Each element of pWaitDstStageMask must not include VK_PIPELINE_STAGE_HOST_BIT" + "text": "Each element of pWaitDstStageMask must not include VK_PIPELINE_STAGE_HOST_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkSubmitInfo-pWaitSemaphores-03239", - "text": " If any element of pWaitSemaphores or pSignalSemaphores was created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE, then the pNext chain must include a VkTimelineSemaphoreSubmitInfo structure" + "text": "If any element of pWaitSemaphores or pSignalSemaphores was created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE, then the pNext chain must include a VkTimelineSemaphoreSubmitInfo structure", + "page": "vkspec" }, { "vuid": "VUID-VkSubmitInfo-pNext-03240", - "text": " If the pNext chain of this structure includes a VkTimelineSemaphoreSubmitInfo structure and any element of pWaitSemaphores was created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE, then its waitSemaphoreValueCount member must equal waitSemaphoreCount" + "text": "If the pNext chain of this structure includes a VkTimelineSemaphoreSubmitInfo structure and any element of pWaitSemaphores was created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE, then its waitSemaphoreValueCount member must equal waitSemaphoreCount", + "page": "vkspec" }, { "vuid": "VUID-VkSubmitInfo-pNext-03241", - "text": " If the pNext chain of this structure includes a VkTimelineSemaphoreSubmitInfo structure and any element of pSignalSemaphores was created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE, then its signalSemaphoreValueCount member must equal signalSemaphoreCount" + "text": "If the pNext chain of this structure includes a VkTimelineSemaphoreSubmitInfo structure and any element of pSignalSemaphores was created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE, then its signalSemaphoreValueCount member must equal signalSemaphoreCount", + "page": "vkspec" }, { "vuid": "VUID-VkSubmitInfo-pSignalSemaphores-03242", - "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 greater than the current value of the semaphore when the semaphore signal operation is executed" + "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 greater than the current value of the semaphore when the semaphore signal operation is executed", + "page": "vkspec" }, { "vuid": "VUID-VkSubmitInfo-pWaitSemaphores-03243", - "text": " For each element of pWaitSemaphores created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE the corresponding element of VkTimelineSemaphoreSubmitInfo::pWaitSemaphoreValues must have a value which does not differ from the current value of the semaphore or the value of any outstanding semaphore wait or signal operation on that semaphore by more than maxTimelineSemaphoreValueDifference" + "text": "For each element of pWaitSemaphores created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE the corresponding element of VkTimelineSemaphoreSubmitInfo::pWaitSemaphoreValues must have a value which does not differ from the current value of the semaphore or the value of any outstanding semaphore wait or signal operation on that semaphore by more than maxTimelineSemaphoreValueDifference", + "page": "vkspec" }, { "vuid": "VUID-VkSubmitInfo-pSignalSemaphores-03244", - "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 the value of any outstanding semaphore wait or signal operation on that semaphore by more than maxTimelineSemaphoreValueDifference" + "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 the value of any outstanding semaphore wait or signal operation on that semaphore by more than maxTimelineSemaphoreValueDifference", + "page": "vkspec" }, { "vuid": "VUID-VkSubmitInfo-pNext-04120", - "text": " If the pNext chain of this structure does not include a VkProtectedSubmitInfo structure with protectedSubmit set to VK_TRUE, then each element of the pCommandBuffers array must be an unprotected command buffer" + "text": "If the pNext chain of this structure does not include a VkProtectedSubmitInfo structure with protectedSubmit set to VK_TRUE, then each element of the pCommandBuffers array must be an unprotected command buffer", + "page": "vkspec" }, { "vuid": "VUID-VkSubmitInfo-pNext-04148", - "text": " If the pNext chain of this structure includes a VkProtectedSubmitInfo structure with protectedSubmit set to VK_TRUE, then each element of the pCommandBuffers array must be a protected command buffer" + "text": "If the pNext chain of this structure includes a VkProtectedSubmitInfo structure with protectedSubmit set to VK_TRUE, then each element of the pCommandBuffers array must be a protected command buffer", + "page": "vkspec" }, { "vuid": "VUID-VkSubmitInfo-pCommandBuffers-06193", - "text": " If pCommandBuffers contains any resumed render pass instances, they must be suspended by a render pass instance earlier in submission order within pCommandBuffers" + "text": "If pCommandBuffers contains any resumed render pass instances, they must be suspended by a render pass instance earlier in submission order within pCommandBuffers", + "page": "vkspec" }, { "vuid": "VUID-VkSubmitInfo-pCommandBuffers-06014", - "text": " If pCommandBuffers contains any suspended render pass instances, they must be resumed by a render pass instance later in submission order within pCommandBuffers" + "text": "If pCommandBuffers contains any suspended render pass instances, they must be resumed by a render pass instance later in submission order within pCommandBuffers", + "page": "vkspec" }, { "vuid": "VUID-VkSubmitInfo-pCommandBuffers-06015", - "text": " If pCommandBuffers contains any suspended render pass instances, there must be no action or synchronization commands executed in a primary or secondary command buffer between that render pass instance and the render pass instance that resumes it" + "text": "If pCommandBuffers contains any suspended render pass instances, there must be no action or synchronization commands executed in a primary or secondary command buffer between that render pass instance and the render pass instance that resumes it", + "page": "vkspec" }, { "vuid": "VUID-VkSubmitInfo-pCommandBuffers-06016", - "text": " If pCommandBuffers contains any suspended render pass instances, there must be no render pass instances between that render pass instance and the render pass instance that resumes it" + "text": "If pCommandBuffers contains any suspended render pass instances, there must be no render pass instances between that render pass instance and the render pass instance that resumes it", + "page": "vkspec" }, { "vuid": "VUID-VkSubmitInfo-variableSampleLocations-06017", - "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" + "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": "vkspec" }, { "vuid": "VUID-VkSubmitInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SUBMIT_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_SUBMIT_INFO", + "page": "vkspec" }, { "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, 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, VkLatencySubmissionPresentIdNV, VkPerformanceQuerySubmitInfoKHR, VkProtectedSubmitInfo, VkTimelineSemaphoreSubmitInfo, VkWin32KeyedMutexAcquireReleaseInfoKHR, or VkWin32KeyedMutexAcquireReleaseInfoNV", + "page": "vkspec" }, { "vuid": "VUID-VkSubmitInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" }, { "vuid": "VUID-VkSubmitInfo-pWaitSemaphores-parameter", - "text": " If waitSemaphoreCount is not 0, pWaitSemaphores must be a valid pointer to an array of waitSemaphoreCount valid VkSemaphore handles" + "text": "If waitSemaphoreCount is not 0, pWaitSemaphores must be a valid pointer to an array of waitSemaphoreCount valid VkSemaphore handles", + "page": "vkspec" }, { "vuid": "VUID-VkSubmitInfo-pWaitDstStageMask-parameter", - "text": " If waitSemaphoreCount is not 0, pWaitDstStageMask must be a valid pointer to an array of waitSemaphoreCount valid combinations of VkPipelineStageFlagBits values" + "text": "If waitSemaphoreCount is not 0, pWaitDstStageMask must be a valid pointer to an array of waitSemaphoreCount valid combinations of VkPipelineStageFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkSubmitInfo-pCommandBuffers-parameter", - "text": " If commandBufferCount is not 0, pCommandBuffers must be a valid pointer to an array of commandBufferCount valid VkCommandBuffer handles" + "text": "If commandBufferCount is not 0, pCommandBuffers must be a valid pointer to an array of commandBufferCount valid VkCommandBuffer handles", + "page": "vkspec" }, { "vuid": "VUID-VkSubmitInfo-pSignalSemaphores-parameter", - "text": " If signalSemaphoreCount is not 0, pSignalSemaphores must be a valid pointer to an array of signalSemaphoreCount valid VkSemaphore handles" + "text": "If signalSemaphoreCount is not 0, pSignalSemaphores must be a valid pointer to an array of signalSemaphoreCount valid VkSemaphore handles", + "page": "vkspec" }, { "vuid": "VUID-VkSubmitInfo-commonparent", - "text": " Each of the elements of pCommandBuffers, the elements of pSignalSemaphores, and the elements of pWaitSemaphores that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" + "text": "Each of the elements of pCommandBuffers, the elements of pSignalSemaphores, and the elements of pWaitSemaphores that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -1930,15 +2357,18 @@ "core": [ { "vuid": "VUID-VkTimelineSemaphoreSubmitInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkTimelineSemaphoreSubmitInfo-pWaitSemaphoreValues-parameter", - "text": " If waitSemaphoreValueCount is not 0, and pWaitSemaphoreValues is not NULL, pWaitSemaphoreValues must be a valid pointer to an array of waitSemaphoreValueCount uint64_t values" + "text": "If waitSemaphoreValueCount is not 0, and pWaitSemaphoreValues is not NULL, pWaitSemaphoreValues must be a valid pointer to an array of waitSemaphoreValueCount uint64_t values", + "page": "vkspec" }, { "vuid": "VUID-VkTimelineSemaphoreSubmitInfo-pSignalSemaphoreValues-parameter", - "text": " If signalSemaphoreValueCount is not 0, and pSignalSemaphoreValues is not NULL, pSignalSemaphoreValues must be a valid pointer to an array of signalSemaphoreValueCount uint64_t values" + "text": "If signalSemaphoreValueCount is not 0, and pSignalSemaphoreValues is not NULL, pSignalSemaphoreValues must be a valid pointer to an array of signalSemaphoreValueCount uint64_t values", + "page": "vkspec" } ] }, @@ -1946,23 +2376,28 @@ "core": [ { "vuid": "VUID-VkD3D12FenceSubmitInfoKHR-waitSemaphoreValuesCount-00079", - "text": " waitSemaphoreValuesCount must be the same value as VkSubmitInfo::waitSemaphoreCount, where this structure is in the pNext chain of a VkSubmitInfo structure" + "text": "waitSemaphoreValuesCount must be the same value as VkSubmitInfo::waitSemaphoreCount, where this structure is in the pNext chain of a VkSubmitInfo structure", + "page": "vkspec" }, { "vuid": "VUID-VkD3D12FenceSubmitInfoKHR-signalSemaphoreValuesCount-00080", - "text": " signalSemaphoreValuesCount must be the same value as VkSubmitInfo::signalSemaphoreCount, where this structure is in the pNext chain of a VkSubmitInfo structure" + "text": "signalSemaphoreValuesCount must be the same value as VkSubmitInfo::signalSemaphoreCount, where this structure is in the pNext chain of a VkSubmitInfo structure", + "page": "vkspec" }, { "vuid": "VUID-VkD3D12FenceSubmitInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkD3D12FenceSubmitInfoKHR-pWaitSemaphoreValues-parameter", - "text": " If waitSemaphoreValuesCount is not 0, and pWaitSemaphoreValues is not NULL, pWaitSemaphoreValues must be a valid pointer to an array of waitSemaphoreValuesCount uint64_t values" + "text": "If waitSemaphoreValuesCount is not 0, and pWaitSemaphoreValues is not NULL, pWaitSemaphoreValues must be a valid pointer to an array of waitSemaphoreValuesCount uint64_t values", + "page": "vkspec" }, { "vuid": "VUID-VkD3D12FenceSubmitInfoKHR-pSignalSemaphoreValues-parameter", - "text": " If signalSemaphoreValuesCount is not 0, and pSignalSemaphoreValues is not NULL, pSignalSemaphoreValues must be a valid pointer to an array of signalSemaphoreValuesCount uint64_t values" + "text": "If signalSemaphoreValuesCount is not 0, and pSignalSemaphoreValues is not NULL, pSignalSemaphoreValues must be a valid pointer to an array of signalSemaphoreValuesCount uint64_t values", + "page": "vkspec" } ] }, @@ -1970,35 +2405,43 @@ "core": [ { "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoKHR-pAcquireSyncs-00081", - "text": " Each member of pAcquireSyncs and pReleaseSyncs must be a device memory object imported by setting VkImportMemoryWin32HandleInfoKHR::handleType to VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT or VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT" + "text": "Each member of pAcquireSyncs and pReleaseSyncs must be a device memory object imported by setting VkImportMemoryWin32HandleInfoKHR::handleType to VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT or VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoKHR-pAcquireSyncs-parameter", - "text": " If acquireCount is not 0, pAcquireSyncs must be a valid pointer to an array of acquireCount valid VkDeviceMemory handles" + "text": "If acquireCount is not 0, pAcquireSyncs must be a valid pointer to an array of acquireCount valid VkDeviceMemory handles", + "page": "vkspec" }, { "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoKHR-pAcquireKeys-parameter", - "text": " If acquireCount is not 0, pAcquireKeys must be a valid pointer to an array of acquireCount uint64_t values" + "text": "If acquireCount is not 0, pAcquireKeys must be a valid pointer to an array of acquireCount uint64_t values", + "page": "vkspec" }, { "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoKHR-pAcquireTimeouts-parameter", - "text": " If acquireCount is not 0, pAcquireTimeouts must be a valid pointer to an array of acquireCount uint32_t values" + "text": "If acquireCount is not 0, pAcquireTimeouts must be a valid pointer to an array of acquireCount uint32_t values", + "page": "vkspec" }, { "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoKHR-pReleaseSyncs-parameter", - "text": " If releaseCount is not 0, pReleaseSyncs must be a valid pointer to an array of releaseCount valid VkDeviceMemory handles" + "text": "If releaseCount is not 0, pReleaseSyncs must be a valid pointer to an array of releaseCount valid VkDeviceMemory handles", + "page": "vkspec" }, { "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoKHR-pReleaseKeys-parameter", - "text": " If releaseCount is not 0, pReleaseKeys must be a valid pointer to an array of releaseCount uint64_t values" + "text": "If releaseCount is not 0, pReleaseKeys must be a valid pointer to an array of releaseCount uint64_t values", + "page": "vkspec" }, { "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoKHR-commonparent", - "text": " Both of the elements of pAcquireSyncs, and the elements of pReleaseSyncs that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of the elements of pAcquireSyncs, and the elements of pReleaseSyncs that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -2006,31 +2449,38 @@ "core": [ { "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV" + "text": "sType must be VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV", + "page": "vkspec" }, { "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoNV-pAcquireSyncs-parameter", - "text": " If acquireCount is not 0, pAcquireSyncs must be a valid pointer to an array of acquireCount valid VkDeviceMemory handles" + "text": "If acquireCount is not 0, pAcquireSyncs must be a valid pointer to an array of acquireCount valid VkDeviceMemory handles", + "page": "vkspec" }, { "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoNV-pAcquireKeys-parameter", - "text": " If acquireCount is not 0, pAcquireKeys must be a valid pointer to an array of acquireCount uint64_t values" + "text": "If acquireCount is not 0, pAcquireKeys must be a valid pointer to an array of acquireCount uint64_t values", + "page": "vkspec" }, { "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoNV-pAcquireTimeoutMilliseconds-parameter", - "text": " If acquireCount is not 0, pAcquireTimeoutMilliseconds must be a valid pointer to an array of acquireCount uint32_t values" + "text": "If acquireCount is not 0, pAcquireTimeoutMilliseconds must be a valid pointer to an array of acquireCount uint32_t values", + "page": "vkspec" }, { "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoNV-pReleaseSyncs-parameter", - "text": " If releaseCount is not 0, pReleaseSyncs must be a valid pointer to an array of releaseCount valid VkDeviceMemory handles" + "text": "If releaseCount is not 0, pReleaseSyncs must be a valid pointer to an array of releaseCount valid VkDeviceMemory handles", + "page": "vkspec" }, { "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoNV-pReleaseKeys-parameter", - "text": " If releaseCount is not 0, pReleaseKeys must be a valid pointer to an array of releaseCount uint64_t values" + "text": "If releaseCount is not 0, pReleaseKeys must be a valid pointer to an array of releaseCount uint64_t values", + "page": "vkspec" }, { "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoNV-commonparent", - "text": " Both of the elements of pAcquireSyncs, and the elements of pReleaseSyncs that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of the elements of pAcquireSyncs, and the elements of pReleaseSyncs that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -2038,7 +2488,8 @@ "core": [ { "vuid": "VUID-VkProtectedSubmitInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO", + "page": "vkspec" } ] }, @@ -2046,39 +2497,48 @@ "core": [ { "vuid": "VUID-VkDeviceGroupSubmitInfo-waitSemaphoreCount-00082", - "text": " waitSemaphoreCount must equal VkSubmitInfo::waitSemaphoreCount" + "text": "waitSemaphoreCount must equal VkSubmitInfo::waitSemaphoreCount", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceGroupSubmitInfo-commandBufferCount-00083", - "text": " commandBufferCount must equal VkSubmitInfo::commandBufferCount" + "text": "commandBufferCount must equal VkSubmitInfo::commandBufferCount", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceGroupSubmitInfo-signalSemaphoreCount-00084", - "text": " signalSemaphoreCount must equal VkSubmitInfo::signalSemaphoreCount" + "text": "signalSemaphoreCount must equal VkSubmitInfo::signalSemaphoreCount", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceGroupSubmitInfo-pWaitSemaphoreDeviceIndices-00085", - "text": " All elements of pWaitSemaphoreDeviceIndices and pSignalSemaphoreDeviceIndices must be valid device indices" + "text": "All elements of pWaitSemaphoreDeviceIndices and pSignalSemaphoreDeviceIndices must be valid device indices", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceGroupSubmitInfo-pCommandBufferDeviceMasks-00086", - "text": " All elements of pCommandBufferDeviceMasks must be valid device masks" + "text": "All elements of pCommandBufferDeviceMasks must be valid device masks", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceGroupSubmitInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceGroupSubmitInfo-pWaitSemaphoreDeviceIndices-parameter", - "text": " If waitSemaphoreCount is not 0, pWaitSemaphoreDeviceIndices must be a valid pointer to an array of waitSemaphoreCount uint32_t values" + "text": "If waitSemaphoreCount is not 0, pWaitSemaphoreDeviceIndices must be a valid pointer to an array of waitSemaphoreCount uint32_t values", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceGroupSubmitInfo-pCommandBufferDeviceMasks-parameter", - "text": " If commandBufferCount is not 0, pCommandBufferDeviceMasks must be a valid pointer to an array of commandBufferCount uint32_t values" + "text": "If commandBufferCount is not 0, pCommandBufferDeviceMasks must be a valid pointer to an array of commandBufferCount uint32_t values", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceGroupSubmitInfo-pSignalSemaphoreDeviceIndices-parameter", - "text": " If signalSemaphoreCount is not 0, pSignalSemaphoreDeviceIndices must be a valid pointer to an array of signalSemaphoreCount uint32_t values" + "text": "If signalSemaphoreCount is not 0, pSignalSemaphoreDeviceIndices must be a valid pointer to an array of signalSemaphoreCount uint32_t values", + "page": "vkspec" } ] }, @@ -2086,11 +2546,13 @@ "core": [ { "vuid": "VUID-VkPerformanceQuerySubmitInfoKHR-counterPassIndex-03221", - "text": " counterPassIndex must be less than the number of counter passes required by any queries within the batch. The required number of counter passes for a performance query is obtained by calling vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR" + "text": "counterPassIndex must be less than the number of counter passes required by any queries within the batch. The required number of counter passes for a performance query is obtained by calling vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR", + "page": "vkspec" }, { "vuid": "VUID-VkPerformanceQuerySubmitInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR", + "page": "vkspec" } ] }, @@ -2098,227 +2560,308 @@ "core": [ { "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-00088", - "text": " Each element of pCommandBuffers must have been allocated with a level of VK_COMMAND_BUFFER_LEVEL_SECONDARY" + "text": "Each element of pCommandBuffers must have been allocated with a level of VK_COMMAND_BUFFER_LEVEL_SECONDARY", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-00089", - "text": " Each element of pCommandBuffers must be in the pending or executable state" + "text": "Each element of pCommandBuffers must be in the pending or executable state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-00091", - "text": " If any element of pCommandBuffers was not recorded with the VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT flag, it must not be in the pending state" + "text": "If any element of pCommandBuffers was not recorded with the VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT flag, it must not be in the pending state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-00092", - "text": " If any element of pCommandBuffers was not recorded with the VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT flag, it must not have already been recorded to commandBuffer" + "text": "If any element of pCommandBuffers was not recorded with the VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT flag, it must not have already been recorded to commandBuffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-00093", - "text": " If any element of pCommandBuffers was not recorded with the VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT flag, it must not appear more than once in pCommandBuffers" + "text": "If any element of pCommandBuffers was not recorded with the VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT flag, it must not appear more than once in pCommandBuffers", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-00094", - "text": " Each element of pCommandBuffers must have been allocated from a VkCommandPool that was created for the same queue family as the VkCommandPool from which commandBuffer was allocated" + "text": "Each element of pCommandBuffers must have been allocated from a VkCommandPool that was created for the same queue family as the VkCommandPool from which commandBuffer was allocated", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-00096", - "text": " If vkCmdExecuteCommands is being called within a render pass instance, each element of pCommandBuffers must have been recorded with the VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT" + "text": "If vkCmdExecuteCommands is being called within a render pass instance, each element of pCommandBuffers must have been recorded with the VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-00099", - "text": " If vkCmdExecuteCommands is being called within a render pass instance, and any element of pCommandBuffers was recorded with VkCommandBufferInheritanceInfo::framebuffer not equal to VK_NULL_HANDLE, that VkFramebuffer must match the VkFramebuffer used in the current render pass instance" + "text": "If vkCmdExecuteCommands is being called within a render pass instance, and any element of pCommandBuffers was recorded with VkCommandBufferInheritanceInfo::framebuffer not equal to VK_NULL_HANDLE, that VkFramebuffer must match the VkFramebuffer used in the current render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteCommands-contents-06018", - "text": " If vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRenderPass, its contents parameter must have been set to VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS" + "text": "If vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRenderPass, its contents parameter must have been set to VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS , or VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-06019", - "text": " If vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRenderPass, each element of pCommandBuffers must have been recorded with VkCommandBufferInheritanceInfo::subpass set to the index of the subpass which the given command buffer will be executed in" + "text": "If vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRenderPass, each element of pCommandBuffers must have been recorded with VkCommandBufferInheritanceInfo::subpass set to the index of the subpass which the given command buffer will be executed in", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteCommands-pBeginInfo-06020", - "text": " If vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRenderPass, the render passes specified in the pBeginInfo->pInheritanceInfo->renderPass members of the vkBeginCommandBuffer commands used to begin recording each element of pCommandBuffers must be compatible with the current render pass" + "text": "If vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRenderPass, the render passes specified in the pBeginInfo->pInheritanceInfo->renderPass members of the vkBeginCommandBuffer commands used to begin recording each element of pCommandBuffers must be compatible with the current render pass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteCommands-pNext-02865", - "text": " If vkCmdExecuteCommands is being called within a render pass instance that included VkRenderPassTransformBeginInfoQCOM in the pNext chain of VkRenderPassBeginInfo, then each element of pCommandBuffers must have been recorded with VkCommandBufferInheritanceRenderPassTransformInfoQCOM in the pNext chain of VkCommandBufferBeginInfo" + "text": "If vkCmdExecuteCommands is being called within a render pass instance that included VkRenderPassTransformBeginInfoQCOM in the pNext chain of VkRenderPassBeginInfo, then each element of pCommandBuffers must have been recorded with VkCommandBufferInheritanceRenderPassTransformInfoQCOM in the pNext chain of VkCommandBufferBeginInfo", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteCommands-pNext-02866", - "text": " If vkCmdExecuteCommands is being called within a render pass instance that included VkRenderPassTransformBeginInfoQCOM in the pNext chain of VkRenderPassBeginInfo, then each element of pCommandBuffers must have been recorded with VkCommandBufferInheritanceRenderPassTransformInfoQCOM::transform identical to VkRenderPassTransformBeginInfoQCOM::transform" + "text": "If vkCmdExecuteCommands is being called within a render pass instance that included VkRenderPassTransformBeginInfoQCOM in the pNext chain of VkRenderPassBeginInfo, then each element of pCommandBuffers must have been recorded with VkCommandBufferInheritanceRenderPassTransformInfoQCOM::transform identical to VkRenderPassTransformBeginInfoQCOM::transform", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteCommands-pNext-02867", - "text": " If vkCmdExecuteCommands is being called within a render pass instance that included VkRenderPassTransformBeginInfoQCOM in the pNext chain of VkRenderPassBeginInfo, then each element of pCommandBuffers must have been recorded with VkCommandBufferInheritanceRenderPassTransformInfoQCOM::renderArea identical to VkRenderPassBeginInfo::renderArea" + "text": "If vkCmdExecuteCommands is being called within a render pass instance that included VkRenderPassTransformBeginInfoQCOM in the pNext chain of VkRenderPassBeginInfo, then each element of pCommandBuffers must have been recorded with VkCommandBufferInheritanceRenderPassTransformInfoQCOM::renderArea identical to VkRenderPassBeginInfo::renderArea", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-00100", - "text": " If vkCmdExecuteCommands is not being called within a render pass instance, each element of pCommandBuffers must not have been recorded with the VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT" + "text": "If vkCmdExecuteCommands is not being called within a render pass instance, each element of pCommandBuffers must not have been recorded with the VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteCommands-commandBuffer-00101", - "text": " If the inheritedQueries feature is not enabled, commandBuffer must not have any queries active" + "text": "If the inheritedQueries feature is not enabled, commandBuffer must not have any queries active", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteCommands-commandBuffer-00102", - "text": " If commandBuffer has a VK_QUERY_TYPE_OCCLUSION query active, then each element of pCommandBuffers must have been recorded with VkCommandBufferInheritanceInfo::occlusionQueryEnable set to VK_TRUE" + "text": "If commandBuffer has a VK_QUERY_TYPE_OCCLUSION query active, then each element of pCommandBuffers must have been recorded with VkCommandBufferInheritanceInfo::occlusionQueryEnable set to VK_TRUE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteCommands-commandBuffer-00103", - "text": " If commandBuffer has a VK_QUERY_TYPE_OCCLUSION query active, then each element of pCommandBuffers must have been recorded with VkCommandBufferInheritanceInfo::queryFlags having all bits set that are set for the query" + "text": "If commandBuffer has a VK_QUERY_TYPE_OCCLUSION query active, then each element of pCommandBuffers must have been recorded with VkCommandBufferInheritanceInfo::queryFlags having all bits set that are set for the query", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteCommands-commandBuffer-00104", - "text": " If commandBuffer has a VK_QUERY_TYPE_PIPELINE_STATISTICS query active, then each element of pCommandBuffers must have been recorded with VkCommandBufferInheritanceInfo::pipelineStatistics having all bits set that are set in the VkQueryPool the query uses" + "text": "If commandBuffer has a VK_QUERY_TYPE_PIPELINE_STATISTICS query active, then each element of pCommandBuffers must have been recorded with VkCommandBufferInheritanceInfo::pipelineStatistics having all bits set that are set in the VkQueryPool the query uses", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-00105", - "text": " Each element of pCommandBuffers must not begin any query types that are active in commandBuffer" + "text": "Each element of pCommandBuffers must not begin any query types that are active in commandBuffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteCommands-commandBuffer-07594", - "text": " commandBuffer must not have any queries other than VK_QUERY_TYPE_OCCLUSION and VK_QUERY_TYPE_PIPELINE_STATISTICS active" + "text": "commandBuffer must not have any queries other than VK_QUERY_TYPE_OCCLUSION and VK_QUERY_TYPE_PIPELINE_STATISTICS active", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteCommands-commandBuffer-01820", - "text": " If commandBuffer is a protected command buffer and protectedNoFault is not supported, each element of pCommandBuffers must be a protected command buffer" + "text": "If commandBuffer is a protected command buffer and protectedNoFault is not supported, each element of pCommandBuffers must be a protected command buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteCommands-commandBuffer-01821", - "text": " If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, each element of pCommandBuffers must be an unprotected command buffer" + "text": "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, each element of pCommandBuffers must be an unprotected command buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteCommands-None-02286", - "text": " This command must not be recorded when transform feedback is active" + "text": "This command must not be recorded when transform feedback is active", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteCommands-commandBuffer-06533", - "text": " If vkCmdExecuteCommands is being called within a render pass instance and any recorded command in commandBuffer in the current subpass will write to an image subresource as an attachment, commands recorded in elements of pCommandBuffers must not read from the memory backing that image subresource in any other way" + "text": "If vkCmdExecuteCommands is being called within a render pass instance and any recorded command in commandBuffer in the current subpass will write to an image subresource as an attachment, commands recorded in elements of pCommandBuffers must not read from the memory backing that image subresource in any other way", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteCommands-commandBuffer-06534", - "text": " If vkCmdExecuteCommands is being called within a render pass instance and any recorded command in commandBuffer in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, commands recorded in elements of pCommandBuffers must not write to that image subresource as an attachment" + "text": "If vkCmdExecuteCommands is being called within a render pass instance and any recorded command in commandBuffer in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, commands recorded in elements of pCommandBuffers must not write to that image subresource as an attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-06535", - "text": " If vkCmdExecuteCommands is being called within a render pass instance and any recorded command in a given element of pCommandBuffers will write to an image subresource as an attachment, commands recorded in elements of pCommandBuffers at a higher index must not read from the memory backing that image subresource in any other way" + "text": "If vkCmdExecuteCommands is being called within a render pass instance and any recorded command in a given element of pCommandBuffers will write to an image subresource as an attachment, commands recorded in elements of pCommandBuffers at a higher index must not read from the memory backing that image subresource in any other way", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-06536", - "text": " If vkCmdExecuteCommands is being called within a render pass instance and any recorded command in a given element of pCommandBuffers will read from an image subresource used as an attachment in any way other than as an attachment, commands recorded in elements of pCommandBuffers at a higher index must not write to that image subresource as an attachment" + "text": "If vkCmdExecuteCommands is being called within a render pass instance and any recorded command in a given element of pCommandBuffers will read from an image subresource used as an attachment in any way other than as an attachment, commands recorded in elements of pCommandBuffers at a higher index must not write to that image subresource as an attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-06021", - "text": " If pCommandBuffers contains any suspended render pass instances, there must be no action or synchronization commands between that render pass instance and any render pass instance that resumes it" + "text": "If pCommandBuffers contains any suspended render pass instances, there must be no action or synchronization commands between that render pass instance and any render pass instance that resumes it", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-06022", - "text": " If pCommandBuffers contains any suspended render pass instances, there must be no render pass instances between that render pass instance and any render pass instance that resumes it" + "text": "If pCommandBuffers contains any suspended render pass instances, there must be no render pass instances between that render pass instance and any render pass instance that resumes it", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteCommands-variableSampleLocations-06023", - "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" + "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": "vkspec" }, { "vuid": "VUID-vkCmdExecuteCommands-flags-06024", - "text": " If vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRendering, its VkRenderingInfo::flags parameter must have included VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT" + "text": "If vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRendering, its VkRenderingInfo::flags parameter must have included VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteCommands-pBeginInfo-06025", - "text": " If vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRendering, the render passes specified in the pBeginInfo->pInheritanceInfo->renderPass members of the vkBeginCommandBuffer commands used to begin recording each element of pCommandBuffers must be VK_NULL_HANDLE" + "text": "If vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRendering, the render passes specified in the pBeginInfo->pInheritanceInfo->renderPass members of the vkBeginCommandBuffer commands used to begin recording each element of pCommandBuffers must be VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteCommands-flags-06026", - "text": " If vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRendering, the flags member of the VkCommandBufferInheritanceRenderingInfo structure included in the pNext chain of VkCommandBufferBeginInfo::pInheritanceInfo used to begin recording each element of pCommandBuffers must be equal to the VkRenderingInfo::flags parameter to vkCmdBeginRendering, excluding VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT" + "text": "If vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRendering, the flags member of the VkCommandBufferInheritanceRenderingInfo structure included in the pNext chain of VkCommandBufferBeginInfo::pInheritanceInfo used to begin recording each element of pCommandBuffers must be equal to the VkRenderingInfo::flags parameter to vkCmdBeginRendering, excluding VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteCommands-colorAttachmentCount-06027", - "text": " If vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRendering, the colorAttachmentCount member of the VkCommandBufferInheritanceRenderingInfo structure included in the pNext chain of VkCommandBufferBeginInfo::pInheritanceInfo used to begin recording each element of pCommandBuffers must be equal to the VkRenderingInfo::colorAttachmentCount parameter to vkCmdBeginRendering" + "text": "If vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRendering, the colorAttachmentCount member of the VkCommandBufferInheritanceRenderingInfo structure included in the pNext chain of VkCommandBufferBeginInfo::pInheritanceInfo used to begin recording each element of pCommandBuffers must be equal to the VkRenderingInfo::colorAttachmentCount parameter to vkCmdBeginRendering", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteCommands-imageView-06028", - "text": " If vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRendering, if the imageView member of an element of the VkRenderingInfo::pColorAttachments parameter to vkCmdBeginRendering is not VK_NULL_HANDLE, the corresponding element of the pColorAttachmentFormats member of the VkCommandBufferInheritanceRenderingInfo structure included in the pNext chain of VkCommandBufferBeginInfo::pInheritanceInfo used to begin recording each element of pCommandBuffers must be equal to the format used to create that image view" + "text": "If vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRendering, if the imageView member of an element of the VkRenderingInfo::pColorAttachments parameter to vkCmdBeginRendering is not VK_NULL_HANDLE, the corresponding element of the pColorAttachmentFormats member of the VkCommandBufferInheritanceRenderingInfo structure included in the pNext chain of VkCommandBufferBeginInfo::pInheritanceInfo used to begin recording each element of pCommandBuffers must be equal to the format used to create that image view", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteCommands-imageView-07606", - "text": " If vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRendering, if the imageView member of an element of the VkRenderingInfo::pColorAttachments parameter to vkCmdBeginRendering is VK_NULL_HANDLE, the corresponding element of the pColorAttachmentFormats member of the VkCommandBufferInheritanceRenderingInfo structure included in the pNext chain of VkCommandBufferBeginInfo::pInheritanceInfo used to begin recording each element of pCommandBuffers must be VK_FORMAT_UNDEFINED" + "text": "If vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRendering, if the imageView member of an element of the VkRenderingInfo::pColorAttachments parameter to vkCmdBeginRendering is VK_NULL_HANDLE, the corresponding element of the pColorAttachmentFormats member of the VkCommandBufferInheritanceRenderingInfo structure included in the pNext chain of VkCommandBufferBeginInfo::pInheritanceInfo used to begin recording each element of pCommandBuffers must be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteCommands-pDepthAttachment-06029", - "text": " If vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRendering, if the VkRenderingInfo::pDepthAttachment->imageView parameter to vkCmdBeginRendering is not VK_NULL_HANDLE, the value of the depthAttachmentFormat member of the VkCommandBufferInheritanceRenderingInfo structure included in the pNext chain of VkCommandBufferBeginInfo::pInheritanceInfo used to begin recording each element of pCommandBuffers must be equal to the format used to create that image view" + "text": "If vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRendering, if the VkRenderingInfo::pDepthAttachment->imageView parameter to vkCmdBeginRendering is not VK_NULL_HANDLE, the value of the depthAttachmentFormat member of the VkCommandBufferInheritanceRenderingInfo structure included in the pNext chain of VkCommandBufferBeginInfo::pInheritanceInfo used to begin recording each element of pCommandBuffers must be equal to the format used to create that image view", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteCommands-pStencilAttachment-06030", - "text": " If vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRendering, if the VkRenderingInfo::pStencilAttachment->imageView parameter to vkCmdBeginRendering is not VK_NULL_HANDLE, the value of the stencilAttachmentFormat member of the VkCommandBufferInheritanceRenderingInfo structure included in the pNext chain of VkCommandBufferBeginInfo::pInheritanceInfo used to begin recording each element of pCommandBuffers must be equal to the format used to create that image view" + "text": "If vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRendering, if the VkRenderingInfo::pStencilAttachment->imageView parameter to vkCmdBeginRendering is not VK_NULL_HANDLE, the value of the stencilAttachmentFormat member of the VkCommandBufferInheritanceRenderingInfo structure included in the pNext chain of VkCommandBufferBeginInfo::pInheritanceInfo used to begin recording each element of pCommandBuffers must be equal to the format used to create that image view", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteCommands-pDepthAttachment-06774", - "text": " If vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRendering and the VkRenderingInfo::pDepthAttachment->imageView parameter to vkCmdBeginRendering was VK_NULL_HANDLE, the value of the depthAttachmentFormat member of the VkCommandBufferInheritanceRenderingInfo structure included in the pNext chain of VkCommandBufferBeginInfo::pInheritanceInfo used to begin recording each element of pCommandBuffers must be VK_FORMAT_UNDEFINED" + "text": "If vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRendering and the VkRenderingInfo::pDepthAttachment->imageView parameter to vkCmdBeginRendering was VK_NULL_HANDLE, the value of the depthAttachmentFormat member of the VkCommandBufferInheritanceRenderingInfo structure included in the pNext chain of VkCommandBufferBeginInfo::pInheritanceInfo used to begin recording each element of pCommandBuffers must be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteCommands-pStencilAttachment-06775", - "text": " If vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRendering and the VkRenderingInfo::pStencilAttachment->imageView parameter to vkCmdBeginRendering was VK_NULL_HANDLE, the value of the stencilAttachmentFormat member of the VkCommandBufferInheritanceRenderingInfo structure included in the pNext chain of VkCommandBufferBeginInfo::pInheritanceInfo used to begin recording each element of pCommandBuffers must be VK_FORMAT_UNDEFINED" + "text": "If vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRendering and the VkRenderingInfo::pStencilAttachment->imageView parameter to vkCmdBeginRendering was VK_NULL_HANDLE, the value of the stencilAttachmentFormat member of the VkCommandBufferInheritanceRenderingInfo structure included in the pNext chain of VkCommandBufferBeginInfo::pInheritanceInfo used to begin recording each element of pCommandBuffers must be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteCommands-viewMask-06031", - "text": " If vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRendering, the viewMask member of the VkCommandBufferInheritanceRenderingInfo structure included in the pNext chain of VkCommandBufferBeginInfo::pInheritanceInfo used to begin recording each element of pCommandBuffers must be equal to the VkRenderingInfo::viewMask parameter to vkCmdBeginRendering" + "text": "If vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRendering, the viewMask member of the VkCommandBufferInheritanceRenderingInfo structure included in the pNext chain of VkCommandBufferBeginInfo::pInheritanceInfo used to begin recording each element of pCommandBuffers must be equal to the VkRenderingInfo::viewMask parameter to vkCmdBeginRendering", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteCommands-pNext-06032", - "text": " If vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRendering and the pNext chain of VkCommandBufferInheritanceInfo includes a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, if the imageView member of an element of the VkRenderingInfo::pColorAttachments parameter to vkCmdBeginRendering is not VK_NULL_HANDLE, the corresponding element of the pColorAttachmentSamples member of the VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure included in the pNext chain of VkCommandBufferBeginInfo::pInheritanceInfo used to begin recording each element of pCommandBuffers must be equal to the sample count used to create that image view" + "text": "If vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRendering and the pNext chain of VkCommandBufferInheritanceInfo includes a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, if the imageView member of an element of the VkRenderingInfo::pColorAttachments parameter to vkCmdBeginRendering is not VK_NULL_HANDLE, the corresponding element of the pColorAttachmentSamples member of the VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure included in the pNext chain of VkCommandBufferBeginInfo::pInheritanceInfo used to begin recording each element of pCommandBuffers must be equal to the sample count used to create that image view", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteCommands-pNext-06033", - "text": " If vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRendering and the pNext chain of VkCommandBufferInheritanceInfo includes a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, if the VkRenderingInfo::pDepthAttachment->imageView parameter to vkCmdBeginRendering is not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of the VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure included in the pNext chain of VkCommandBufferBeginInfo::pInheritanceInfo used to begin recording each element of pCommandBuffers must be equal to the sample count used to create that image view" + "text": "If vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRendering and the pNext chain of VkCommandBufferInheritanceInfo includes a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, if the VkRenderingInfo::pDepthAttachment->imageView parameter to vkCmdBeginRendering is not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of the VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure included in the pNext chain of VkCommandBufferBeginInfo::pInheritanceInfo used to begin recording each element of pCommandBuffers must be equal to the sample count used to create that image view", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteCommands-pNext-06034", - "text": " If vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRendering and the pNext chain of VkCommandBufferInheritanceInfo includes a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, if the VkRenderingInfo::pStencilAttachment->imageView parameter to vkCmdBeginRendering is not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of the VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure included in the pNext chain of VkCommandBufferBeginInfo::pInheritanceInfo used to begin recording each element of pCommandBuffers must be equal to the sample count used to create that image view" + "text": "If vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRendering and the pNext chain of VkCommandBufferInheritanceInfo includes a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, if the VkRenderingInfo::pStencilAttachment->imageView parameter to vkCmdBeginRendering is not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of the VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure included in the pNext chain of VkCommandBufferBeginInfo::pInheritanceInfo used to begin recording each element of pCommandBuffers must be equal to the sample count used to create that image view", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteCommands-pNext-06035", - "text": " If vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRendering and the pNext chain of VkCommandBufferInheritanceInfo does not include a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, if the imageView member of an element of the VkRenderingInfo::pColorAttachments parameter to vkCmdBeginRendering is not VK_NULL_HANDLE, the value of VkCommandBufferInheritanceRenderingInfo::rasterizationSamples must be equal to the sample count used to create that image view" + "text": "If vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRendering and the pNext chain of VkCommandBufferInheritanceInfo does not include a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, if the imageView member of an element of the VkRenderingInfo::pColorAttachments parameter to vkCmdBeginRendering is not VK_NULL_HANDLE, the value of VkCommandBufferInheritanceRenderingInfo::rasterizationSamples must be equal to the sample count used to create that image view", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteCommands-pNext-06036", - "text": " If vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRendering and the pNext chain of VkCommandBufferInheritanceInfo does not include a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, if the VkRenderingInfo::pDepthAttachment->imageView parameter to vkCmdBeginRendering is not VK_NULL_HANDLE, the value of VkCommandBufferInheritanceRenderingInfo::rasterizationSamples must be equal to the sample count used to create that image view" + "text": "If vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRendering and the pNext chain of VkCommandBufferInheritanceInfo does not include a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, if the VkRenderingInfo::pDepthAttachment->imageView parameter to vkCmdBeginRendering is not VK_NULL_HANDLE, the value of VkCommandBufferInheritanceRenderingInfo::rasterizationSamples must be equal to the sample count used to create that image view", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteCommands-pNext-06037", - "text": " If vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRendering and the pNext chain of VkCommandBufferInheritanceInfo does not include a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, if the VkRenderingInfo::pStencilAttachment->imageView parameter to vkCmdBeginRendering is not VK_NULL_HANDLE, the value of VkCommandBufferInheritanceRenderingInfo::rasterizationSamples must be equal to the sample count used to create that image view" + "text": "If vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRendering and the pNext chain of VkCommandBufferInheritanceInfo does not include a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, if the VkRenderingInfo::pStencilAttachment->imageView parameter to vkCmdBeginRendering is not VK_NULL_HANDLE, the value of VkCommandBufferInheritanceRenderingInfo::rasterizationSamples must be equal to the sample count used to create that image view", + "page": "vkspec" + }, + { + "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 a externalFormat matching that used to create the resolve attachment in the render pass", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdExecuteCommands-commandBuffer-09375", + "text": "commandBuffer must not be a secondary command buffer unless the nestedCommandBuffer feature is enabled", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdExecuteCommands-nestedCommandBuffer-09376", + "text": "If the nestedCommandBuffer feature is enabled, the command buffer nesting level of each element of pCommandBuffers must be less than maxCommandBufferNestingLevel", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdExecuteCommands-nestedCommandBufferRendering-09377", + "text": "If the nestedCommandBufferRendering feature is not enabled, and commandBuffer is a secondary command buffer, commandBuffer must not have been recorded with VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdExecuteCommands-nestedCommandBufferSimultaneousUse-09378", + "text": "If the nestedCommandBufferSimultaneousUse feature is not enabled, and commandBuffer is a secondary command buffer, each element of pCommandBuffers must not have been recorded with VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteCommands-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-parameter", - "text": " pCommandBuffers must be a valid pointer to an array of commandBufferCount valid VkCommandBuffer handles" + "text": "pCommandBuffers must be a valid pointer to an array of commandBufferCount valid VkCommandBuffer handles", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteCommands-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteCommands-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteCommands-videocoding", - "text": " This command must only be called outside of a video coding scope" - }, - { - "vuid": "VUID-vkCmdExecuteCommands-bufferlevel", - "text": " commandBuffer must be a primary VkCommandBuffer" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteCommands-commandBufferCount-arraylength", - "text": " commandBufferCount must be greater than 0" + "text": "commandBufferCount must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteCommands-commonparent", - "text": " Both of commandBuffer, and the elements of pCommandBuffers must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of commandBuffer, and the elements of pCommandBuffers must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -2326,15 +2869,18 @@ "core": [ { "vuid": "VUID-VkDeviceGroupCommandBufferBeginInfo-deviceMask-00106", - "text": " deviceMask must be a valid device mask value" + "text": "deviceMask must be a valid device mask value", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceGroupCommandBufferBeginInfo-deviceMask-00107", - "text": " deviceMask must not be zero" + "text": "deviceMask must not be zero", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceGroupCommandBufferBeginInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO", + "page": "vkspec" } ] }, @@ -2342,31 +2888,38 @@ "core": [ { "vuid": "VUID-vkCmdSetDeviceMask-deviceMask-00108", - "text": " deviceMask must be a valid device mask value" + "text": "deviceMask must be a valid device mask value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDeviceMask-deviceMask-00109", - "text": " deviceMask must not be zero" + "text": "deviceMask must not be zero", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDeviceMask-deviceMask-00110", - "text": " deviceMask must not include any set bits that were not in the VkDeviceGroupCommandBufferBeginInfo::deviceMask value when the command buffer began recording" + "text": "deviceMask must not include any set bits that were not in the VkDeviceGroupCommandBufferBeginInfo::deviceMask value when the command buffer began recording", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDeviceMask-deviceMask-00111", - "text": " If vkCmdSetDeviceMask is called inside a render pass instance, deviceMask must not include any set bits that were not in the VkDeviceGroupRenderPassBeginInfo::deviceMask value when the render pass instance began recording" + "text": "If vkCmdSetDeviceMask is called inside a render pass instance, deviceMask must not include any set bits that were not in the VkDeviceGroupRenderPassBeginInfo::deviceMask value when the render pass instance began recording", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDeviceMask-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDeviceMask-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDeviceMask-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, compute, or transfer operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics, compute, or transfer operations", + "page": "vkspec" } ] }, @@ -2374,19 +2927,23 @@ "core": [ { "vuid": "VUID-vkCreateFence-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkCreateFence-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkFenceCreateInfo structure" + "text": "pCreateInfo must be a valid pointer to a valid VkFenceCreateInfo structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateFence-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateFence-pFence-parameter", - "text": " pFence must be a valid pointer to a VkFence handle" + "text": "pFence must be a valid pointer to a VkFence handle", + "page": "vkspec" } ] }, @@ -2394,19 +2951,23 @@ "core": [ { "vuid": "VUID-VkFenceCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_FENCE_CREATE_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_FENCE_CREATE_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkFenceCreateInfo-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 VkExportFenceCreateInfo or VkExportFenceWin32HandleInfoKHR" + "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 VkExportFenceCreateInfo or VkExportFenceWin32HandleInfoKHR", + "page": "vkspec" }, { "vuid": "VUID-VkFenceCreateInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" }, { "vuid": "VUID-VkFenceCreateInfo-flags-parameter", - "text": " flags must be a valid combination of VkFenceCreateFlagBits values" + "text": "flags must be a valid combination of VkFenceCreateFlagBits values", + "page": "vkspec" } ] }, @@ -2414,15 +2975,18 @@ "core": [ { "vuid": "VUID-VkExportFenceCreateInfo-handleTypes-01446", - "text": " The bits in handleTypes must be supported and compatible, as reported by VkExternalFenceProperties" + "text": "The bits in handleTypes must be supported and compatible, as reported by VkExternalFenceProperties", + "page": "vkspec" }, { "vuid": "VUID-VkExportFenceCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkExportFenceCreateInfo-handleTypes-parameter", - "text": " handleTypes must be a valid combination of VkExternalFenceHandleTypeFlagBits values" + "text": "handleTypes must be a valid combination of VkExternalFenceHandleTypeFlagBits values", + "page": "vkspec" } ] }, @@ -2430,15 +2994,18 @@ "core": [ { "vuid": "VUID-VkExportFenceWin32HandleInfoKHR-handleTypes-01447", - "text": " If VkExportFenceCreateInfo::handleTypes does not include VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT, a VkExportFenceWin32HandleInfoKHR structure must not be included in the pNext chain of VkFenceCreateInfo" + "text": "If VkExportFenceCreateInfo::handleTypes does not include VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT, a VkExportFenceWin32HandleInfoKHR structure must not be included in the pNext chain of VkFenceCreateInfo", + "page": "vkspec" }, { "vuid": "VUID-VkExportFenceWin32HandleInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkExportFenceWin32HandleInfoKHR-pAttributes-parameter", - "text": " If pAttributes is not NULL, pAttributes must be a valid pointer to a valid SECURITY_ATTRIBUTES value" + "text": "If pAttributes is not NULL, pAttributes must be a valid pointer to a valid SECURITY_ATTRIBUTES value", + "page": "vkspec" } ] }, @@ -2446,15 +3013,18 @@ "core": [ { "vuid": "VUID-vkGetFenceWin32HandleKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetFenceWin32HandleKHR-pGetWin32HandleInfo-parameter", - "text": " pGetWin32HandleInfo must be a valid pointer to a valid VkFenceGetWin32HandleInfoKHR structure" + "text": "pGetWin32HandleInfo must be a valid pointer to a valid VkFenceGetWin32HandleInfoKHR structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetFenceWin32HandleKHR-pHandle-parameter", - "text": " pHandle must be a valid pointer to a HANDLE value" + "text": "pHandle must be a valid pointer to a HANDLE value", + "page": "vkspec" } ] }, @@ -2462,39 +3032,48 @@ "core": [ { "vuid": "VUID-VkFenceGetWin32HandleInfoKHR-handleType-01448", - "text": " handleType must have been included in VkExportFenceCreateInfo::handleTypes when the fence’s current payload was created" + "text": "handleType must have been included in VkExportFenceCreateInfo::handleTypes when the fence’s current payload was created", + "page": "vkspec" }, { "vuid": "VUID-VkFenceGetWin32HandleInfoKHR-handleType-01449", - "text": " If handleType is defined as an NT handle, vkGetFenceWin32HandleKHR must be called no more than once for each valid unique combination of fence and handleType" + "text": "If handleType is defined as an NT handle, vkGetFenceWin32HandleKHR must be called no more than once for each valid unique combination of fence and handleType", + "page": "vkspec" }, { "vuid": "VUID-VkFenceGetWin32HandleInfoKHR-fence-01450", - "text": " fence must not currently have its payload replaced by an imported payload as described below in Importing Fence Payloads unless that imported payload’s handle type was included in VkExternalFenceProperties::exportFromImportedHandleTypes for handleType" + "text": "fence must not currently have its payload replaced by an imported payload as described below in Importing Fence Payloads unless that imported payload’s handle type was included in VkExternalFenceProperties::exportFromImportedHandleTypes for handleType", + "page": "vkspec" }, { "vuid": "VUID-VkFenceGetWin32HandleInfoKHR-handleType-01451", - "text": " If handleType refers to a handle type with copy payload transference semantics, fence must be signaled, or have an associated fence signal operation pending execution" + "text": "If handleType refers to a handle type with copy payload transference semantics, fence must be signaled, or have an associated fence signal operation pending execution", + "page": "vkspec" }, { "vuid": "VUID-VkFenceGetWin32HandleInfoKHR-handleType-01452", - "text": " handleType must be defined as an NT handle or a global share handle" + "text": "handleType must be defined as an NT handle or a global share handle", + "page": "vkspec" }, { "vuid": "VUID-VkFenceGetWin32HandleInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkFenceGetWin32HandleInfoKHR-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkFenceGetWin32HandleInfoKHR-fence-parameter", - "text": " fence must be a valid VkFence handle" + "text": "fence must be a valid VkFence handle", + "page": "vkspec" }, { "vuid": "VUID-VkFenceGetWin32HandleInfoKHR-handleType-parameter", - "text": " handleType must be a valid VkExternalFenceHandleTypeFlagBits value" + "text": "handleType must be a valid VkExternalFenceHandleTypeFlagBits value", + "page": "vkspec" } ] }, @@ -2502,15 +3081,18 @@ "core": [ { "vuid": "VUID-vkGetFenceFdKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetFenceFdKHR-pGetFdInfo-parameter", - "text": " pGetFdInfo must be a valid pointer to a valid VkFenceGetFdInfoKHR structure" + "text": "pGetFdInfo must be a valid pointer to a valid VkFenceGetFdInfoKHR structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetFenceFdKHR-pFd-parameter", - "text": " pFd must be a valid pointer to an int value" + "text": "pFd must be a valid pointer to an int value", + "page": "vkspec" } ] }, @@ -2518,35 +3100,43 @@ "core": [ { "vuid": "VUID-VkFenceGetFdInfoKHR-handleType-01453", - "text": " handleType must have been included in VkExportFenceCreateInfo::handleTypes when fence’s current payload was created" + "text": "handleType must have been included in VkExportFenceCreateInfo::handleTypes when fence’s current payload was created", + "page": "vkspec" }, { "vuid": "VUID-VkFenceGetFdInfoKHR-handleType-01454", - "text": " If handleType refers to a handle type with copy payload transference semantics, fence must be signaled, or have an associated fence signal operation pending execution" + "text": "If handleType refers to a handle type with copy payload transference semantics, fence must be signaled, or have an associated fence signal operation pending execution", + "page": "vkspec" }, { "vuid": "VUID-VkFenceGetFdInfoKHR-fence-01455", - "text": " fence must not currently have its payload replaced by an imported payload as described below in Importing Fence Payloads unless that imported payload’s handle type was included in VkExternalFenceProperties::exportFromImportedHandleTypes for handleType" + "text": "fence must not currently have its payload replaced by an imported payload as described below in Importing Fence Payloads unless that imported payload’s handle type was included in VkExternalFenceProperties::exportFromImportedHandleTypes for handleType", + "page": "vkspec" }, { "vuid": "VUID-VkFenceGetFdInfoKHR-handleType-01456", - "text": " handleType must be defined as a POSIX file descriptor handle" + "text": "handleType must be defined as a POSIX file descriptor handle", + "page": "vkspec" }, { "vuid": "VUID-VkFenceGetFdInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkFenceGetFdInfoKHR-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkFenceGetFdInfoKHR-fence-parameter", - "text": " fence must be a valid VkFence handle" + "text": "fence must be a valid VkFence handle", + "page": "vkspec" }, { "vuid": "VUID-VkFenceGetFdInfoKHR-handleType-parameter", - "text": " handleType must be a valid VkExternalFenceHandleTypeFlagBits value" + "text": "handleType must be a valid VkExternalFenceHandleTypeFlagBits value", + "page": "vkspec" } ] }, @@ -2554,31 +3144,38 @@ "core": [ { "vuid": "VUID-vkDestroyFence-fence-01120", - "text": " All queue submission commands that refer to fence must have completed execution" + "text": "All queue submission commands that refer to fence must have completed execution", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyFence-fence-01121", - "text": " If VkAllocationCallbacks were provided when fence was created, a compatible set of callbacks must be provided here" + "text": "If VkAllocationCallbacks were provided when fence was created, a compatible set of callbacks must be provided here", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyFence-fence-01122", - "text": " If no VkAllocationCallbacks were provided when fence was created, pAllocator must be NULL" + "text": "If no VkAllocationCallbacks were provided when fence was created, pAllocator must be NULL", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyFence-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyFence-fence-parameter", - "text": " If fence is not VK_NULL_HANDLE, fence must be a valid VkFence handle" + "text": "If fence is not VK_NULL_HANDLE, fence must be a valid VkFence handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyFence-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyFence-fence-parent", - "text": " If fence is a valid handle, it must have been created, allocated, or retrieved from device" + "text": "If fence is a valid handle, it must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -2586,15 +3183,18 @@ "core": [ { "vuid": "VUID-vkGetFenceStatus-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetFenceStatus-fence-parameter", - "text": " fence must be a valid VkFence handle" + "text": "fence must be a valid VkFence handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetFenceStatus-fence-parent", - "text": " fence must have been created, allocated, or retrieved from device" + "text": "fence must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -2602,23 +3202,28 @@ "core": [ { "vuid": "VUID-vkResetFences-pFences-01123", - "text": " Each element of pFences must not be currently associated with any queue command that has not yet completed execution on that queue" + "text": "Each element of pFences must not be currently associated with any queue command that has not yet completed execution on that queue", + "page": "vkspec" }, { "vuid": "VUID-vkResetFences-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkResetFences-pFences-parameter", - "text": " pFences must be a valid pointer to an array of fenceCount valid VkFence handles" + "text": "pFences must be a valid pointer to an array of fenceCount valid VkFence handles", + "page": "vkspec" }, { "vuid": "VUID-vkResetFences-fenceCount-arraylength", - "text": " fenceCount must be greater than 0" + "text": "fenceCount must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-vkResetFences-pFences-parent", - "text": " Each element of pFences must have been created, allocated, or retrieved from device" + "text": "Each element of pFences must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -2626,19 +3231,23 @@ "core": [ { "vuid": "VUID-vkWaitForFences-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkWaitForFences-pFences-parameter", - "text": " pFences must be a valid pointer to an array of fenceCount valid VkFence handles" + "text": "pFences must be a valid pointer to an array of fenceCount valid VkFence handles", + "page": "vkspec" }, { "vuid": "VUID-vkWaitForFences-fenceCount-arraylength", - "text": " fenceCount must be greater than 0" + "text": "fenceCount must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-vkWaitForFences-pFences-parent", - "text": " Each element of pFences must have been created, allocated, or retrieved from device" + "text": "Each element of pFences must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -2646,19 +3255,23 @@ "core": [ { "vuid": "VUID-vkRegisterDeviceEventEXT-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkRegisterDeviceEventEXT-pDeviceEventInfo-parameter", - "text": " pDeviceEventInfo must be a valid pointer to a valid VkDeviceEventInfoEXT structure" + "text": "pDeviceEventInfo must be a valid pointer to a valid VkDeviceEventInfoEXT structure", + "page": "vkspec" }, { "vuid": "VUID-vkRegisterDeviceEventEXT-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkRegisterDeviceEventEXT-pFence-parameter", - "text": " pFence must be a valid pointer to a VkFence handle" + "text": "pFence must be a valid pointer to a VkFence handle", + "page": "vkspec" } ] }, @@ -2666,15 +3279,18 @@ "core": [ { "vuid": "VUID-VkDeviceEventInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceEventInfoEXT-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceEventInfoEXT-deviceEvent-parameter", - "text": " deviceEvent must be a valid VkDeviceEventTypeEXT value" + "text": "deviceEvent must be a valid VkDeviceEventTypeEXT value", + "page": "vkspec" } ] }, @@ -2682,27 +3298,33 @@ "core": [ { "vuid": "VUID-vkRegisterDisplayEventEXT-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkRegisterDisplayEventEXT-display-parameter", - "text": " display must be a valid VkDisplayKHR handle" + "text": "display must be a valid VkDisplayKHR handle", + "page": "vkspec" }, { "vuid": "VUID-vkRegisterDisplayEventEXT-pDisplayEventInfo-parameter", - "text": " pDisplayEventInfo must be a valid pointer to a valid VkDisplayEventInfoEXT structure" + "text": "pDisplayEventInfo must be a valid pointer to a valid VkDisplayEventInfoEXT structure", + "page": "vkspec" }, { "vuid": "VUID-vkRegisterDisplayEventEXT-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkRegisterDisplayEventEXT-pFence-parameter", - "text": " pFence must be a valid pointer to a VkFence handle" + "text": "pFence must be a valid pointer to a VkFence handle", + "page": "vkspec" }, { "vuid": "VUID-vkRegisterDisplayEventEXT-commonparent", - "text": " Both of device, and display must have been created, allocated, or retrieved from the same VkPhysicalDevice" + "text": "Both of device, and display must have been created, allocated, or retrieved from the same VkPhysicalDevice", + "page": "vkspec" } ] }, @@ -2710,15 +3332,18 @@ "core": [ { "vuid": "VUID-VkDisplayEventInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkDisplayEventInfoEXT-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkDisplayEventInfoEXT-displayEvent-parameter", - "text": " displayEvent must be a valid VkDisplayEventTypeEXT value" + "text": "displayEvent must be a valid VkDisplayEventTypeEXT value", + "page": "vkspec" } ] }, @@ -2726,15 +3351,18 @@ "core": [ { "vuid": "VUID-vkImportFenceWin32HandleKHR-fence-04448", - "text": " fence must not be associated with any queue command that has not yet completed execution on that queue" + "text": "fence must not be associated with any queue command that has not yet completed execution on that queue", + "page": "vkspec" }, { "vuid": "VUID-vkImportFenceWin32HandleKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkImportFenceWin32HandleKHR-pImportFenceWin32HandleInfo-parameter", - "text": " pImportFenceWin32HandleInfo must be a valid pointer to a valid VkImportFenceWin32HandleInfoKHR structure" + "text": "pImportFenceWin32HandleInfo must be a valid pointer to a valid VkImportFenceWin32HandleInfoKHR structure", + "page": "vkspec" } ] }, @@ -2742,47 +3370,58 @@ "core": [ { "vuid": "VUID-VkImportFenceWin32HandleInfoKHR-handleType-01457", - "text": " handleType must be a value included in the Handle Types Supported by VkImportFenceWin32HandleInfoKHR table" + "text": "handleType must be a value included in the Handle Types Supported by VkImportFenceWin32HandleInfoKHR table", + "page": "vkspec" }, { "vuid": "VUID-VkImportFenceWin32HandleInfoKHR-handleType-01459", - "text": " If handleType is not VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT, name must be NULL" + "text": "If handleType is not VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT, name must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkImportFenceWin32HandleInfoKHR-handleType-01460", - "text": " If handle is NULL, name must name a valid synchronization primitive of the type specified by handleType" + "text": "If handle is NULL, name must name a valid synchronization primitive of the type specified by handleType", + "page": "vkspec" }, { "vuid": "VUID-VkImportFenceWin32HandleInfoKHR-handleType-01461", - "text": " If name is NULL, handle must be a valid handle of the type specified by handleType" + "text": "If name is NULL, handle must be a valid handle of the type specified by handleType", + "page": "vkspec" }, { "vuid": "VUID-VkImportFenceWin32HandleInfoKHR-handle-01462", - "text": " If handle is not NULL, name must be NULL" + "text": "If handle is not NULL, name must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkImportFenceWin32HandleInfoKHR-handle-01539", - "text": " If handle is not NULL, it must obey any requirements listed for handleType in external fence handle types compatibility" + "text": "If handle is not NULL, it must obey any requirements listed for handleType in external fence handle types compatibility", + "page": "vkspec" }, { "vuid": "VUID-VkImportFenceWin32HandleInfoKHR-name-01540", - "text": " If name is not NULL, it must obey any requirements listed for handleType in external fence handle types compatibility" + "text": "If name is not NULL, it must obey any requirements listed for handleType in external fence handle types compatibility", + "page": "vkspec" }, { "vuid": "VUID-VkImportFenceWin32HandleInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkImportFenceWin32HandleInfoKHR-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkImportFenceWin32HandleInfoKHR-fence-parameter", - "text": " fence must be a valid VkFence handle" + "text": "fence must be a valid VkFence handle", + "page": "vkspec" }, { "vuid": "VUID-VkImportFenceWin32HandleInfoKHR-flags-parameter", - "text": " flags must be a valid combination of VkFenceImportFlagBits values" + "text": "flags must be a valid combination of VkFenceImportFlagBits values", + "page": "vkspec" } ] }, @@ -2790,15 +3429,18 @@ "core": [ { "vuid": "VUID-vkImportFenceFdKHR-fence-01463", - "text": " fence must not be associated with any queue command that has not yet completed execution on that queue" + "text": "fence must not be associated with any queue command that has not yet completed execution on that queue", + "page": "vkspec" }, { "vuid": "VUID-vkImportFenceFdKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkImportFenceFdKHR-pImportFenceFdInfo-parameter", - "text": " pImportFenceFdInfo must be a valid pointer to a valid VkImportFenceFdInfoKHR structure" + "text": "pImportFenceFdInfo must be a valid pointer to a valid VkImportFenceFdInfoKHR structure", + "page": "vkspec" } ] }, @@ -2806,35 +3448,43 @@ "core": [ { "vuid": "VUID-VkImportFenceFdInfoKHR-handleType-01464", - "text": " handleType must be a value included in the Handle Types Supported by VkImportFenceFdInfoKHR table" + "text": "handleType must be a value included in the Handle Types Supported by VkImportFenceFdInfoKHR table", + "page": "vkspec" }, { "vuid": "VUID-VkImportFenceFdInfoKHR-fd-01541", - "text": " fd must obey any requirements listed for handleType in external fence handle types compatibility" + "text": "fd must obey any requirements listed for handleType in external fence handle types compatibility", + "page": "vkspec" }, { "vuid": "VUID-VkImportFenceFdInfoKHR-handleType-07306", - "text": " If handleType refers to a handle type with copy payload transference semantics, flags must contain VK_FENCE_IMPORT_TEMPORARY_BIT" + "text": "If handleType refers to a handle type with copy payload transference semantics, flags must contain VK_FENCE_IMPORT_TEMPORARY_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImportFenceFdInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkImportFenceFdInfoKHR-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkImportFenceFdInfoKHR-fence-parameter", - "text": " fence must be a valid VkFence handle" + "text": "fence must be a valid VkFence handle", + "page": "vkspec" }, { "vuid": "VUID-VkImportFenceFdInfoKHR-flags-parameter", - "text": " flags must be a valid combination of VkFenceImportFlagBits values" + "text": "flags must be a valid combination of VkFenceImportFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkImportFenceFdInfoKHR-handleType-parameter", - "text": " handleType must be a valid VkExternalFenceHandleTypeFlagBits value" + "text": "handleType must be a valid VkExternalFenceHandleTypeFlagBits value", + "page": "vkspec" } ] }, @@ -2842,19 +3492,23 @@ "core": [ { "vuid": "VUID-vkCreateSemaphore-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkCreateSemaphore-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkSemaphoreCreateInfo structure" + "text": "pCreateInfo must be a valid pointer to a valid VkSemaphoreCreateInfo structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateSemaphore-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateSemaphore-pSemaphore-parameter", - "text": " pSemaphore must be a valid pointer to a VkSemaphore handle" + "text": "pSemaphore must be a valid pointer to a VkSemaphore handle", + "page": "vkspec" } ] }, @@ -2862,23 +3516,28 @@ "core": [ { "vuid": "VUID-VkSemaphoreCreateInfo-pNext-06789", - "text": " If the pNext chain includes a VkExportMetalObjectCreateInfoEXT structure, its exportObjectType member must be VK_EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT" + "text": "If the pNext chain includes a VkExportMetalObjectCreateInfoEXT structure, its exportObjectType member must be VK_EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkSemaphoreCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkSemaphoreCreateInfo-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 VkExportMetalObjectCreateInfoEXT, VkExportSemaphoreCreateInfo, VkExportSemaphoreWin32HandleInfoKHR, VkImportMetalSharedEventInfoEXT, VkQueryLowLatencySupportNV, or VkSemaphoreTypeCreateInfo" + "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 VkExportMetalObjectCreateInfoEXT, VkExportSemaphoreCreateInfo, VkExportSemaphoreWin32HandleInfoKHR, VkImportMetalSharedEventInfoEXT, VkQueryLowLatencySupportNV, or VkSemaphoreTypeCreateInfo", + "page": "vkspec" }, { "vuid": "VUID-VkSemaphoreCreateInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique, with the exception of structures of type VkExportMetalObjectCreateInfoEXT" + "text": "The sType value of each struct in the pNext chain must be unique, with the exception of structures of type VkExportMetalObjectCreateInfoEXT", + "page": "vkspec" }, { "vuid": "VUID-VkSemaphoreCreateInfo-flags-zerobitmask", - "text": " flags must be 0" + "text": "flags must be 0", + "page": "vkspec" } ] }, @@ -2886,19 +3545,23 @@ "core": [ { "vuid": "VUID-VkSemaphoreTypeCreateInfo-timelineSemaphore-03252", - "text": " If the timelineSemaphore feature is not enabled, semaphoreType must not equal VK_SEMAPHORE_TYPE_TIMELINE" + "text": "If the timelineSemaphore feature is not enabled, semaphoreType must not equal VK_SEMAPHORE_TYPE_TIMELINE", + "page": "vkspec" }, { "vuid": "VUID-VkSemaphoreTypeCreateInfo-semaphoreType-03279", - "text": " If semaphoreType is VK_SEMAPHORE_TYPE_BINARY, initialValue must be zero" + "text": "If semaphoreType is VK_SEMAPHORE_TYPE_BINARY, initialValue must be zero", + "page": "vkspec" }, { "vuid": "VUID-VkSemaphoreTypeCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkSemaphoreTypeCreateInfo-semaphoreType-parameter", - "text": " semaphoreType must be a valid VkSemaphoreType value" + "text": "semaphoreType must be a valid VkSemaphoreType value", + "page": "vkspec" } ] }, @@ -2906,15 +3569,18 @@ "core": [ { "vuid": "VUID-VkExportSemaphoreCreateInfo-handleTypes-01124", - "text": " The bits in handleTypes must be supported and compatible, as reported by VkExternalSemaphoreProperties" + "text": "The bits in handleTypes must be supported and compatible, as reported by VkExternalSemaphoreProperties", + "page": "vkspec" }, { "vuid": "VUID-VkExportSemaphoreCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkExportSemaphoreCreateInfo-handleTypes-parameter", - "text": " handleTypes must be a valid combination of VkExternalSemaphoreHandleTypeFlagBits values" + "text": "handleTypes must be a valid combination of VkExternalSemaphoreHandleTypeFlagBits values", + "page": "vkspec" } ] }, @@ -2922,15 +3588,18 @@ "core": [ { "vuid": "VUID-VkExportSemaphoreWin32HandleInfoKHR-handleTypes-01125", - "text": " If VkExportSemaphoreCreateInfo::handleTypes does not include VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT or VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT, VkExportSemaphoreWin32HandleInfoKHR must not be included in the pNext chain of VkSemaphoreCreateInfo" + "text": "If VkExportSemaphoreCreateInfo::handleTypes does not include VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT or VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT, VkExportSemaphoreWin32HandleInfoKHR must not be included in the pNext chain of VkSemaphoreCreateInfo", + "page": "vkspec" }, { "vuid": "VUID-VkExportSemaphoreWin32HandleInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkExportSemaphoreWin32HandleInfoKHR-pAttributes-parameter", - "text": " If pAttributes is not NULL, pAttributes must be a valid pointer to a valid SECURITY_ATTRIBUTES value" + "text": "If pAttributes is not NULL, pAttributes must be a valid pointer to a valid SECURITY_ATTRIBUTES value", + "page": "vkspec" } ] }, @@ -2938,15 +3607,18 @@ "core": [ { "vuid": "VUID-vkGetSemaphoreWin32HandleKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetSemaphoreWin32HandleKHR-pGetWin32HandleInfo-parameter", - "text": " pGetWin32HandleInfo must be a valid pointer to a valid VkSemaphoreGetWin32HandleInfoKHR structure" + "text": "pGetWin32HandleInfo must be a valid pointer to a valid VkSemaphoreGetWin32HandleInfoKHR structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetSemaphoreWin32HandleKHR-pHandle-parameter", - "text": " pHandle must be a valid pointer to a HANDLE value" + "text": "pHandle must be a valid pointer to a HANDLE value", + "page": "vkspec" } ] }, @@ -2954,43 +3626,53 @@ "core": [ { "vuid": "VUID-VkSemaphoreGetWin32HandleInfoKHR-handleType-01126", - "text": " handleType must have been included in VkExportSemaphoreCreateInfo::handleTypes when the semaphore’s current payload was created" + "text": "handleType must have been included in VkExportSemaphoreCreateInfo::handleTypes when the semaphore’s current payload was created", + "page": "vkspec" }, { "vuid": "VUID-VkSemaphoreGetWin32HandleInfoKHR-handleType-01127", - "text": " If handleType is defined as an NT handle, vkGetSemaphoreWin32HandleKHR must be called no more than once for each valid unique combination of semaphore and handleType" + "text": "If handleType is defined as an NT handle, vkGetSemaphoreWin32HandleKHR must be called no more than once for each valid unique combination of semaphore and handleType", + "page": "vkspec" }, { "vuid": "VUID-VkSemaphoreGetWin32HandleInfoKHR-semaphore-01128", - "text": " semaphore must not currently have its payload replaced by an imported payload as described below in Importing Semaphore Payloads unless that imported payload’s handle type was included in VkExternalSemaphoreProperties::exportFromImportedHandleTypes for handleType" + "text": "semaphore must not currently have its payload replaced by an imported payload as described below in Importing Semaphore Payloads unless that imported payload’s handle type was included in VkExternalSemaphoreProperties::exportFromImportedHandleTypes for handleType", + "page": "vkspec" }, { "vuid": "VUID-VkSemaphoreGetWin32HandleInfoKHR-handleType-01129", - "text": " If handleType refers to a handle type with copy payload transference semantics, as defined below in Importing Semaphore Payloads, there must be no queue waiting on semaphore" + "text": "If handleType refers to a handle type with copy payload transference semantics, as defined below in Importing Semaphore Payloads, there must be no queue waiting on semaphore", + "page": "vkspec" }, { "vuid": "VUID-VkSemaphoreGetWin32HandleInfoKHR-handleType-01130", - "text": " If handleType refers to a handle type with copy payload transference semantics, semaphore must be signaled, or have an associated semaphore signal operation pending execution" + "text": "If handleType refers to a handle type with copy payload transference semantics, semaphore must be signaled, or have an associated semaphore signal operation pending execution", + "page": "vkspec" }, { "vuid": "VUID-VkSemaphoreGetWin32HandleInfoKHR-handleType-01131", - "text": " handleType must be defined as an NT handle or a global share handle" + "text": "handleType must be defined as an NT handle or a global share handle", + "page": "vkspec" }, { "vuid": "VUID-VkSemaphoreGetWin32HandleInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkSemaphoreGetWin32HandleInfoKHR-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkSemaphoreGetWin32HandleInfoKHR-semaphore-parameter", - "text": " semaphore must be a valid VkSemaphore handle" + "text": "semaphore must be a valid VkSemaphore handle", + "page": "vkspec" }, { "vuid": "VUID-VkSemaphoreGetWin32HandleInfoKHR-handleType-parameter", - "text": " handleType must be a valid VkExternalSemaphoreHandleTypeFlagBits value" + "text": "handleType must be a valid VkExternalSemaphoreHandleTypeFlagBits value", + "page": "vkspec" } ] }, @@ -2998,11 +3680,13 @@ "core": [ { "vuid": "VUID-VkQueryLowLatencySupportNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_QUERY_LOW_LATENCY_SUPPORT_NV" + "text": "sType must be VK_STRUCTURE_TYPE_QUERY_LOW_LATENCY_SUPPORT_NV", + "page": "vkspec" }, { "vuid": "VUID-VkQueryLowLatencySupportNV-pQueriedLowLatencyData-parameter", - "text": " pQueriedLowLatencyData must be a pointer value" + "text": "pQueriedLowLatencyData must be a pointer value", + "page": "vkspec" } ] }, @@ -3010,15 +3694,18 @@ "core": [ { "vuid": "VUID-vkGetSemaphoreFdKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetSemaphoreFdKHR-pGetFdInfo-parameter", - "text": " pGetFdInfo must be a valid pointer to a valid VkSemaphoreGetFdInfoKHR structure" + "text": "pGetFdInfo must be a valid pointer to a valid VkSemaphoreGetFdInfoKHR structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetSemaphoreFdKHR-pFd-parameter", - "text": " pFd must be a valid pointer to an int value" + "text": "pFd must be a valid pointer to an int value", + "page": "vkspec" } ] }, @@ -3026,47 +3713,58 @@ "core": [ { "vuid": "VUID-VkSemaphoreGetFdInfoKHR-handleType-01132", - "text": " handleType must have been included in VkExportSemaphoreCreateInfo::handleTypes when semaphore’s current payload was created" + "text": "handleType must have been included in VkExportSemaphoreCreateInfo::handleTypes when semaphore’s current payload was created", + "page": "vkspec" }, { "vuid": "VUID-VkSemaphoreGetFdInfoKHR-semaphore-01133", - "text": " semaphore must not currently have its payload replaced by an imported payload as described below in Importing Semaphore Payloads unless that imported payload’s handle type was included in VkExternalSemaphoreProperties::exportFromImportedHandleTypes for handleType" + "text": "semaphore must not currently have its payload replaced by an imported payload as described below in Importing Semaphore Payloads unless that imported payload’s handle type was included in VkExternalSemaphoreProperties::exportFromImportedHandleTypes for handleType", + "page": "vkspec" }, { "vuid": "VUID-VkSemaphoreGetFdInfoKHR-handleType-01134", - "text": " If handleType refers to a handle type with copy payload transference semantics, as defined below in Importing Semaphore Payloads, there must be no queue waiting on semaphore" + "text": "If handleType refers to a handle type with copy payload transference semantics, as defined below in Importing Semaphore Payloads, there must be no queue waiting on semaphore", + "page": "vkspec" }, { "vuid": "VUID-VkSemaphoreGetFdInfoKHR-handleType-01135", - "text": " If handleType refers to a handle type with copy payload transference semantics, semaphore must be signaled, or have an associated semaphore signal operation pending execution" + "text": "If handleType refers to a handle type with copy payload transference semantics, semaphore must be signaled, or have an associated semaphore signal operation pending execution", + "page": "vkspec" }, { "vuid": "VUID-VkSemaphoreGetFdInfoKHR-handleType-01136", - "text": " handleType must be defined as a POSIX file descriptor handle" + "text": "handleType must be defined as a POSIX file descriptor handle", + "page": "vkspec" }, { "vuid": "VUID-VkSemaphoreGetFdInfoKHR-handleType-03253", - "text": " If handleType refers to a handle type with copy payload transference semantics, semaphore must have been created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_BINARY" + "text": "If handleType refers to a handle type with copy payload transference semantics, semaphore must have been created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_BINARY", + "page": "vkspec" }, { "vuid": "VUID-VkSemaphoreGetFdInfoKHR-handleType-03254", - "text": " If handleType refers to a handle type with copy payload transference semantics, semaphore must have an associated semaphore signal operation that has been submitted for execution and any semaphore signal operations on which it depends (if any) must have also been submitted for execution" + "text": "If handleType refers to a handle type with copy payload transference semantics, semaphore must have an associated semaphore signal operation that has been submitted for execution and any semaphore signal operations on which it depends (if any) must have also been submitted for execution", + "page": "vkspec" }, { "vuid": "VUID-VkSemaphoreGetFdInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkSemaphoreGetFdInfoKHR-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkSemaphoreGetFdInfoKHR-semaphore-parameter", - "text": " semaphore must be a valid VkSemaphore handle" + "text": "semaphore must be a valid VkSemaphore handle", + "page": "vkspec" }, { "vuid": "VUID-VkSemaphoreGetFdInfoKHR-handleType-parameter", - "text": " handleType must be a valid VkExternalSemaphoreHandleTypeFlagBits value" + "text": "handleType must be a valid VkExternalSemaphoreHandleTypeFlagBits value", + "page": "vkspec" } ] }, @@ -3074,15 +3772,18 @@ "core": [ { "vuid": "VUID-vkGetSemaphoreZirconHandleFUCHSIA-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetSemaphoreZirconHandleFUCHSIA-pGetZirconHandleInfo-parameter", - "text": " pGetZirconHandleInfo must be a valid pointer to a valid VkSemaphoreGetZirconHandleInfoFUCHSIA structure" + "text": "pGetZirconHandleInfo must be a valid pointer to a valid VkSemaphoreGetZirconHandleInfoFUCHSIA structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetSemaphoreZirconHandleFUCHSIA-pZirconHandle-parameter", - "text": " pZirconHandle must be a valid pointer to a zx_handle_t value" + "text": "pZirconHandle must be a valid pointer to a zx_handle_t value", + "page": "vkspec" } ] }, @@ -3090,43 +3791,53 @@ "core": [ { "vuid": "VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-handleType-04758", - "text": " handleType must have been included in VkExportSemaphoreCreateInfo::handleTypes when semaphore’s current payload was created" + "text": "handleType must have been included in VkExportSemaphoreCreateInfo::handleTypes when semaphore’s current payload was created", + "page": "vkspec" }, { "vuid": "VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-semaphore-04759", - "text": " semaphore must not currently have its payload replaced by an imported payload as described below in Importing Semaphore Payloads unless that imported payload’s handle type was included in VkExternalSemaphoreProperties::exportFromImportedHandleTypes for handleType" + "text": "semaphore must not currently have its payload replaced by an imported payload as described below in Importing Semaphore Payloads unless that imported payload’s handle type was included in VkExternalSemaphoreProperties::exportFromImportedHandleTypes for handleType", + "page": "vkspec" }, { "vuid": "VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-handleType-04760", - "text": " If handleType refers to a handle type with copy payload transference semantics, as defined below in Importing Semaphore Payloads, there must be no queue waiting on semaphore" + "text": "If handleType refers to a handle type with copy payload transference semantics, as defined below in Importing Semaphore Payloads, there must be no queue waiting on semaphore", + "page": "vkspec" }, { "vuid": "VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-handleType-04761", - "text": " If handleType refers to a handle type with copy payload transference semantics, semaphore must be signaled, or have an associated semaphore signal operation pending execution" + "text": "If handleType refers to a handle type with copy payload transference semantics, semaphore must be signaled, or have an associated semaphore signal operation pending execution", + "page": "vkspec" }, { "vuid": "VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-handleType-04762", - "text": " handleType must be defined as a Zircon event handle" + "text": "handleType must be defined as a Zircon event handle", + "page": "vkspec" }, { "vuid": "VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-semaphore-04763", - "text": " semaphore must have been created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_BINARY" + "text": "semaphore must have been created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_BINARY", + "page": "vkspec" }, { "vuid": "VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA" + "text": "sType must be VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA", + "page": "vkspec" }, { "vuid": "VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-semaphore-parameter", - "text": " semaphore must be a valid VkSemaphore handle" + "text": "semaphore must be a valid VkSemaphore handle", + "page": "vkspec" }, { "vuid": "VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-handleType-parameter", - "text": " handleType must be a valid VkExternalSemaphoreHandleTypeFlagBits value" + "text": "handleType must be a valid VkExternalSemaphoreHandleTypeFlagBits value", + "page": "vkspec" } ] }, @@ -3134,31 +3845,38 @@ "core": [ { "vuid": "VUID-vkDestroySemaphore-semaphore-01137", - "text": " All submitted batches that refer to semaphore must have completed execution" + "text": "All submitted batches that refer to semaphore must have completed execution", + "page": "vkspec" }, { "vuid": "VUID-vkDestroySemaphore-semaphore-01138", - "text": " If VkAllocationCallbacks were provided when semaphore was created, a compatible set of callbacks must be provided here" + "text": "If VkAllocationCallbacks were provided when semaphore was created, a compatible set of callbacks must be provided here", + "page": "vkspec" }, { "vuid": "VUID-vkDestroySemaphore-semaphore-01139", - "text": " If no VkAllocationCallbacks were provided when semaphore was created, pAllocator must be NULL" + "text": "If no VkAllocationCallbacks were provided when semaphore was created, pAllocator must be NULL", + "page": "vkspec" }, { "vuid": "VUID-vkDestroySemaphore-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroySemaphore-semaphore-parameter", - "text": " If semaphore is not VK_NULL_HANDLE, semaphore must be a valid VkSemaphore handle" + "text": "If semaphore is not VK_NULL_HANDLE, semaphore must be a valid VkSemaphore handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroySemaphore-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkDestroySemaphore-semaphore-parent", - "text": " If semaphore is a valid handle, it must have been created, allocated, or retrieved from device" + "text": "If semaphore is a valid handle, it must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -3166,23 +3884,28 @@ "core": [ { "vuid": "VUID-vkGetSemaphoreCounterValue-semaphore-03255", - "text": " semaphore must have been created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE" + "text": "semaphore must have been created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE", + "page": "vkspec" }, { "vuid": "VUID-vkGetSemaphoreCounterValue-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetSemaphoreCounterValue-semaphore-parameter", - "text": " semaphore must be a valid VkSemaphore handle" + "text": "semaphore must be a valid VkSemaphore handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetSemaphoreCounterValue-pValue-parameter", - "text": " pValue must be a valid pointer to a uint64_t value" + "text": "pValue must be a valid pointer to a uint64_t value", + "page": "vkspec" }, { "vuid": "VUID-vkGetSemaphoreCounterValue-semaphore-parent", - "text": " semaphore must have been created, allocated, or retrieved from device" + "text": "semaphore must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -3190,11 +3913,13 @@ "core": [ { "vuid": "VUID-vkWaitSemaphores-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkWaitSemaphores-pWaitInfo-parameter", - "text": " pWaitInfo must be a valid pointer to a valid VkSemaphoreWaitInfo structure" + "text": "pWaitInfo must be a valid pointer to a valid VkSemaphoreWaitInfo structure", + "page": "vkspec" } ] }, @@ -3202,31 +3927,38 @@ "core": [ { "vuid": "VUID-VkSemaphoreWaitInfo-pSemaphores-03256", - "text": " All of the elements of pSemaphores must reference a semaphore that was created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE" + "text": "All of the elements of pSemaphores must reference a semaphore that was created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE", + "page": "vkspec" }, { "vuid": "VUID-VkSemaphoreWaitInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkSemaphoreWaitInfo-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkSemaphoreWaitInfo-flags-parameter", - "text": " flags must be a valid combination of VkSemaphoreWaitFlagBits values" + "text": "flags must be a valid combination of VkSemaphoreWaitFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkSemaphoreWaitInfo-pSemaphores-parameter", - "text": " pSemaphores must be a valid pointer to an array of semaphoreCount valid VkSemaphore handles" + "text": "pSemaphores must be a valid pointer to an array of semaphoreCount valid VkSemaphore handles", + "page": "vkspec" }, { "vuid": "VUID-VkSemaphoreWaitInfo-pValues-parameter", - "text": " pValues must be a valid pointer to an array of semaphoreCount uint64_t values" + "text": "pValues must be a valid pointer to an array of semaphoreCount uint64_t values", + "page": "vkspec" }, { "vuid": "VUID-VkSemaphoreWaitInfo-semaphoreCount-arraylength", - "text": " semaphoreCount must be greater than 0" + "text": "semaphoreCount must be greater than 0", + "page": "vkspec" } ] }, @@ -3234,11 +3966,13 @@ "core": [ { "vuid": "VUID-vkSignalSemaphore-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkSignalSemaphore-pSignalInfo-parameter", - "text": " pSignalInfo must be a valid pointer to a valid VkSemaphoreSignalInfo structure" + "text": "pSignalInfo must be a valid pointer to a valid VkSemaphoreSignalInfo structure", + "page": "vkspec" } ] }, @@ -3246,31 +3980,38 @@ "core": [ { "vuid": "VUID-VkSemaphoreSignalInfo-semaphore-03257", - "text": " semaphore must have been created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE" + "text": "semaphore must have been created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE", + "page": "vkspec" }, { "vuid": "VUID-VkSemaphoreSignalInfo-value-03258", - "text": " value must have a value greater than the current value of the semaphore" + "text": "value must have a value greater than the current value of the semaphore", + "page": "vkspec" }, { "vuid": "VUID-VkSemaphoreSignalInfo-value-03259", - "text": " value must be less than the value of any pending semaphore signal operations" + "text": "value must be less than the value of any pending semaphore signal operations", + "page": "vkspec" }, { "vuid": "VUID-VkSemaphoreSignalInfo-value-03260", - "text": " value must have a value which does not differ from the current value of the semaphore or the value of any outstanding semaphore wait or signal operation on semaphore by more than maxTimelineSemaphoreValueDifference" + "text": "value must have a value which does not differ from the current value of the semaphore or the value of any outstanding semaphore wait or signal operation on semaphore by more than maxTimelineSemaphoreValueDifference", + "page": "vkspec" }, { "vuid": "VUID-VkSemaphoreSignalInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkSemaphoreSignalInfo-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkSemaphoreSignalInfo-semaphore-parameter", - "text": " semaphore must be a valid VkSemaphore handle" + "text": "semaphore must be a valid VkSemaphore handle", + "page": "vkspec" } ] }, @@ -3278,11 +4019,13 @@ "core": [ { "vuid": "VUID-vkImportSemaphoreWin32HandleKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkImportSemaphoreWin32HandleKHR-pImportSemaphoreWin32HandleInfo-parameter", - "text": " pImportSemaphoreWin32HandleInfo must be a valid pointer to a valid VkImportSemaphoreWin32HandleInfoKHR structure" + "text": "pImportSemaphoreWin32HandleInfo must be a valid pointer to a valid VkImportSemaphoreWin32HandleInfoKHR structure", + "page": "vkspec" } ] }, @@ -3290,59 +4033,73 @@ "core": [ { "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-01140", - "text": " handleType must be a value included in the Handle Types Supported by VkImportSemaphoreWin32HandleInfoKHR table" + "text": "handleType must be a value included in the Handle Types Supported by VkImportSemaphoreWin32HandleInfoKHR table", + "page": "vkspec" }, { "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-01466", - "text": " If handleType is not VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT or VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT, name must be NULL" + "text": "If handleType is not VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT or VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT, name must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-01467", - "text": " If handle is NULL, name must name a valid synchronization primitive of the type specified by handleType" + "text": "If handle is NULL, name must name a valid synchronization primitive of the type specified by handleType", + "page": "vkspec" }, { "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-01468", - "text": " If name is NULL, handle must be a valid handle of the type specified by handleType" + "text": "If name is NULL, handle must be a valid handle of the type specified by handleType", + "page": "vkspec" }, { "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-handle-01469", - "text": " If handle is not NULL, name must be NULL" + "text": "If handle is not NULL, name must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-handle-01542", - "text": " If handle is not NULL, it must obey any requirements listed for handleType in external semaphore handle types compatibility" + "text": "If handle is not NULL, it must obey any requirements listed for handleType in external semaphore handle types compatibility", + "page": "vkspec" }, { "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-name-01543", - "text": " If name is not NULL, it must obey any requirements listed for handleType in external semaphore handle types compatibility" + "text": "If name is not NULL, it must obey any requirements listed for handleType in external semaphore handle types compatibility", + "page": "vkspec" }, { "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-03261", - "text": " If handleType is VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT or VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT, the VkSemaphoreCreateInfo::flags field must match that of the semaphore from which handle or name was exported" + "text": "If handleType is VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT or VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT, the VkSemaphoreCreateInfo::flags field must match that of the semaphore from which handle or name was exported", + "page": "vkspec" }, { "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-03262", - "text": " If handleType is VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT or VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT, the VkSemaphoreTypeCreateInfo::semaphoreType field must match that of the semaphore from which handle or name was exported" + "text": "If handleType is VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT or VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT, the VkSemaphoreTypeCreateInfo::semaphoreType field must match that of the semaphore from which handle or name was exported", + "page": "vkspec" }, { "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-flags-03322", - "text": " If flags contains VK_SEMAPHORE_IMPORT_TEMPORARY_BIT, the VkSemaphoreTypeCreateInfo::semaphoreType field of the semaphore from which handle or name was exported must not be VK_SEMAPHORE_TYPE_TIMELINE" + "text": "If flags contains VK_SEMAPHORE_IMPORT_TEMPORARY_BIT, the VkSemaphoreTypeCreateInfo::semaphoreType field of the semaphore from which handle or name was exported must not be VK_SEMAPHORE_TYPE_TIMELINE", + "page": "vkspec" }, { "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-semaphore-parameter", - "text": " semaphore must be a valid VkSemaphore handle" + "text": "semaphore must be a valid VkSemaphore handle", + "page": "vkspec" }, { "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-flags-parameter", - "text": " flags must be a valid combination of VkSemaphoreImportFlagBits values" + "text": "flags must be a valid combination of VkSemaphoreImportFlagBits values", + "page": "vkspec" } ] }, @@ -3350,15 +4107,18 @@ "core": [ { "vuid": "VUID-vkImportSemaphoreFdKHR-semaphore-01142", - "text": " semaphore must not be associated with any queue command that has not yet completed execution on that queue" + "text": "semaphore must not be associated with any queue command that has not yet completed execution on that queue", + "page": "vkspec" }, { "vuid": "VUID-vkImportSemaphoreFdKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkImportSemaphoreFdKHR-pImportSemaphoreFdInfo-parameter", - "text": " pImportSemaphoreFdInfo must be a valid pointer to a valid VkImportSemaphoreFdInfoKHR structure" + "text": "pImportSemaphoreFdInfo must be a valid pointer to a valid VkImportSemaphoreFdInfoKHR structure", + "page": "vkspec" } ] }, @@ -3366,47 +4126,58 @@ "core": [ { "vuid": "VUID-VkImportSemaphoreFdInfoKHR-handleType-01143", - "text": " handleType must be a value included in the Handle Types Supported by VkImportSemaphoreFdInfoKHR table" + "text": "handleType must be a value included in the Handle Types Supported by VkImportSemaphoreFdInfoKHR table", + "page": "vkspec" }, { "vuid": "VUID-VkImportSemaphoreFdInfoKHR-fd-01544", - "text": " fd must obey any requirements listed for handleType in external semaphore handle types compatibility" + "text": "fd must obey any requirements listed for handleType in external semaphore handle types compatibility", + "page": "vkspec" }, { "vuid": "VUID-VkImportSemaphoreFdInfoKHR-handleType-03263", - "text": " If handleType is VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT, the VkSemaphoreCreateInfo::flags field must match that of the semaphore from which fd was exported" + "text": "If handleType is VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT, the VkSemaphoreCreateInfo::flags field must match that of the semaphore from which fd was exported", + "page": "vkspec" }, { "vuid": "VUID-VkImportSemaphoreFdInfoKHR-handleType-07307", - "text": " If handleType refers to a handle type with copy payload transference semantics, flags must contain VK_SEMAPHORE_IMPORT_TEMPORARY_BIT" + "text": "If handleType refers to a handle type with copy payload transference semantics, flags must contain VK_SEMAPHORE_IMPORT_TEMPORARY_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImportSemaphoreFdInfoKHR-handleType-03264", - "text": " If handleType is VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT, the VkSemaphoreTypeCreateInfo::semaphoreType field must match that of the semaphore from which fd was exported" + "text": "If handleType is VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT, the VkSemaphoreTypeCreateInfo::semaphoreType field must match that of the semaphore from which fd was exported", + "page": "vkspec" }, { "vuid": "VUID-VkImportSemaphoreFdInfoKHR-flags-03323", - "text": " If flags contains VK_SEMAPHORE_IMPORT_TEMPORARY_BIT, the VkSemaphoreTypeCreateInfo::semaphoreType field of the semaphore from which fd was exported must not be VK_SEMAPHORE_TYPE_TIMELINE" + "text": "If flags contains VK_SEMAPHORE_IMPORT_TEMPORARY_BIT, the VkSemaphoreTypeCreateInfo::semaphoreType field of the semaphore from which fd was exported must not be VK_SEMAPHORE_TYPE_TIMELINE", + "page": "vkspec" }, { "vuid": "VUID-VkImportSemaphoreFdInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkImportSemaphoreFdInfoKHR-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkImportSemaphoreFdInfoKHR-semaphore-parameter", - "text": " semaphore must be a valid VkSemaphore handle" + "text": "semaphore must be a valid VkSemaphore handle", + "page": "vkspec" }, { "vuid": "VUID-VkImportSemaphoreFdInfoKHR-flags-parameter", - "text": " flags must be a valid combination of VkSemaphoreImportFlagBits values" + "text": "flags must be a valid combination of VkSemaphoreImportFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkImportSemaphoreFdInfoKHR-handleType-parameter", - "text": " handleType must be a valid VkExternalSemaphoreHandleTypeFlagBits value" + "text": "handleType must be a valid VkExternalSemaphoreHandleTypeFlagBits value", + "page": "vkspec" } ] }, @@ -3414,15 +4185,18 @@ "core": [ { "vuid": "VUID-vkImportSemaphoreZirconHandleFUCHSIA-semaphore-04764", - "text": " semaphore must not be associated with any queue command that has not yet completed execution on that queue" + "text": "semaphore must not be associated with any queue command that has not yet completed execution on that queue", + "page": "vkspec" }, { "vuid": "VUID-vkImportSemaphoreZirconHandleFUCHSIA-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkImportSemaphoreZirconHandleFUCHSIA-pImportSemaphoreZirconHandleInfo-parameter", - "text": " pImportSemaphoreZirconHandleInfo must be a valid pointer to a valid VkImportSemaphoreZirconHandleInfoFUCHSIA structure" + "text": "pImportSemaphoreZirconHandleInfo must be a valid pointer to a valid VkImportSemaphoreZirconHandleInfoFUCHSIA structure", + "page": "vkspec" } ] }, @@ -3430,39 +4204,48 @@ "core": [ { "vuid": "VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-handleType-04765", - "text": " handleType must be a value included in the Handle Types Supported by VkImportSemaphoreZirconHandleInfoFUCHSIA table" + "text": "handleType must be a value included in the Handle Types Supported by VkImportSemaphoreZirconHandleInfoFUCHSIA table", + "page": "vkspec" }, { "vuid": "VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-zirconHandle-04766", - "text": " zirconHandle must obey any requirements listed for handleType in external semaphore handle types compatibility" + "text": "zirconHandle must obey any requirements listed for handleType in external semaphore handle types compatibility", + "page": "vkspec" }, { "vuid": "VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-zirconHandle-04767", - "text": " zirconHandle must have ZX_RIGHTS_BASIC and ZX_RIGHTS_SIGNAL rights" + "text": "zirconHandle must have ZX_RIGHTS_BASIC and ZX_RIGHTS_SIGNAL rights", + "page": "vkspec" }, { "vuid": "VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-semaphoreType-04768", - "text": " The VkSemaphoreTypeCreateInfo::semaphoreType field must not be VK_SEMAPHORE_TYPE_TIMELINE" + "text": "The VkSemaphoreTypeCreateInfo::semaphoreType field must not be VK_SEMAPHORE_TYPE_TIMELINE", + "page": "vkspec" }, { "vuid": "VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA" + "text": "sType must be VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA", + "page": "vkspec" }, { "vuid": "VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-semaphore-parameter", - "text": " semaphore must be a valid VkSemaphore handle" + "text": "semaphore must be a valid VkSemaphore handle", + "page": "vkspec" }, { "vuid": "VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-flags-parameter", - "text": " flags must be a valid combination of VkSemaphoreImportFlagBits values" + "text": "flags must be a valid combination of VkSemaphoreImportFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-handleType-parameter", - "text": " handleType must be a valid VkExternalSemaphoreHandleTypeFlagBits value" + "text": "handleType must be a valid VkExternalSemaphoreHandleTypeFlagBits value", + "page": "vkspec" } ] }, @@ -3470,23 +4253,28 @@ "core": [ { "vuid": "VUID-vkCreateEvent-events-04468", - "text": " If the VK_KHR_portability_subset extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::events is VK_FALSE, then the implementation does not support events, and vkCreateEvent must not be used" + "text": "If the VK_KHR_portability_subset extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::events is VK_FALSE, then the implementation does not support events, and vkCreateEvent must not be used", + "page": "vkspec" }, { "vuid": "VUID-vkCreateEvent-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkCreateEvent-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkEventCreateInfo structure" + "text": "pCreateInfo must be a valid pointer to a valid VkEventCreateInfo structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateEvent-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateEvent-pEvent-parameter", - "text": " pEvent must be a valid pointer to a VkEvent handle" + "text": "pEvent must be a valid pointer to a VkEvent handle", + "page": "vkspec" } ] }, @@ -3494,23 +4282,28 @@ "core": [ { "vuid": "VUID-VkEventCreateInfo-pNext-06790", - "text": " If the pNext chain includes a VkExportMetalObjectCreateInfoEXT structure, its exportObjectType member must be VK_EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT" + "text": "If the pNext chain includes a VkExportMetalObjectCreateInfoEXT structure, its exportObjectType member must be VK_EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkEventCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_EVENT_CREATE_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_EVENT_CREATE_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkEventCreateInfo-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 VkExportMetalObjectCreateInfoEXT or VkImportMetalSharedEventInfoEXT" + "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 VkExportMetalObjectCreateInfoEXT or VkImportMetalSharedEventInfoEXT", + "page": "vkspec" }, { "vuid": "VUID-VkEventCreateInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique, with the exception of structures of type VkExportMetalObjectCreateInfoEXT" + "text": "The sType value of each struct in the pNext chain must be unique, with the exception of structures of type VkExportMetalObjectCreateInfoEXT", + "page": "vkspec" }, { "vuid": "VUID-VkEventCreateInfo-flags-parameter", - "text": " flags must be a valid combination of VkEventCreateFlagBits values" + "text": "flags must be a valid combination of VkEventCreateFlagBits values", + "page": "vkspec" } ] }, @@ -3518,31 +4311,38 @@ "core": [ { "vuid": "VUID-vkDestroyEvent-event-01145", - "text": " All submitted commands that refer to event must have completed execution" + "text": "All submitted commands that refer to event must have completed execution", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyEvent-event-01146", - "text": " If VkAllocationCallbacks were provided when event was created, a compatible set of callbacks must be provided here" + "text": "If VkAllocationCallbacks were provided when event was created, a compatible set of callbacks must be provided here", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyEvent-event-01147", - "text": " If no VkAllocationCallbacks were provided when event was created, pAllocator must be NULL" + "text": "If no VkAllocationCallbacks were provided when event was created, pAllocator must be NULL", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyEvent-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyEvent-event-parameter", - "text": " If event is not VK_NULL_HANDLE, event must be a valid VkEvent handle" + "text": "If event is not VK_NULL_HANDLE, event must be a valid VkEvent handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyEvent-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyEvent-event-parent", - "text": " If event is a valid handle, it must have been created, allocated, or retrieved from device" + "text": "If event is a valid handle, it must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -3550,19 +4350,23 @@ "core": [ { "vuid": "VUID-vkGetEventStatus-event-03940", - "text": " event must not have been created with VK_EVENT_CREATE_DEVICE_ONLY_BIT" + "text": "event must not have been created with VK_EVENT_CREATE_DEVICE_ONLY_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkGetEventStatus-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetEventStatus-event-parameter", - "text": " event must be a valid VkEvent handle" + "text": "event must be a valid VkEvent handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetEventStatus-event-parent", - "text": " event must have been created, allocated, or retrieved from device" + "text": "event must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -3570,19 +4374,23 @@ "core": [ { "vuid": "VUID-vkSetEvent-event-03941", - "text": " event must not have been created with VK_EVENT_CREATE_DEVICE_ONLY_BIT" + "text": "event must not have been created with VK_EVENT_CREATE_DEVICE_ONLY_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkSetEvent-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkSetEvent-event-parameter", - "text": " event must be a valid VkEvent handle" + "text": "event must be a valid VkEvent handle", + "page": "vkspec" }, { "vuid": "VUID-vkSetEvent-event-parent", - "text": " event must have been created, allocated, or retrieved from device" + "text": "event must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -3590,27 +4398,33 @@ "core": [ { "vuid": "VUID-vkResetEvent-event-03821", - "text": " There must be an execution dependency between vkResetEvent and the execution of any vkCmdWaitEvents that includes event in its pEvents parameter" + "text": "There must be an execution dependency between vkResetEvent and the execution of any vkCmdWaitEvents that includes event in its pEvents parameter", + "page": "vkspec" }, { "vuid": "VUID-vkResetEvent-event-03822", - "text": " There must be an execution dependency between vkResetEvent and the execution of any vkCmdWaitEvents2 that includes event in its pEvents parameter" + "text": "There must be an execution dependency between vkResetEvent and the execution of any vkCmdWaitEvents2 that includes event in its pEvents parameter", + "page": "vkspec" }, { "vuid": "VUID-vkResetEvent-event-03823", - "text": " event must not have been created with VK_EVENT_CREATE_DEVICE_ONLY_BIT" + "text": "event must not have been created with VK_EVENT_CREATE_DEVICE_ONLY_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkResetEvent-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkResetEvent-event-parameter", - "text": " event must be a valid VkEvent handle" + "text": "event must be a valid VkEvent handle", + "page": "vkspec" }, { "vuid": "VUID-vkResetEvent-event-parent", - "text": " event must have been created, allocated, or retrieved from device" + "text": "event must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -3618,51 +4432,73 @@ "core": [ { "vuid": "VUID-vkCmdSetEvent2-synchronization2-03824", - "text": " The synchronization2 feature must be enabled" + "text": "The synchronization2 feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetEvent2-dependencyFlags-03825", - "text": " The dependencyFlags member of pDependencyInfo must be 0" + "text": "The dependencyFlags member of pDependencyInfo must be 0", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdSetEvent2-srcStageMask-09391", + "text": "The srcStageMask member of any element of the pMemoryBarriers, pBufferMemoryBarriers, or pImageMemoryBarriers members of pDependencyInfo must not include VK_PIPELINE_STAGE_2_HOST_BIT", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdSetEvent2-dstStageMask-09392", + "text": "The dstStageMask member of any element of the pMemoryBarriers, pBufferMemoryBarriers, or pImageMemoryBarriers members of pDependencyInfo must not include VK_PIPELINE_STAGE_2_HOST_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetEvent2-commandBuffer-03826", - "text": " The current device mask of commandBuffer must include exactly one physical device" + "text": "The current device mask of commandBuffer must include exactly one physical device", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetEvent2-srcStageMask-03827", - "text": " The srcStageMask member of any element of the pMemoryBarriers, pBufferMemoryBarriers, or pImageMemoryBarriers members of pDependencyInfo must only include pipeline stages valid for the queue family that was used to create the command pool that commandBuffer was allocated from" + "text": "The srcStageMask member of any element of the pMemoryBarriers, pBufferMemoryBarriers, or pImageMemoryBarriers members of pDependencyInfo must only include pipeline stages valid for the queue family that was used to create the command pool that commandBuffer was allocated from", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetEvent2-dstStageMask-03828", - "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" + "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": "vkspec" }, { "vuid": "VUID-vkCmdSetEvent2-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetEvent2-event-parameter", - "text": " event must be a valid VkEvent handle" + "text": "event must be a valid VkEvent handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetEvent2-pDependencyInfo-parameter", - "text": " pDependencyInfo must be a valid pointer to a valid VkDependencyInfo structure" + "text": "pDependencyInfo must be a valid pointer to a valid VkDependencyInfo structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetEvent2-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetEvent2-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, compute, decode, or encode operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics, compute, decode, or encode operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetEvent2-renderpass", - "text": " This command must only be called outside of a render pass instance" + "text": "This command must only be called outside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetEvent2-commonparent", - "text": " Both of commandBuffer, and event must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of commandBuffer, and event must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -3670,27 +4506,33 @@ "core": [ { "vuid": "VUID-VkDependencyInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEPENDENCY_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_DEPENDENCY_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkDependencyInfo-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkDependencyInfo-dependencyFlags-parameter", - "text": " dependencyFlags must be a valid combination of VkDependencyFlagBits values" + "text": "dependencyFlags must be a valid combination of VkDependencyFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkDependencyInfo-pMemoryBarriers-parameter", - "text": " If memoryBarrierCount is not 0, pMemoryBarriers must be a valid pointer to an array of memoryBarrierCount valid VkMemoryBarrier2 structures" + "text": "If memoryBarrierCount is not 0, pMemoryBarriers must be a valid pointer to an array of memoryBarrierCount valid VkMemoryBarrier2 structures", + "page": "vkspec" }, { "vuid": "VUID-VkDependencyInfo-pBufferMemoryBarriers-parameter", - "text": " If bufferMemoryBarrierCount is not 0, pBufferMemoryBarriers must be a valid pointer to an array of bufferMemoryBarrierCount valid VkBufferMemoryBarrier2 structures" + "text": "If bufferMemoryBarrierCount is not 0, pBufferMemoryBarriers must be a valid pointer to an array of bufferMemoryBarrierCount valid VkBufferMemoryBarrier2 structures", + "page": "vkspec" }, { "vuid": "VUID-VkDependencyInfo-pImageMemoryBarriers-parameter", - "text": " If imageMemoryBarrierCount is not 0, pImageMemoryBarriers must be a valid pointer to an array of imageMemoryBarrierCount valid VkImageMemoryBarrier2 structures" + "text": "If imageMemoryBarrierCount is not 0, pImageMemoryBarriers must be a valid pointer to an array of imageMemoryBarrierCount valid VkImageMemoryBarrier2 structures", + "page": "vkspec" } ] }, @@ -3698,83 +4540,103 @@ "core": [ { "vuid": "VUID-vkCmdSetEvent-stageMask-04090", - "text": " If the geometryShader feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT" + "text": "If the geometryShader feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetEvent-stageMask-04091", - "text": " If the tessellationShader feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT" + "text": "If the tessellationShader feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetEvent-stageMask-04092", - "text": " If the conditionalRendering feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT" + "text": "If the conditionalRendering feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetEvent-stageMask-04093", - "text": " If the fragmentDensityMap feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT" + "text": "If the fragmentDensityMap feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetEvent-stageMask-04094", - "text": " If the transformFeedback feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT" + "text": "If the transformFeedback feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetEvent-stageMask-04095", - "text": " If the meshShader feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT" + "text": "If the meshShader feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetEvent-stageMask-04096", - "text": " If the taskShader feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT" + "text": "If the taskShader feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetEvent-stageMask-07318", - "text": " If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR" + "text": "If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, stageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetEvent-stageMask-03937", - "text": " If the synchronization2 feature is not enabled, pname:stageMask must not be 0" + "text": "If the synchronization2 feature is not enabled, stageMask must not be 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetEvent-stageMask-07949", - "text": " If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR" + "text": "If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, stageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetEvent-stageMask-06457", - "text": " Any pipeline stage included in stageMask must be supported by the capabilities of the queue family specified by the queueFamilyIndex member of the VkCommandPoolCreateInfo structure that was used to create the VkCommandPool that commandBuffer was allocated from, as specified in the table of supported pipeline stages" + "text": "Any pipeline stage included in stageMask must be supported by the capabilities of the queue family specified by the queueFamilyIndex member of the VkCommandPoolCreateInfo structure that was used to create the VkCommandPool that commandBuffer was allocated from, as specified in the table of supported pipeline stages", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetEvent-stageMask-01149", - "text": " stageMask must not include VK_PIPELINE_STAGE_HOST_BIT" + "text": "stageMask must not include VK_PIPELINE_STAGE_HOST_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetEvent-commandBuffer-01152", - "text": " commandBuffer’s current device mask must include exactly one physical device" + "text": "The current device mask of commandBuffer must include exactly one physical device", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetEvent-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetEvent-event-parameter", - "text": " event must be a valid VkEvent handle" + "text": "event must be a valid VkEvent handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetEvent-stageMask-parameter", - "text": " stageMask must be a valid combination of VkPipelineStageFlagBits values" + "text": "stageMask must be a valid combination of VkPipelineStageFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetEvent-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetEvent-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, compute, decode, or encode operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics, compute, decode, or encode operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetEvent-renderpass", - "text": " This command must only be called outside of a render pass instance" + "text": "This command must only be called outside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetEvent-commonparent", - "text": " Both of commandBuffer, and event must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of commandBuffer, and event must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -3782,95 +4644,118 @@ "core": [ { "vuid": "VUID-vkCmdResetEvent2-stageMask-03929", - "text": " If the geometryShader feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT" + "text": "If the geometryShader feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResetEvent2-stageMask-03930", - "text": " If the tessellationShader feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT" + "text": "If the tessellationShader feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResetEvent2-stageMask-03931", - "text": " If the conditionalRendering feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT" + "text": "If the conditionalRendering feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResetEvent2-stageMask-03932", - "text": " If the fragmentDensityMap feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT" + "text": "If the fragmentDensityMap feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResetEvent2-stageMask-03933", - "text": " If the transformFeedback feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT" + "text": "If the transformFeedback feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResetEvent2-stageMask-03934", - "text": " If the meshShader feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT" + "text": "If the meshShader feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResetEvent2-stageMask-03935", - "text": " If the taskShader feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT" + "text": "If the taskShader feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResetEvent2-stageMask-07316", - "text": " If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR" + "text": "If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, stageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResetEvent2-stageMask-04957", - "text": " If the subpassShading feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI" + "text": "If the subpassShading feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResetEvent2-stageMask-04995", - "text": " If the invocationMask feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI" + "text": "If the invocationMask feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResetEvent2-stageMask-07946", - "text": " If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR" + "text": "If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, stageMask must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResetEvent2-synchronization2-03829", - "text": " The synchronization2 feature must be enabled" + "text": "The synchronization2 feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResetEvent2-stageMask-03830", - "text": " stageMask must not include VK_PIPELINE_STAGE_2_HOST_BIT" + "text": "stageMask must not include VK_PIPELINE_STAGE_2_HOST_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResetEvent2-event-03831", - "text": " There must be an execution dependency between vkCmdResetEvent2 and the execution of any vkCmdWaitEvents that includes event in its pEvents parameter" + "text": "There must be an execution dependency between vkCmdResetEvent2 and the execution of any vkCmdWaitEvents that includes event in its pEvents parameter", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResetEvent2-event-03832", - "text": " There must be an execution dependency between vkCmdResetEvent2 and the execution of any vkCmdWaitEvents2 that includes event in its pEvents parameter" + "text": "There must be an execution dependency between vkCmdResetEvent2 and the execution of any vkCmdWaitEvents2 that includes event in its pEvents parameter", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResetEvent2-commandBuffer-03833", - "text": " commandBuffer’s current device mask must include exactly one physical device" + "text": "commandBuffer’s current device mask must include exactly one physical device", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResetEvent2-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResetEvent2-event-parameter", - "text": " event must be a valid VkEvent handle" + "text": "event must be a valid VkEvent handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResetEvent2-stageMask-parameter", - "text": " stageMask must be a valid combination of VkPipelineStageFlagBits2 values" + "text": "stageMask must be a valid combination of VkPipelineStageFlagBits2 values", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResetEvent2-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResetEvent2-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, compute, decode, or encode operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics, compute, decode, or encode operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResetEvent2-renderpass", - "text": " This command must only be called outside of a render pass instance" + "text": "This command must only be called outside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResetEvent2-commonparent", - "text": " Both of commandBuffer, and event must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of commandBuffer, and event must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -3878,91 +4763,113 @@ "core": [ { "vuid": "VUID-vkCmdResetEvent-stageMask-04090", - "text": " If the geometryShader feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT" + "text": "If the geometryShader feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResetEvent-stageMask-04091", - "text": " If the tessellationShader feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT" + "text": "If the tessellationShader feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResetEvent-stageMask-04092", - "text": " If the conditionalRendering feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT" + "text": "If the conditionalRendering feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResetEvent-stageMask-04093", - "text": " If the fragmentDensityMap feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT" + "text": "If the fragmentDensityMap feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResetEvent-stageMask-04094", - "text": " If the transformFeedback feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT" + "text": "If the transformFeedback feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResetEvent-stageMask-04095", - "text": " If the meshShader feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT" + "text": "If the meshShader feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResetEvent-stageMask-04096", - "text": " If the taskShader feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT" + "text": "If the taskShader feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResetEvent-stageMask-07318", - "text": " If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR" + "text": "If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, stageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResetEvent-stageMask-03937", - "text": " If the synchronization2 feature is not enabled, pname:stageMask must not be 0" + "text": "If the synchronization2 feature is not enabled, stageMask must not be 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResetEvent-stageMask-07949", - "text": " If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR" + "text": "If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, stageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResetEvent-stageMask-06458", - "text": " Any pipeline stage included in stageMask must be supported by the capabilities of the queue family specified by the queueFamilyIndex member of the VkCommandPoolCreateInfo structure that was used to create the VkCommandPool that commandBuffer was allocated from, as specified in the table of supported pipeline stages" + "text": "Any pipeline stage included in stageMask must be supported by the capabilities of the queue family specified by the queueFamilyIndex member of the VkCommandPoolCreateInfo structure that was used to create the VkCommandPool that commandBuffer was allocated from, as specified in the table of supported pipeline stages", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResetEvent-stageMask-01153", - "text": " stageMask must not include VK_PIPELINE_STAGE_HOST_BIT" + "text": "stageMask must not include VK_PIPELINE_STAGE_HOST_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResetEvent-event-03834", - "text": " There must be an execution dependency between vkCmdResetEvent and the execution of any vkCmdWaitEvents that includes event in its pEvents parameter" + "text": "There must be an execution dependency between vkCmdResetEvent and the execution of any vkCmdWaitEvents that includes event in its pEvents parameter", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResetEvent-event-03835", - "text": " There must be an execution dependency between vkCmdResetEvent and the execution of any vkCmdWaitEvents2 that includes event in its pEvents parameter" + "text": "There must be an execution dependency between vkCmdResetEvent and the execution of any vkCmdWaitEvents2 that includes event in its pEvents parameter", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResetEvent-commandBuffer-01157", - "text": " commandBuffer’s current device mask must include exactly one physical device" + "text": "commandBuffer’s current device mask must include exactly one physical device", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResetEvent-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResetEvent-event-parameter", - "text": " event must be a valid VkEvent handle" + "text": "event must be a valid VkEvent handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResetEvent-stageMask-parameter", - "text": " stageMask must be a valid combination of VkPipelineStageFlagBits values" + "text": "stageMask must be a valid combination of VkPipelineStageFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResetEvent-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResetEvent-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, compute, decode, or encode operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics, compute, decode, or encode operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResetEvent-renderpass", - "text": " This command must only be called outside of a render pass instance" + "text": "This command must only be called outside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResetEvent-commonparent", - "text": " Both of commandBuffer, and event must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of commandBuffer, and event must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -3970,71 +4877,88 @@ "core": [ { "vuid": "VUID-vkCmdWaitEvents2-synchronization2-03836", - "text": " The synchronization2 feature must be enabled" + "text": "The synchronization2 feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWaitEvents2-pEvents-03837", - "text": " Members of pEvents must not have been signaled by vkCmdSetEvent" + "text": "Members of pEvents must not have been signaled by vkCmdSetEvent", + "page": "vkspec" }, { "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" + "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", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWaitEvents2-pEvents-03839", - "text": " For any element i of pEvents, if that event is signaled by vkSetEvent, barriers in the ith element of pDependencyInfos must include only host operations in their first synchronization scope" + "text": "For any element i of pEvents, if that event is signaled by vkSetEvent, barriers in the ith element of pDependencyInfos must include only host operations in their first synchronization scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWaitEvents2-pEvents-03840", - "text": " For any element i of pEvents, if barriers in the ith element of pDependencyInfos include only host operations, the ith element of pEvents must be signaled before vkCmdWaitEvents2 is executed" + "text": "For any element i of pEvents, if barriers in the ith element of pDependencyInfos include only host operations, the ith element of pEvents must be signaled before vkCmdWaitEvents2 is executed", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWaitEvents2-pEvents-03841", - "text": " For any element i of pEvents, if barriers in the ith element of pDependencyInfos do not include host operations, the ith element of pEvents must be signaled by a corresponding vkCmdSetEvent2 that occurred earlier in submission order" + "text": "For any element i of pEvents, if barriers in the ith element of pDependencyInfos do not include host operations, the ith element of pEvents must be signaled by a corresponding vkCmdSetEvent2 that occurred earlier in submission order", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWaitEvents2-srcStageMask-03842", - "text": " The srcStageMask member of any element of the pMemoryBarriers, pBufferMemoryBarriers, or pImageMemoryBarriers members of pDependencyInfos must either include only pipeline stages valid for the queue family that was used to create the command pool that commandBuffer was allocated from, or include only VK_PIPELINE_STAGE_2_HOST_BIT" + "text": "The srcStageMask member of any element of the pMemoryBarriers, pBufferMemoryBarriers, or pImageMemoryBarriers members of pDependencyInfos must either include only pipeline stages valid for the queue family that was used to create the command pool that commandBuffer was allocated from, or include only VK_PIPELINE_STAGE_2_HOST_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWaitEvents2-dstStageMask-03843", - "text": " The dstStageMask member of any element of the pMemoryBarriers, pBufferMemoryBarriers, or pImageMemoryBarriers members of pDependencyInfos must only include pipeline stages valid for the queue family that was used to create the command pool that commandBuffer was allocated from" + "text": "The dstStageMask member of any element of the pMemoryBarriers, pBufferMemoryBarriers, or pImageMemoryBarriers members of pDependencyInfos must only include pipeline stages valid for the queue family that was used to create the command pool that commandBuffer was allocated from", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWaitEvents2-dependencyFlags-03844", - "text": " If vkCmdWaitEvents2 is being called inside a render pass instance, the srcStageMask member of any element of the pMemoryBarriers, pBufferMemoryBarriers, or pImageMemoryBarriers members of pDependencyInfos must not include VK_PIPELINE_STAGE_2_HOST_BIT" + "text": "If vkCmdWaitEvents2 is being called inside a render pass instance, the srcStageMask member of any element of the pMemoryBarriers, pBufferMemoryBarriers, or pImageMemoryBarriers members of pDependencyInfos must not include VK_PIPELINE_STAGE_2_HOST_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWaitEvents2-commandBuffer-03846", - "text": " commandBuffer’s current device mask must include exactly one physical device" + "text": "commandBuffer’s current device mask must include exactly one physical device", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWaitEvents2-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWaitEvents2-pEvents-parameter", - "text": " pEvents must be a valid pointer to an array of eventCount valid VkEvent handles" + "text": "pEvents must be a valid pointer to an array of eventCount valid VkEvent handles", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWaitEvents2-pDependencyInfos-parameter", - "text": " pDependencyInfos must be a valid pointer to an array of eventCount valid VkDependencyInfo structures" + "text": "pDependencyInfos must be a valid pointer to an array of eventCount valid VkDependencyInfo structures", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWaitEvents2-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWaitEvents2-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, compute, decode, or encode operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics, compute, decode, or encode operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWaitEvents2-eventCount-arraylength", - "text": " eventCount must be greater than 0" + "text": "eventCount must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWaitEvents2-commonparent", - "text": " Both of commandBuffer, and the elements of pEvents must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of commandBuffer, and the elements of pEvents must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -4042,179 +4966,233 @@ "core": [ { "vuid": "VUID-vkCmdWaitEvents-srcStageMask-04090", - "text": " If the geometryShader feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT" + "text": "If the geometryShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWaitEvents-srcStageMask-04091", - "text": " If the tessellationShader feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT" + "text": "If the tessellationShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWaitEvents-srcStageMask-04092", - "text": " If the conditionalRendering feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT" + "text": "If the conditionalRendering feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWaitEvents-srcStageMask-04093", - "text": " If the fragmentDensityMap feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT" + "text": "If the fragmentDensityMap feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWaitEvents-srcStageMask-04094", - "text": " If the transformFeedback feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT" + "text": "If the transformFeedback feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWaitEvents-srcStageMask-04095", - "text": " If the meshShader feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT" + "text": "If the meshShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWaitEvents-srcStageMask-04096", - "text": " If the taskShader feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT" + "text": "If the taskShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWaitEvents-srcStageMask-07318", - "text": " If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR" + "text": "If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, srcStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWaitEvents-srcStageMask-03937", - "text": " If the synchronization2 feature is not enabled, pname:srcStageMask must not be 0" + "text": "If the synchronization2 feature is not enabled, srcStageMask must not be 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWaitEvents-srcStageMask-07949", - "text": " If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR" + "text": "If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, srcStageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdWaitEvents-srcAccessMask-06257", + "text": "If the rayQuery feature is not enabled and a memory barrier srcAccessMask includes VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR, srcStageMask must not include any of the VK_PIPELINE_STAGE_*_SHADER_BIT stages except VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWaitEvents-dstStageMask-04090", - "text": " If the geometryShader feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT" + "text": "If the geometryShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWaitEvents-dstStageMask-04091", - "text": " If the tessellationShader feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT" + "text": "If the tessellationShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWaitEvents-dstStageMask-04092", - "text": " If the conditionalRendering feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT" + "text": "If the conditionalRendering feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWaitEvents-dstStageMask-04093", - "text": " If the fragmentDensityMap feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT" + "text": "If the fragmentDensityMap feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWaitEvents-dstStageMask-04094", - "text": " If the transformFeedback feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT" + "text": "If the transformFeedback feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWaitEvents-dstStageMask-04095", - "text": " If the meshShader feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT" + "text": "If the meshShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWaitEvents-dstStageMask-04096", - "text": " If the taskShader feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT" + "text": "If the taskShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWaitEvents-dstStageMask-07318", - "text": " If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR" + "text": "If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, dstStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWaitEvents-dstStageMask-03937", - "text": " If the synchronization2 feature is not enabled, pname:dstStageMask must not be 0" + "text": "If the synchronization2 feature is not enabled, dstStageMask must not be 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWaitEvents-dstStageMask-07949", - "text": " If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR" + "text": "If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, dstStageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdWaitEvents-dstAccessMask-06257", + "text": "If the rayQuery feature is not enabled and a memory barrier dstAccessMask includes VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR, dstStageMask must not include any of the VK_PIPELINE_STAGE_*_SHADER_BIT stages except VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWaitEvents-srcAccessMask-02815", - "text": " The srcAccessMask member of each element of pMemoryBarriers must only include access flags that are supported by one or more of the pipeline stages in srcStageMask, as specified in the table of supported access types" + "text": "The srcAccessMask member of each element of pMemoryBarriers must only include access flags that are supported by one or more of the pipeline stages in srcStageMask, as specified in the table of supported access types", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWaitEvents-dstAccessMask-02816", - "text": " The dstAccessMask member of each element of pMemoryBarriers must only include access flags that are supported by one or more of the pipeline stages in dstStageMask, as specified in the table of supported access types" + "text": "The dstAccessMask member of each element of pMemoryBarriers must only include access flags that are supported by one or more of the pipeline stages in dstStageMask, as specified in the table of supported access types", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWaitEvents-pBufferMemoryBarriers-02817", - "text": " For any element of pBufferMemoryBarriers, if its srcQueueFamilyIndex and dstQueueFamilyIndex members are equal, or if its srcQueueFamilyIndex is the queue family index that was used to create the command pool that commandBuffer was allocated from, then its srcAccessMask member must only contain access flags that are supported by one or more of the pipeline stages in srcStageMask, as specified in the table of supported access types" + "text": "For any element of pBufferMemoryBarriers, if its srcQueueFamilyIndex and dstQueueFamilyIndex members are equal, or if its srcQueueFamilyIndex is the queue family index that was used to create the command pool that commandBuffer was allocated from, then its srcAccessMask member must only contain access flags that are supported by one or more of the pipeline stages in srcStageMask, as specified in the table of supported access types", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWaitEvents-pBufferMemoryBarriers-02818", - "text": " For any element of pBufferMemoryBarriers, if its srcQueueFamilyIndex and dstQueueFamilyIndex members are equal, or if its dstQueueFamilyIndex is the queue family index that was used to create the command pool that commandBuffer was allocated from, then its dstAccessMask member must only contain access flags that are supported by one or more of the pipeline stages in dstStageMask, as specified in the table of supported access types" + "text": "For any element of pBufferMemoryBarriers, if its srcQueueFamilyIndex and dstQueueFamilyIndex members are equal, or if its dstQueueFamilyIndex is the queue family index that was used to create the command pool that commandBuffer was allocated from, then its dstAccessMask member must only contain access flags that are supported by one or more of the pipeline stages in dstStageMask, as specified in the table of supported access types", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWaitEvents-pImageMemoryBarriers-02819", - "text": " For any element of pImageMemoryBarriers, if its srcQueueFamilyIndex and dstQueueFamilyIndex members are equal, or if its srcQueueFamilyIndex is the queue family index that was used to create the command pool that commandBuffer was allocated from, then its srcAccessMask member must only contain access flags that are supported by one or more of the pipeline stages in srcStageMask, as specified in the table of supported access types" + "text": "For any element of pImageMemoryBarriers, if its srcQueueFamilyIndex and dstQueueFamilyIndex members are equal, or if its srcQueueFamilyIndex is the queue family index that was used to create the command pool that commandBuffer was allocated from, then its srcAccessMask member must only contain access flags that are supported by one or more of the pipeline stages in srcStageMask, as specified in the table of supported access types", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWaitEvents-pImageMemoryBarriers-02820", - "text": " For any element of pImageMemoryBarriers, if its srcQueueFamilyIndex and dstQueueFamilyIndex members are equal, or if its dstQueueFamilyIndex is the queue family index that was used to create the command pool that commandBuffer was allocated from, then its dstAccessMask member must only contain access flags that are supported by one or more of the pipeline stages in dstStageMask, as specified in the table of supported access types" + "text": "For any element of pImageMemoryBarriers, if its srcQueueFamilyIndex and dstQueueFamilyIndex members are equal, or if its dstQueueFamilyIndex is the queue family index that was used to create the command pool that commandBuffer was allocated from, then its dstAccessMask member must only contain access flags that are supported by one or more of the pipeline stages in dstStageMask, as specified in the table of supported access types", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWaitEvents-srcStageMask-06459", - "text": " Any pipeline stage included in srcStageMask must be supported by the capabilities of the queue family specified by the queueFamilyIndex member of the VkCommandPoolCreateInfo structure that was used to create the VkCommandPool that commandBuffer was allocated from, as specified in the table of supported pipeline stages" + "text": "Any pipeline stage included in srcStageMask must be supported by the capabilities of the queue family specified by the queueFamilyIndex member of the VkCommandPoolCreateInfo structure that was used to create the VkCommandPool that commandBuffer was allocated from, as specified in the table of supported pipeline stages", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWaitEvents-dstStageMask-06460", - "text": " Any pipeline stage included in dstStageMask must be supported by the capabilities of the queue family specified by the queueFamilyIndex member of the VkCommandPoolCreateInfo structure that was used to create the VkCommandPool that commandBuffer was allocated from, as specified in the table of supported pipeline stages" + "text": "Any pipeline stage included in dstStageMask must be supported by the capabilities of the queue family specified by the queueFamilyIndex member of the VkCommandPoolCreateInfo structure that was used to create the VkCommandPool that commandBuffer was allocated from, as specified in the table of supported pipeline stages", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWaitEvents-srcStageMask-01158", - "text": " srcStageMask must be the bitwise OR of the stageMask parameter used in previous calls to vkCmdSetEvent with any of the elements of pEvents and VK_PIPELINE_STAGE_HOST_BIT if any of the elements of pEvents was set using vkSetEvent" + "text": "srcStageMask must be the bitwise OR of the stageMask parameter used in previous calls to vkCmdSetEvent with any of the elements of pEvents and VK_PIPELINE_STAGE_HOST_BIT if any of the elements of pEvents was set using vkSetEvent", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWaitEvents-srcStageMask-07308", - "text": " If vkCmdWaitEvents is being called inside a render pass instance, srcStageMask must not include VK_PIPELINE_STAGE_HOST_BIT" + "text": "If vkCmdWaitEvents is being called inside a render pass instance, srcStageMask must not include VK_PIPELINE_STAGE_HOST_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWaitEvents-srcQueueFamilyIndex-02803", - "text": " The srcQueueFamilyIndex and dstQueueFamilyIndex members of any element of pBufferMemoryBarriers or pImageMemoryBarriers must be equal" + "text": "The srcQueueFamilyIndex and dstQueueFamilyIndex members of any element of pBufferMemoryBarriers or pImageMemoryBarriers must be equal", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWaitEvents-commandBuffer-01167", - "text": " commandBuffer’s current device mask must include exactly one physical device" + "text": "commandBuffer’s current device mask must include exactly one physical device", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWaitEvents-pEvents-03847", - "text": " Elements of pEvents must not have been signaled by vkCmdSetEvent2" + "text": "Elements of pEvents must not have been signaled by vkCmdSetEvent2", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWaitEvents-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWaitEvents-pEvents-parameter", - "text": " pEvents must be a valid pointer to an array of eventCount valid VkEvent handles" + "text": "pEvents must be a valid pointer to an array of eventCount valid VkEvent handles", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWaitEvents-srcStageMask-parameter", - "text": " srcStageMask must be a valid combination of VkPipelineStageFlagBits values" + "text": "srcStageMask must be a valid combination of VkPipelineStageFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWaitEvents-dstStageMask-parameter", - "text": " dstStageMask must be a valid combination of VkPipelineStageFlagBits values" + "text": "dstStageMask must be a valid combination of VkPipelineStageFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWaitEvents-pMemoryBarriers-parameter", - "text": " If memoryBarrierCount is not 0, pMemoryBarriers must be a valid pointer to an array of memoryBarrierCount valid VkMemoryBarrier structures" + "text": "If memoryBarrierCount is not 0, pMemoryBarriers must be a valid pointer to an array of memoryBarrierCount valid VkMemoryBarrier structures", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWaitEvents-pBufferMemoryBarriers-parameter", - "text": " If bufferMemoryBarrierCount is not 0, pBufferMemoryBarriers must be a valid pointer to an array of bufferMemoryBarrierCount valid VkBufferMemoryBarrier structures" + "text": "If bufferMemoryBarrierCount is not 0, pBufferMemoryBarriers must be a valid pointer to an array of bufferMemoryBarrierCount valid VkBufferMemoryBarrier structures", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWaitEvents-pImageMemoryBarriers-parameter", - "text": " If imageMemoryBarrierCount is not 0, pImageMemoryBarriers must be a valid pointer to an array of imageMemoryBarrierCount valid VkImageMemoryBarrier structures" + "text": "If imageMemoryBarrierCount is not 0, pImageMemoryBarriers must be a valid pointer to an array of imageMemoryBarrierCount valid VkImageMemoryBarrier structures", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWaitEvents-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWaitEvents-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, compute, decode, or encode operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics, compute, decode, or encode operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWaitEvents-eventCount-arraylength", - "text": " eventCount must be greater than 0" + "text": "eventCount must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWaitEvents-commonparent", - "text": " Both of commandBuffer, and the elements of pEvents must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of commandBuffer, and the elements of pEvents must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -4222,79 +5200,108 @@ "core": [ { "vuid": "VUID-vkCmdPipelineBarrier2-None-07889", - "text": " If fname:vkCmdPipelineBarrier2 is called within a render pass instance using a VkRenderPass object, the render pass must have been created with at least one subpass dependency that expresses a dependency from the current subpass to itself, does not include VK_DEPENDENCY_BY_REGION_BIT if this command does not, does not include VK_DEPENDENCY_VIEW_LOCAL_BIT if this command does not, and has synchronization scopes and access scopes that are all supersets of the scopes defined in this command" + "text": "If vkCmdPipelineBarrier2 is called within a render pass instance using a VkRenderPass object, the render pass must have been created with at least one subpass dependency that expresses a dependency from the current subpass to itself, does not include VK_DEPENDENCY_BY_REGION_BIT if this command does not, does not include VK_DEPENDENCY_VIEW_LOCAL_BIT if this command does not, and has synchronization scopes and access scopes that are all supersets of the scopes defined in this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPipelineBarrier2-bufferMemoryBarrierCount-01178", - "text": " If fname:vkCmdPipelineBarrier2 is called within a render pass instance using a VkRenderPass object, it must not include any buffer memory barriers" + "text": "If vkCmdPipelineBarrier2 is called within a render pass instance using a VkRenderPass object, it must not include any buffer memory barriers", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPipelineBarrier2-image-04073", - "text": " If fname:vkCmdPipelineBarrier2 is called within a render pass instance using a VkRenderPass object, the image member of any image memory barrier included in this command must be an attachment used in the current subpass both as an input attachment, and as either a color or depth/stencil attachment" + "text": "If vkCmdPipelineBarrier2 is called within a render pass instance using a VkRenderPass object, the image member of any image memory barrier included in this command must be an attachment used in the current subpass both as an input attachment, and as either a color, color resolve, or depth/stencil attachment", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdPipelineBarrier2-image-09373", + "text": "If vkCmdPipelineBarrier2 is called within a render pass instance using a VkRenderPass object, and the image member of any image memory barrier is a color resolve attachment, the corresponding color attachment must be VK_ATTACHMENT_UNUSED", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdPipelineBarrier2-image-09374", + "text": "If vkCmdPipelineBarrier2 is called within a render pass instance using a VkRenderPass object, and the image member of any image memory barrier is a color resolve attachment, it must have been created with a non-zero VkExternalFormatANDROID::externalFormat value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPipelineBarrier2-oldLayout-01181", - "text": " If fname:vkCmdPipelineBarrier2 is called within a render pass instance, the oldLayout and newLayout members of any image memory barrier included in this command must be equal" + "text": "If vkCmdPipelineBarrier2 is called within a render pass instance, the oldLayout and newLayout members of any image memory barrier included in this command must be equal", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPipelineBarrier2-srcQueueFamilyIndex-01182", - "text": " If fname:vkCmdPipelineBarrier2 is called within a render pass instance, the srcQueueFamilyIndex and dstQueueFamilyIndex members of any memory barrier included in this command must be equal" + "text": "If vkCmdPipelineBarrier2 is called within a render pass instance, the srcQueueFamilyIndex and dstQueueFamilyIndex members of any memory barrier included in this command must be equal", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPipelineBarrier2-None-07890", - "text": " If fname:vkCmdPipelineBarrier2 is called within a render pass instance, and the source stage masks of any memory barriers include framebuffer-space stages, destination stage masks of all memory barriers must only include framebuffer-space stages" + "text": "If vkCmdPipelineBarrier2 is called within a render pass instance, and the source stage masks of any memory barriers include framebuffer-space stages, destination stage masks of all memory barriers must only include framebuffer-space stages", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPipelineBarrier2-dependencyFlags-07891", - "text": " If fname:vkCmdPipelineBarrier2 is called within a render pass instance, and and the source stage masks of any memory barriers include framebuffer-space stages, then dependencyFlags must include VK_DEPENDENCY_BY_REGION_BIT" + "text": "If vkCmdPipelineBarrier2 is called within a render pass instance, and and the source stage masks of any memory barriers include framebuffer-space stages, then dependencyFlags must include VK_DEPENDENCY_BY_REGION_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPipelineBarrier2-None-07892", - "text": " If fname:vkCmdPipelineBarrier2 is called within a render pass instance, the source and destination stage masks of any memory barriers must only include graphics pipeline stages" + "text": "If vkCmdPipelineBarrier2 is called within a render pass instance, the source and destination stage masks of any memory barriers must only include graphics pipeline stages", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPipelineBarrier2-dependencyFlags-01186", - "text": " If fname:vkCmdPipelineBarrier2 is called outside of a render pass instance, the dependency flags must not include VK_DEPENDENCY_VIEW_LOCAL_BIT" + "text": "If vkCmdPipelineBarrier2 is called outside of a render pass instance, the dependency flags must not include VK_DEPENDENCY_VIEW_LOCAL_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPipelineBarrier2-None-07893", - "text": " If fname:vkCmdPipelineBarrier2 is called inside a render pass instance, and there is more than one view in the current subpass, dependency flags must include VK_DEPENDENCY_VIEW_LOCAL_BIT" + "text": "If vkCmdPipelineBarrier2 is called inside a render pass instance, and there is more than one view in the current subpass, dependency flags must include VK_DEPENDENCY_VIEW_LOCAL_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPipelineBarrier2-shaderTileImageColorReadAccess-08718", - "text": " If fname:vkCmdPipelineBarrier2 is called within a render pass instance and none of the shaderTileImageColorReadAccess, shaderTileImageDepthReadAccess, shaderTileImageStencilReadAccess features are enabled, the render pass must not have been started with vkCmdBeginRendering" + "text": "If vkCmdPipelineBarrier2 is called within a render pass instance and none of the shaderTileImageColorReadAccess, shaderTileImageDepthReadAccess, shaderTileImageStencilReadAccess features are enabled, the render pass must not have been started with vkCmdBeginRendering", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPipelineBarrier2-None-08719", - "text": " If fname:vkCmdPipelineBarrier2 is called within a render pass instance started with vkCmdBeginRendering, it must adhere to the restrictions in Explicit Render Pass Tile Image Access Synchronization" + "text": "If vkCmdPipelineBarrier2 is called within a render pass instance started with vkCmdBeginRendering, it must adhere to the restrictions in Explicit Render Pass Tile Image Access Synchronization", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPipelineBarrier2-synchronization2-03848", - "text": " The synchronization2 feature must be enabled" + "text": "The synchronization2 feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPipelineBarrier2-srcStageMask-03849", - "text": " The srcStageMask member of any element of the pMemoryBarriers, pBufferMemoryBarriers, or pImageMemoryBarriers members of pDependencyInfo must only include pipeline stages valid for the queue family that was used to create the command pool that commandBuffer was allocated from" + "text": "The srcStageMask member of any element of the pMemoryBarriers, pBufferMemoryBarriers, or pImageMemoryBarriers members of pDependencyInfo must only include pipeline stages valid for the queue family that was used to create the command pool that commandBuffer was allocated from", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPipelineBarrier2-dstStageMask-03850", - "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" + "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": "vkspec" }, { "vuid": "VUID-vkCmdPipelineBarrier2-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPipelineBarrier2-pDependencyInfo-parameter", - "text": " pDependencyInfo must be a valid pointer to a valid VkDependencyInfo structure" + "text": "pDependencyInfo must be a valid pointer to a valid VkDependencyInfo structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPipelineBarrier2-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPipelineBarrier2-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, compute, decode, or encode operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, compute, decode, or encode operations", + "page": "vkspec" } ] }, @@ -4302,199 +5309,268 @@ "core": [ { "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-04090", - "text": " If the geometryShader feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT" + "text": "If the geometryShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-04091", - "text": " If the tessellationShader feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT" + "text": "If the tessellationShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-04092", - "text": " If the conditionalRendering feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT" + "text": "If the conditionalRendering feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-04093", - "text": " If the fragmentDensityMap feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT" + "text": "If the fragmentDensityMap feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-04094", - "text": " If the transformFeedback feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT" + "text": "If the transformFeedback feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-04095", - "text": " If the meshShader feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT" + "text": "If the meshShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-04096", - "text": " If the taskShader feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT" + "text": "If the taskShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-07318", - "text": " If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR" + "text": "If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, srcStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-03937", - "text": " If the synchronization2 feature is not enabled, pname:srcStageMask must not be 0" + "text": "If the synchronization2 feature is not enabled, srcStageMask must not be 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-07949", - "text": " If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR" + "text": "If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, srcStageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdPipelineBarrier-srcAccessMask-06257", + "text": "If the rayQuery feature is not enabled and a memory barrier srcAccessMask includes VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR, srcStageMask must not include any of the VK_PIPELINE_STAGE_*_SHADER_BIT stages except VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-04090", - "text": " If the geometryShader feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT" + "text": "If the geometryShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-04091", - "text": " If the tessellationShader feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT" + "text": "If the tessellationShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-04092", - "text": " If the conditionalRendering feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT" + "text": "If the conditionalRendering feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-04093", - "text": " If the fragmentDensityMap feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT" + "text": "If the fragmentDensityMap feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-04094", - "text": " If the transformFeedback feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT" + "text": "If the transformFeedback feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-04095", - "text": " If the meshShader feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT" + "text": "If the meshShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-04096", - "text": " If the taskShader feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT" + "text": "If the taskShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-07318", - "text": " If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR" + "text": "If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, dstStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-03937", - "text": " If the synchronization2 feature is not enabled, pname:dstStageMask must not be 0" + "text": "If the synchronization2 feature is not enabled, dstStageMask must not be 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-07949", - "text": " If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR" + "text": "If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, dstStageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdPipelineBarrier-dstAccessMask-06257", + "text": "If the rayQuery feature is not enabled and a memory barrier dstAccessMask includes VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR, dstStageMask must not include any of the VK_PIPELINE_STAGE_*_SHADER_BIT stages except VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPipelineBarrier-srcAccessMask-02815", - "text": " The srcAccessMask member of each element of pMemoryBarriers must only include access flags that are supported by one or more of the pipeline stages in srcStageMask, as specified in the table of supported access types" + "text": "The srcAccessMask member of each element of pMemoryBarriers must only include access flags that are supported by one or more of the pipeline stages in srcStageMask, as specified in the table of supported access types", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPipelineBarrier-dstAccessMask-02816", - "text": " The dstAccessMask member of each element of pMemoryBarriers must only include access flags that are supported by one or more of the pipeline stages in dstStageMask, as specified in the table of supported access types" + "text": "The dstAccessMask member of each element of pMemoryBarriers must only include access flags that are supported by one or more of the pipeline stages in dstStageMask, as specified in the table of supported access types", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPipelineBarrier-pBufferMemoryBarriers-02817", - "text": " For any element of pBufferMemoryBarriers, if its srcQueueFamilyIndex and dstQueueFamilyIndex members are equal, or if its srcQueueFamilyIndex is the queue family index that was used to create the command pool that commandBuffer was allocated from, then its srcAccessMask member must only contain access flags that are supported by one or more of the pipeline stages in srcStageMask, as specified in the table of supported access types" + "text": "For any element of pBufferMemoryBarriers, if its srcQueueFamilyIndex and dstQueueFamilyIndex members are equal, or if its srcQueueFamilyIndex is the queue family index that was used to create the command pool that commandBuffer was allocated from, then its srcAccessMask member must only contain access flags that are supported by one or more of the pipeline stages in srcStageMask, as specified in the table of supported access types", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPipelineBarrier-pBufferMemoryBarriers-02818", - "text": " For any element of pBufferMemoryBarriers, if its srcQueueFamilyIndex and dstQueueFamilyIndex members are equal, or if its dstQueueFamilyIndex is the queue family index that was used to create the command pool that commandBuffer was allocated from, then its dstAccessMask member must only contain access flags that are supported by one or more of the pipeline stages in dstStageMask, as specified in the table of supported access types" + "text": "For any element of pBufferMemoryBarriers, if its srcQueueFamilyIndex and dstQueueFamilyIndex members are equal, or if its dstQueueFamilyIndex is the queue family index that was used to create the command pool that commandBuffer was allocated from, then its dstAccessMask member must only contain access flags that are supported by one or more of the pipeline stages in dstStageMask, as specified in the table of supported access types", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPipelineBarrier-pImageMemoryBarriers-02819", - "text": " For any element of pImageMemoryBarriers, if its srcQueueFamilyIndex and dstQueueFamilyIndex members are equal, or if its srcQueueFamilyIndex is the queue family index that was used to create the command pool that commandBuffer was allocated from, then its srcAccessMask member must only contain access flags that are supported by one or more of the pipeline stages in srcStageMask, as specified in the table of supported access types" + "text": "For any element of pImageMemoryBarriers, if its srcQueueFamilyIndex and dstQueueFamilyIndex members are equal, or if its srcQueueFamilyIndex is the queue family index that was used to create the command pool that commandBuffer was allocated from, then its srcAccessMask member must only contain access flags that are supported by one or more of the pipeline stages in srcStageMask, as specified in the table of supported access types", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPipelineBarrier-pImageMemoryBarriers-02820", - "text": " For any element of pImageMemoryBarriers, if its srcQueueFamilyIndex and dstQueueFamilyIndex members are equal, or if its dstQueueFamilyIndex is the queue family index that was used to create the command pool that commandBuffer was allocated from, then its dstAccessMask member must only contain access flags that are supported by one or more of the pipeline stages in dstStageMask, as specified in the table of supported access types" + "text": "For any element of pImageMemoryBarriers, if its srcQueueFamilyIndex and dstQueueFamilyIndex members are equal, or if its dstQueueFamilyIndex is the queue family index that was used to create the command pool that commandBuffer was allocated from, then its dstAccessMask member must only contain access flags that are supported by one or more of the pipeline stages in dstStageMask, as specified in the table of supported access types", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPipelineBarrier-None-07889", - "text": " If fname:vkCmdPipelineBarrier is called within a render pass instance using a VkRenderPass object, the render pass must have been created with at least one subpass dependency that expresses a dependency from the current subpass to itself, does not include VK_DEPENDENCY_BY_REGION_BIT if this command does not, does not include VK_DEPENDENCY_VIEW_LOCAL_BIT if this command does not, and has synchronization scopes and access scopes that are all supersets of the scopes defined in this command" + "text": "If vkCmdPipelineBarrier is called within a render pass instance using a VkRenderPass object, the render pass must have been created with at least one subpass dependency that expresses a dependency from the current subpass to itself, does not include VK_DEPENDENCY_BY_REGION_BIT if this command does not, does not include VK_DEPENDENCY_VIEW_LOCAL_BIT if this command does not, and has synchronization scopes and access scopes that are all supersets of the scopes defined in this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPipelineBarrier-bufferMemoryBarrierCount-01178", - "text": " If fname:vkCmdPipelineBarrier is called within a render pass instance using a VkRenderPass object, it must not include any buffer memory barriers" + "text": "If vkCmdPipelineBarrier is called within a render pass instance using a VkRenderPass object, it must not include any buffer memory barriers", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPipelineBarrier-image-04073", - "text": " If fname:vkCmdPipelineBarrier is called within a render pass instance using a VkRenderPass object, the image member of any image memory barrier included in this command must be an attachment used in the current subpass both as an input attachment, and as either a color or depth/stencil attachment" + "text": "If vkCmdPipelineBarrier is called within a render pass instance using a VkRenderPass object, the image member of any image memory barrier included in this command must be an attachment used in the current subpass both as an input attachment, and as either a color, color resolve, or depth/stencil attachment", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdPipelineBarrier-image-09373", + "text": "If vkCmdPipelineBarrier is called within a render pass instance using a VkRenderPass object, and the image member of any image memory barrier is a color resolve attachment, the corresponding color attachment must be VK_ATTACHMENT_UNUSED", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdPipelineBarrier-image-09374", + "text": "If vkCmdPipelineBarrier is called within a render pass instance using a VkRenderPass object, and the image member of any image memory barrier is a color resolve attachment, it must have been created with a non-zero VkExternalFormatANDROID::externalFormat value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPipelineBarrier-oldLayout-01181", - "text": " If fname:vkCmdPipelineBarrier is called within a render pass instance, the oldLayout and newLayout members of any image memory barrier included in this command must be equal" + "text": "If vkCmdPipelineBarrier is called within a render pass instance, the oldLayout and newLayout members of any image memory barrier included in this command must be equal", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPipelineBarrier-srcQueueFamilyIndex-01182", - "text": " If fname:vkCmdPipelineBarrier is called within a render pass instance, the srcQueueFamilyIndex and dstQueueFamilyIndex members of any memory barrier included in this command must be equal" + "text": "If vkCmdPipelineBarrier is called within a render pass instance, the srcQueueFamilyIndex and dstQueueFamilyIndex members of any memory barrier included in this command must be equal", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPipelineBarrier-None-07890", - "text": " If fname:vkCmdPipelineBarrier is called within a render pass instance, and the source stage masks of any memory barriers include framebuffer-space stages, destination stage masks of all memory barriers must only include framebuffer-space stages" + "text": "If vkCmdPipelineBarrier is called within a render pass instance, and the source stage masks of any memory barriers include framebuffer-space stages, destination stage masks of all memory barriers must only include framebuffer-space stages", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPipelineBarrier-dependencyFlags-07891", - "text": " If fname:vkCmdPipelineBarrier is called within a render pass instance, and and the source stage masks of any memory barriers include framebuffer-space stages, then dependencyFlags must include VK_DEPENDENCY_BY_REGION_BIT" + "text": "If vkCmdPipelineBarrier is called within a render pass instance, and and the source stage masks of any memory barriers include framebuffer-space stages, then dependencyFlags must include VK_DEPENDENCY_BY_REGION_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPipelineBarrier-None-07892", - "text": " If fname:vkCmdPipelineBarrier is called within a render pass instance, the source and destination stage masks of any memory barriers must only include graphics pipeline stages" + "text": "If vkCmdPipelineBarrier is called within a render pass instance, the source and destination stage masks of any memory barriers must only include graphics pipeline stages", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPipelineBarrier-dependencyFlags-01186", - "text": " If fname:vkCmdPipelineBarrier is called outside of a render pass instance, the dependency flags must not include VK_DEPENDENCY_VIEW_LOCAL_BIT" + "text": "If vkCmdPipelineBarrier is called outside of a render pass instance, the dependency flags must not include VK_DEPENDENCY_VIEW_LOCAL_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPipelineBarrier-None-07893", - "text": " If fname:vkCmdPipelineBarrier is called inside a render pass instance, and there is more than one view in the current subpass, dependency flags must include VK_DEPENDENCY_VIEW_LOCAL_BIT" + "text": "If vkCmdPipelineBarrier is called inside a render pass instance, and there is more than one view in the current subpass, dependency flags must include VK_DEPENDENCY_VIEW_LOCAL_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPipelineBarrier-shaderTileImageColorReadAccess-08718", - "text": " If fname:vkCmdPipelineBarrier is called within a render pass instance and none of the shaderTileImageColorReadAccess, shaderTileImageDepthReadAccess, shaderTileImageStencilReadAccess features are enabled, the render pass must not have been started with vkCmdBeginRendering" + "text": "If vkCmdPipelineBarrier is called within a render pass instance and none of the shaderTileImageColorReadAccess, shaderTileImageDepthReadAccess, shaderTileImageStencilReadAccess features are enabled, the render pass must not have been started with vkCmdBeginRendering", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPipelineBarrier-None-08719", - "text": " If fname:vkCmdPipelineBarrier is called within a render pass instance started with vkCmdBeginRendering, it must adhere to the restrictions in Explicit Render Pass Tile Image Access Synchronization" + "text": "If vkCmdPipelineBarrier is called within a render pass instance started with vkCmdBeginRendering, it must adhere to the restrictions in Explicit Render Pass Tile Image Access Synchronization", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-06461", - "text": " Any pipeline stage included in srcStageMask must be supported by the capabilities of the queue family specified by the queueFamilyIndex member of the VkCommandPoolCreateInfo structure that was used to create the VkCommandPool that commandBuffer was allocated from, as specified in the table of supported pipeline stages" + "text": "Any pipeline stage included in srcStageMask must be supported by the capabilities of the queue family specified by the queueFamilyIndex member of the VkCommandPoolCreateInfo structure that was used to create the VkCommandPool that commandBuffer was allocated from, as specified in the table of supported pipeline stages", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-06462", - "text": " Any pipeline stage included in dstStageMask must be supported by the capabilities of the queue family specified by the queueFamilyIndex member of the VkCommandPoolCreateInfo structure that was used to create the VkCommandPool that commandBuffer was allocated from, as specified in the table of supported pipeline stages" + "text": "Any pipeline stage included in dstStageMask must be supported by the capabilities of the queue family specified by the queueFamilyIndex member of the VkCommandPoolCreateInfo structure that was used to create the VkCommandPool that commandBuffer was allocated from, as specified in the table of supported pipeline stages", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPipelineBarrier-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-parameter", - "text": " srcStageMask must be a valid combination of VkPipelineStageFlagBits values" + "text": "srcStageMask must be a valid combination of VkPipelineStageFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-parameter", - "text": " dstStageMask must be a valid combination of VkPipelineStageFlagBits values" + "text": "dstStageMask must be a valid combination of VkPipelineStageFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPipelineBarrier-dependencyFlags-parameter", - "text": " dependencyFlags must be a valid combination of VkDependencyFlagBits values" + "text": "dependencyFlags must be a valid combination of VkDependencyFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPipelineBarrier-pMemoryBarriers-parameter", - "text": " If memoryBarrierCount is not 0, pMemoryBarriers must be a valid pointer to an array of memoryBarrierCount valid VkMemoryBarrier structures" + "text": "If memoryBarrierCount is not 0, pMemoryBarriers must be a valid pointer to an array of memoryBarrierCount valid VkMemoryBarrier structures", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPipelineBarrier-pBufferMemoryBarriers-parameter", - "text": " If bufferMemoryBarrierCount is not 0, pBufferMemoryBarriers must be a valid pointer to an array of bufferMemoryBarrierCount valid VkBufferMemoryBarrier structures" + "text": "If bufferMemoryBarrierCount is not 0, pBufferMemoryBarriers must be a valid pointer to an array of bufferMemoryBarrierCount valid VkBufferMemoryBarrier structures", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPipelineBarrier-pImageMemoryBarriers-parameter", - "text": " If imageMemoryBarrierCount is not 0, pImageMemoryBarriers must be a valid pointer to an array of imageMemoryBarrierCount valid VkImageMemoryBarrier structures" + "text": "If imageMemoryBarrierCount is not 0, pImageMemoryBarriers must be a valid pointer to an array of imageMemoryBarrierCount valid VkImageMemoryBarrier structures", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPipelineBarrier-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPipelineBarrier-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, compute, decode, or encode operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, compute, decode, or encode operations", + "page": "vkspec" } ] }, @@ -4502,439 +5578,548 @@ "core": [ { "vuid": "VUID-VkMemoryBarrier2-srcStageMask-03929", - "text": " If the geometryShader feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT" + "text": "If the geometryShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-srcStageMask-03930", - "text": " If the tessellationShader feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT" + "text": "If the tessellationShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-srcStageMask-03931", - "text": " If the conditionalRendering feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT" + "text": "If the conditionalRendering feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-srcStageMask-03932", - "text": " If the fragmentDensityMap feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT" + "text": "If the fragmentDensityMap feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-srcStageMask-03933", - "text": " If the transformFeedback feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT" + "text": "If the transformFeedback feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-srcStageMask-03934", - "text": " If the meshShader feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT" + "text": "If the meshShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-srcStageMask-03935", - "text": " If the taskShader feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT" + "text": "If the taskShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-srcStageMask-07316", - "text": " If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR" + "text": "If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-srcStageMask-04957", - "text": " If the subpassShading feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI" + "text": "If the subpassShading feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-srcStageMask-04995", - "text": " If the invocationMask feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI" + "text": "If the invocationMask feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-srcStageMask-07946", - "text": " If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR" + "text": "If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03900", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If srcAccessMask includes VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03901", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_INDEX_READ_BIT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT, VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If srcAccessMask includes VK_ACCESS_2_INDEX_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT, VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03902", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT, VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If srcAccessMask includes VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT, VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03903", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT, VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If srcAccessMask includes VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT, VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03904", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_UNIFORM_READ_BIT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages" + "text": "If srcAccessMask includes VK_ACCESS_2_UNIFORM_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03905", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_SHADER_SAMPLED_READ_BIT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages" + "text": "If srcAccessMask includes VK_ACCESS_2_SHADER_SAMPLED_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03906", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_SHADER_STORAGE_READ_BIT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages" + "text": "If srcAccessMask includes VK_ACCESS_2_SHADER_STORAGE_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03907", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages" + "text": "If srcAccessMask includes VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-07454", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_SHADER_READ_BIT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages" + "text": "If srcAccessMask includes VK_ACCESS_2_SHADER_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03909", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_SHADER_WRITE_BIT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages" + "text": "If srcAccessMask includes VK_ACCESS_2_SHADER_WRITE_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03910", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If srcAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03911", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If srcAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03912", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If srcAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03913", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If srcAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03914", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_TRANSFER_READ_BIT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT, VK_PIPELINE_STAGE_2_BLIT_BIT, VK_PIPELINE_STAGE_2_RESOLVE_BIT, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If srcAccessMask includes VK_ACCESS_2_TRANSFER_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT, VK_PIPELINE_STAGE_2_BLIT_BIT, VK_PIPELINE_STAGE_2_RESOLVE_BIT, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03915", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_TRANSFER_WRITE_BIT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT, VK_PIPELINE_STAGE_2_BLIT_BIT, VK_PIPELINE_STAGE_2_RESOLVE_BIT, VK_PIPELINE_STAGE_2_CLEAR_BIT, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If srcAccessMask includes VK_ACCESS_2_TRANSFER_WRITE_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT, VK_PIPELINE_STAGE_2_BLIT_BIT, VK_PIPELINE_STAGE_2_RESOLVE_BIT, VK_PIPELINE_STAGE_2_CLEAR_BIT, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, or VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03916", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_HOST_READ_BIT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT" + "text": "If srcAccessMask includes VK_ACCESS_2_HOST_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03917", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_HOST_WRITE_BIT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT" + "text": "If srcAccessMask includes VK_ACCESS_2_HOST_WRITE_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03918", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If srcAccessMask includes VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT, srcStageMask must include VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03919", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If srcAccessMask includes VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT, srcStageMask must include VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03920", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If srcAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT, srcStageMask must include VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-04747", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT, VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If srcAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT, srcStageMask must include VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT, VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03922", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If srcAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT, srcStageMask must include VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03923", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV, pname:srcStageMask must include VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If srcAccessMask includes VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV, srcStageMask must include VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-04994", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI, pname:srcStageMask must include VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI" + "text": "If srcAccessMask includes VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI, srcStageMask must include VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03924", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV, pname:srcStageMask must include VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If srcAccessMask includes VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV, srcStageMask must include VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03925", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV, pname:srcStageMask must include VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If srcAccessMask includes VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV, srcStageMask must include VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03926", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If srcAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT, srcStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03927", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages" + "text": "If srcAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, srcStageMask must include VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03928", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If srcAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR, srcStageMask must include VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-06256", - "text": " If the rayQuery feature is not enabled and pname:srcAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, pname:srcStageMask must not include any of the VK_PIPELINE_STAGE_*_SHADER_BIT stages except VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR" + "text": "If the rayQuery feature is not enabled and srcAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, srcStageMask must not include any of the VK_PIPELINE_STAGE_*_SHADER_BIT stages except VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-07272", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT or VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR" + "text": "If srcAccessMask includes VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR, srcStageMask must include VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT or VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-04858", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR" + "text": "If srcAccessMask includes VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR, srcStageMask must include VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-04859", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR" + "text": "If srcAccessMask includes VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR, srcStageMask must include VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-04860", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR" + "text": "If srcAccessMask includes VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR, srcStageMask must include VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-04861", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR" + "text": "If srcAccessMask includes VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR, srcStageMask must include VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-07455", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV, pname:srcStageMask must include VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV" + "text": "If srcAccessMask includes VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV, srcStageMask must include VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-07456", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV, pname:srcStageMask must include VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV" + "text": "If srcAccessMask includes VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV, srcStageMask must include VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-07457", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT" + "text": "If srcAccessMask includes VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT, srcStageMask must include VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-07458", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_MICROMAP_READ_BIT_EXT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT or VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR" + "text": "If srcAccessMask includes VK_ACCESS_2_MICROMAP_READ_BIT_EXT, srcStageMask must include VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT or VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-08118", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of VK_PIPELINE_STAGE_*_SHADER_BIT stages" + "text": "If srcAccessMask includes VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT, srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of VK_PIPELINE_STAGE_*_SHADER_BIT stages", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-dstStageMask-03929", - "text": " If the geometryShader feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT" + "text": "If the geometryShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-dstStageMask-03930", - "text": " If the tessellationShader feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT" + "text": "If the tessellationShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-dstStageMask-03931", - "text": " If the conditionalRendering feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT" + "text": "If the conditionalRendering feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-dstStageMask-03932", - "text": " If the fragmentDensityMap feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT" + "text": "If the fragmentDensityMap feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-dstStageMask-03933", - "text": " If the transformFeedback feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT" + "text": "If the transformFeedback feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-dstStageMask-03934", - "text": " If the meshShader feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT" + "text": "If the meshShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-dstStageMask-03935", - "text": " If the taskShader feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT" + "text": "If the taskShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-dstStageMask-07316", - "text": " If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR" + "text": "If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-dstStageMask-04957", - "text": " If the subpassShading feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI" + "text": "If the subpassShading feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-dstStageMask-04995", - "text": " If the invocationMask feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI" + "text": "If the invocationMask feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-dstStageMask-07946", - "text": " If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR" + "text": "If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03900", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If dstAccessMask includes VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03901", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_INDEX_READ_BIT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT, VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If dstAccessMask includes VK_ACCESS_2_INDEX_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT, VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03902", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT, VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If dstAccessMask includes VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT, VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03903", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT, VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If dstAccessMask includes VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT, VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03904", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_UNIFORM_READ_BIT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages" + "text": "If dstAccessMask includes VK_ACCESS_2_UNIFORM_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03905", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_SHADER_SAMPLED_READ_BIT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages" + "text": "If dstAccessMask includes VK_ACCESS_2_SHADER_SAMPLED_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03906", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_SHADER_STORAGE_READ_BIT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages" + "text": "If dstAccessMask includes VK_ACCESS_2_SHADER_STORAGE_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03907", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages" + "text": "If dstAccessMask includes VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-07454", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_SHADER_READ_BIT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages" + "text": "If dstAccessMask includes VK_ACCESS_2_SHADER_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03909", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_SHADER_WRITE_BIT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages" + "text": "If dstAccessMask includes VK_ACCESS_2_SHADER_WRITE_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03910", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If dstAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03911", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If dstAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03912", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If dstAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03913", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If dstAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03914", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_TRANSFER_READ_BIT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT, VK_PIPELINE_STAGE_2_BLIT_BIT, VK_PIPELINE_STAGE_2_RESOLVE_BIT, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If dstAccessMask includes VK_ACCESS_2_TRANSFER_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT, VK_PIPELINE_STAGE_2_BLIT_BIT, VK_PIPELINE_STAGE_2_RESOLVE_BIT, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03915", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_TRANSFER_WRITE_BIT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT, VK_PIPELINE_STAGE_2_BLIT_BIT, VK_PIPELINE_STAGE_2_RESOLVE_BIT, VK_PIPELINE_STAGE_2_CLEAR_BIT, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If dstAccessMask includes VK_ACCESS_2_TRANSFER_WRITE_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT, VK_PIPELINE_STAGE_2_BLIT_BIT, VK_PIPELINE_STAGE_2_RESOLVE_BIT, VK_PIPELINE_STAGE_2_CLEAR_BIT, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, or VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03916", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_HOST_READ_BIT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT" + "text": "If dstAccessMask includes VK_ACCESS_2_HOST_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03917", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_HOST_WRITE_BIT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT" + "text": "If dstAccessMask includes VK_ACCESS_2_HOST_WRITE_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03918", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If dstAccessMask includes VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT, dstStageMask must include VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03919", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If dstAccessMask includes VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT, dstStageMask must include VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03920", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If dstAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT, dstStageMask must include VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-04747", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT, VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If dstAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT, dstStageMask must include VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT, VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03922", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If dstAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT, dstStageMask must include VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03923", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV, pname:dstStageMask must include VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If dstAccessMask includes VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV, dstStageMask must include VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-04994", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI, pname:dstStageMask must include VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI" + "text": "If dstAccessMask includes VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI, dstStageMask must include VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03924", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV, pname:dstStageMask must include VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If dstAccessMask includes VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV, dstStageMask must include VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03925", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV, pname:dstStageMask must include VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If dstAccessMask includes VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV, dstStageMask must include VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03926", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If dstAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT, dstStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03927", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages" + "text": "If dstAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, dstStageMask must include VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03928", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If dstAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR, dstStageMask must include VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-06256", - "text": " If the rayQuery feature is not enabled and pname:dstAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, pname:dstStageMask must not include any of the VK_PIPELINE_STAGE_*_SHADER_BIT stages except VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR" + "text": "If the rayQuery feature is not enabled and dstAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, dstStageMask must not include any of the VK_PIPELINE_STAGE_*_SHADER_BIT stages except VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-07272", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT or VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR" + "text": "If dstAccessMask includes VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR, dstStageMask must include VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT or VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-04858", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR" + "text": "If dstAccessMask includes VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR, dstStageMask must include VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-04859", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR" + "text": "If dstAccessMask includes VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR, dstStageMask must include VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-04860", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR" + "text": "If dstAccessMask includes VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR, dstStageMask must include VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-04861", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR" + "text": "If dstAccessMask includes VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR, dstStageMask must include VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-07455", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV, pname:dstStageMask must include VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV" + "text": "If dstAccessMask includes VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV, dstStageMask must include VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-07456", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV, pname:dstStageMask must include VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV" + "text": "If dstAccessMask includes VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV, dstStageMask must include VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-07457", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT" + "text": "If dstAccessMask includes VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT, dstStageMask must include VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-07458", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_MICROMAP_READ_BIT_EXT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT or VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR" + "text": "If dstAccessMask includes VK_ACCESS_2_MICROMAP_READ_BIT_EXT, dstStageMask must include VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT or VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-08118", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of VK_PIPELINE_STAGE_*_SHADER_BIT stages" + "text": "If dstAccessMask includes VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT, dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of VK_PIPELINE_STAGE_*_SHADER_BIT stages", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_MEMORY_BARRIER_2" + "text": "sType must be VK_STRUCTURE_TYPE_MEMORY_BARRIER_2", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-srcStageMask-parameter", - "text": " srcStageMask must be a valid combination of VkPipelineStageFlagBits2 values" + "text": "srcStageMask must be a valid combination of VkPipelineStageFlagBits2 values", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-parameter", - "text": " srcAccessMask must be a valid combination of VkAccessFlagBits2 values" + "text": "srcAccessMask must be a valid combination of VkAccessFlagBits2 values", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-dstStageMask-parameter", - "text": " dstStageMask must be a valid combination of VkPipelineStageFlagBits2 values" + "text": "dstStageMask must be a valid combination of VkPipelineStageFlagBits2 values", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-parameter", - "text": " dstAccessMask must be a valid combination of VkAccessFlagBits2 values" + "text": "dstAccessMask must be a valid combination of VkAccessFlagBits2 values", + "page": "vkspec" } ] }, @@ -4942,19 +6127,23 @@ "core": [ { "vuid": "VUID-VkMemoryBarrier-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_MEMORY_BARRIER" + "text": "sType must be VK_STRUCTURE_TYPE_MEMORY_BARRIER", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier-srcAccessMask-parameter", - "text": " srcAccessMask must be a valid combination of VkAccessFlagBits values" + "text": "srcAccessMask must be a valid combination of VkAccessFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryBarrier-dstAccessMask-parameter", - "text": " dstAccessMask must be a valid combination of VkAccessFlagBits values" + "text": "dstAccessMask must be a valid combination of VkAccessFlagBits values", + "page": "vkspec" } ] }, @@ -4962,499 +6151,623 @@ "core": [ { "vuid": "VUID-VkBufferMemoryBarrier2-srcStageMask-03929", - "text": " If the geometryShader feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT" + "text": "If the geometryShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-srcStageMask-03930", - "text": " If the tessellationShader feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT" + "text": "If the tessellationShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-srcStageMask-03931", - "text": " If the conditionalRendering feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT" + "text": "If the conditionalRendering feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-srcStageMask-03932", - "text": " If the fragmentDensityMap feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT" + "text": "If the fragmentDensityMap feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-srcStageMask-03933", - "text": " If the transformFeedback feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT" + "text": "If the transformFeedback feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-srcStageMask-03934", - "text": " If the meshShader feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT" + "text": "If the meshShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-srcStageMask-03935", - "text": " If the taskShader feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT" + "text": "If the taskShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-srcStageMask-07316", - "text": " If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR" + "text": "If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-srcStageMask-04957", - "text": " If the subpassShading feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI" + "text": "If the subpassShading feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-srcStageMask-04995", - "text": " If the invocationMask feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI" + "text": "If the invocationMask feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-srcStageMask-07946", - "text": " If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR" + "text": "If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03900", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If srcAccessMask includes VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03901", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_INDEX_READ_BIT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT, VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If srcAccessMask includes VK_ACCESS_2_INDEX_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT, VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03902", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT, VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If srcAccessMask includes VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT, VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03903", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT, VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If srcAccessMask includes VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT, VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03904", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_UNIFORM_READ_BIT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages" + "text": "If srcAccessMask includes VK_ACCESS_2_UNIFORM_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03905", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_SHADER_SAMPLED_READ_BIT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages" + "text": "If srcAccessMask includes VK_ACCESS_2_SHADER_SAMPLED_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03906", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_SHADER_STORAGE_READ_BIT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages" + "text": "If srcAccessMask includes VK_ACCESS_2_SHADER_STORAGE_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03907", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages" + "text": "If srcAccessMask includes VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-07454", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_SHADER_READ_BIT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages" + "text": "If srcAccessMask includes VK_ACCESS_2_SHADER_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03909", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_SHADER_WRITE_BIT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages" + "text": "If srcAccessMask includes VK_ACCESS_2_SHADER_WRITE_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03910", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If srcAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03911", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If srcAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03912", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If srcAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03913", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If srcAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03914", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_TRANSFER_READ_BIT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT, VK_PIPELINE_STAGE_2_BLIT_BIT, VK_PIPELINE_STAGE_2_RESOLVE_BIT, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If srcAccessMask includes VK_ACCESS_2_TRANSFER_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT, VK_PIPELINE_STAGE_2_BLIT_BIT, VK_PIPELINE_STAGE_2_RESOLVE_BIT, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03915", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_TRANSFER_WRITE_BIT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT, VK_PIPELINE_STAGE_2_BLIT_BIT, VK_PIPELINE_STAGE_2_RESOLVE_BIT, VK_PIPELINE_STAGE_2_CLEAR_BIT, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If srcAccessMask includes VK_ACCESS_2_TRANSFER_WRITE_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT, VK_PIPELINE_STAGE_2_BLIT_BIT, VK_PIPELINE_STAGE_2_RESOLVE_BIT, VK_PIPELINE_STAGE_2_CLEAR_BIT, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, or VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03916", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_HOST_READ_BIT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT" + "text": "If srcAccessMask includes VK_ACCESS_2_HOST_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03917", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_HOST_WRITE_BIT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT" + "text": "If srcAccessMask includes VK_ACCESS_2_HOST_WRITE_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03918", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If srcAccessMask includes VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT, srcStageMask must include VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03919", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If srcAccessMask includes VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT, srcStageMask must include VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03920", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If srcAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT, srcStageMask must include VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-04747", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT, VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If srcAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT, srcStageMask must include VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT, VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03922", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If srcAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT, srcStageMask must include VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03923", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV, pname:srcStageMask must include VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If srcAccessMask includes VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV, srcStageMask must include VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-04994", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI, pname:srcStageMask must include VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI" + "text": "If srcAccessMask includes VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI, srcStageMask must include VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03924", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV, pname:srcStageMask must include VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If srcAccessMask includes VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV, srcStageMask must include VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03925", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV, pname:srcStageMask must include VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If srcAccessMask includes VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV, srcStageMask must include VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03926", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If srcAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT, srcStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03927", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages" + "text": "If srcAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, srcStageMask must include VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03928", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If srcAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR, srcStageMask must include VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-06256", - "text": " If the rayQuery feature is not enabled and pname:srcAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, pname:srcStageMask must not include any of the VK_PIPELINE_STAGE_*_SHADER_BIT stages except VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR" + "text": "If the rayQuery feature is not enabled and srcAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, srcStageMask must not include any of the VK_PIPELINE_STAGE_*_SHADER_BIT stages except VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-07272", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT or VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR" + "text": "If srcAccessMask includes VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR, srcStageMask must include VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT or VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-04858", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR" + "text": "If srcAccessMask includes VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR, srcStageMask must include VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-04859", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR" + "text": "If srcAccessMask includes VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR, srcStageMask must include VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-04860", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR" + "text": "If srcAccessMask includes VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR, srcStageMask must include VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-04861", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR" + "text": "If srcAccessMask includes VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR, srcStageMask must include VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-07455", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV, pname:srcStageMask must include VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV" + "text": "If srcAccessMask includes VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV, srcStageMask must include VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-07456", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV, pname:srcStageMask must include VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV" + "text": "If srcAccessMask includes VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV, srcStageMask must include VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-07457", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT" + "text": "If srcAccessMask includes VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT, srcStageMask must include VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-07458", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_MICROMAP_READ_BIT_EXT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT or VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR" + "text": "If srcAccessMask includes VK_ACCESS_2_MICROMAP_READ_BIT_EXT, srcStageMask must include VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT or VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-08118", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of VK_PIPELINE_STAGE_*_SHADER_BIT stages" + "text": "If srcAccessMask includes VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT, srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of VK_PIPELINE_STAGE_*_SHADER_BIT stages", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-dstStageMask-03929", - "text": " If the geometryShader feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT" + "text": "If the geometryShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-dstStageMask-03930", - "text": " If the tessellationShader feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT" + "text": "If the tessellationShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-dstStageMask-03931", - "text": " If the conditionalRendering feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT" + "text": "If the conditionalRendering feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-dstStageMask-03932", - "text": " If the fragmentDensityMap feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT" + "text": "If the fragmentDensityMap feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-dstStageMask-03933", - "text": " If the transformFeedback feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT" + "text": "If the transformFeedback feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-dstStageMask-03934", - "text": " If the meshShader feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT" + "text": "If the meshShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-dstStageMask-03935", - "text": " If the taskShader feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT" + "text": "If the taskShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-dstStageMask-07316", - "text": " If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR" + "text": "If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-dstStageMask-04957", - "text": " If the subpassShading feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI" + "text": "If the subpassShading feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-dstStageMask-04995", - "text": " If the invocationMask feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI" + "text": "If the invocationMask feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-dstStageMask-07946", - "text": " If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR" + "text": "If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03900", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If dstAccessMask includes VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03901", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_INDEX_READ_BIT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT, VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If dstAccessMask includes VK_ACCESS_2_INDEX_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT, VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03902", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT, VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If dstAccessMask includes VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT, VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03903", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT, VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If dstAccessMask includes VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT, VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03904", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_UNIFORM_READ_BIT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages" + "text": "If dstAccessMask includes VK_ACCESS_2_UNIFORM_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03905", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_SHADER_SAMPLED_READ_BIT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages" + "text": "If dstAccessMask includes VK_ACCESS_2_SHADER_SAMPLED_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03906", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_SHADER_STORAGE_READ_BIT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages" + "text": "If dstAccessMask includes VK_ACCESS_2_SHADER_STORAGE_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03907", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages" + "text": "If dstAccessMask includes VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-07454", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_SHADER_READ_BIT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages" + "text": "If dstAccessMask includes VK_ACCESS_2_SHADER_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03909", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_SHADER_WRITE_BIT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages" + "text": "If dstAccessMask includes VK_ACCESS_2_SHADER_WRITE_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03910", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If dstAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03911", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If dstAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03912", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If dstAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03913", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If dstAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03914", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_TRANSFER_READ_BIT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT, VK_PIPELINE_STAGE_2_BLIT_BIT, VK_PIPELINE_STAGE_2_RESOLVE_BIT, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If dstAccessMask includes VK_ACCESS_2_TRANSFER_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT, VK_PIPELINE_STAGE_2_BLIT_BIT, VK_PIPELINE_STAGE_2_RESOLVE_BIT, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03915", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_TRANSFER_WRITE_BIT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT, VK_PIPELINE_STAGE_2_BLIT_BIT, VK_PIPELINE_STAGE_2_RESOLVE_BIT, VK_PIPELINE_STAGE_2_CLEAR_BIT, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If dstAccessMask includes VK_ACCESS_2_TRANSFER_WRITE_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT, VK_PIPELINE_STAGE_2_BLIT_BIT, VK_PIPELINE_STAGE_2_RESOLVE_BIT, VK_PIPELINE_STAGE_2_CLEAR_BIT, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, or VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03916", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_HOST_READ_BIT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT" + "text": "If dstAccessMask includes VK_ACCESS_2_HOST_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03917", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_HOST_WRITE_BIT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT" + "text": "If dstAccessMask includes VK_ACCESS_2_HOST_WRITE_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03918", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If dstAccessMask includes VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT, dstStageMask must include VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03919", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If dstAccessMask includes VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT, dstStageMask must include VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03920", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If dstAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT, dstStageMask must include VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-04747", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT, VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If dstAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT, dstStageMask must include VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT, VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03922", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If dstAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT, dstStageMask must include VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03923", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV, pname:dstStageMask must include VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If dstAccessMask includes VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV, dstStageMask must include VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-04994", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI, pname:dstStageMask must include VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI" + "text": "If dstAccessMask includes VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI, dstStageMask must include VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03924", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV, pname:dstStageMask must include VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If dstAccessMask includes VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV, dstStageMask must include VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03925", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV, pname:dstStageMask must include VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If dstAccessMask includes VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV, dstStageMask must include VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03926", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If dstAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT, dstStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03927", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages" + "text": "If dstAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, dstStageMask must include VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03928", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If dstAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR, dstStageMask must include VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-06256", - "text": " If the rayQuery feature is not enabled and pname:dstAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, pname:dstStageMask must not include any of the VK_PIPELINE_STAGE_*_SHADER_BIT stages except VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR" + "text": "If the rayQuery feature is not enabled and dstAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, dstStageMask must not include any of the VK_PIPELINE_STAGE_*_SHADER_BIT stages except VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-07272", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT or VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR" + "text": "If dstAccessMask includes VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR, dstStageMask must include VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT or VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-04858", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR" + "text": "If dstAccessMask includes VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR, dstStageMask must include VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-04859", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR" + "text": "If dstAccessMask includes VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR, dstStageMask must include VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-04860", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR" + "text": "If dstAccessMask includes VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR, dstStageMask must include VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-04861", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR" + "text": "If dstAccessMask includes VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR, dstStageMask must include VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-07455", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV, pname:dstStageMask must include VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV" + "text": "If dstAccessMask includes VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV, dstStageMask must include VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-07456", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV, pname:dstStageMask must include VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV" + "text": "If dstAccessMask includes VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV, dstStageMask must include VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-07457", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT" + "text": "If dstAccessMask includes VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT, dstStageMask must include VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-07458", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_MICROMAP_READ_BIT_EXT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT or VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR" + "text": "If dstAccessMask includes VK_ACCESS_2_MICROMAP_READ_BIT_EXT, dstStageMask must include VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT or VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-08118", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of VK_PIPELINE_STAGE_*_SHADER_BIT stages" + "text": "If dstAccessMask includes VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT, dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of VK_PIPELINE_STAGE_*_SHADER_BIT stages", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-offset-01187", - "text": " offset must be less than the size of buffer" + "text": "offset must be less than the size of buffer", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-size-01188", - "text": " If size is not equal to VK_WHOLE_SIZE, size must be greater than 0" + "text": "If size is not equal to VK_WHOLE_SIZE, size must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-size-01189", - "text": " If size is not equal to VK_WHOLE_SIZE, size must be less than or equal to than the size of buffer minus offset" + "text": "If size is not equal to VK_WHOLE_SIZE, size must be less than or equal to than the size of buffer minus offset", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-buffer-01931", - "text": " If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-buffer-09095", - "text": " If buffer was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE, and srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, srcQueueFamilyIndex must be VK_QUEUE_FAMILY_EXTERNAL, VK_QUEUE_FAMILY_FOREIGN_EXT, or a valid queue family" + "text": "If buffer was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE, and srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, srcQueueFamilyIndex must be VK_QUEUE_FAMILY_EXTERNAL, VK_QUEUE_FAMILY_FOREIGN_EXT, or a valid queue family", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-buffer-09096", - "text": " If buffer was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE, and srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, dstQueueFamilyIndex must be VK_QUEUE_FAMILY_EXTERNAL, VK_QUEUE_FAMILY_FOREIGN_EXT, or a valid queue family" + "text": "If buffer was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE, and srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, dstQueueFamilyIndex must be VK_QUEUE_FAMILY_EXTERNAL, VK_QUEUE_FAMILY_FOREIGN_EXT, or a valid queue family", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-srcQueueFamilyIndex-04087", - "text": " If srcQueueFamilyIndex is not equal to dstQueueFamilyIndex, at least one of srcQueueFamilyIndex or dstQueueFamilyIndex must not be VK_QUEUE_FAMILY_EXTERNAL or VK_QUEUE_FAMILY_FOREIGN_EXT" + "text": "If srcQueueFamilyIndex is not equal to dstQueueFamilyIndex, at least one of srcQueueFamilyIndex or dstQueueFamilyIndex must not be VK_QUEUE_FAMILY_EXTERNAL or VK_QUEUE_FAMILY_FOREIGN_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-None-09097", - "text": " If the VK_KHR_external_memory extension is not enabled, and the value of VkApplicationInfo::apiVersion used to create the VkInstance is not greater than or equal to Version 1.1, srcQueueFamilyIndex must not be VK_QUEUE_FAMILY_EXTERNAL" + "text": "If the VK_KHR_external_memory extension is not enabled, and the value of VkApplicationInfo::apiVersion used to create the VkInstance is not greater than or equal to Version 1.1, srcQueueFamilyIndex must not be VK_QUEUE_FAMILY_EXTERNAL", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-None-09098", - "text": " If the VK_KHR_external_memory extension is not enabled, and the value of VkApplicationInfo::apiVersion used to create the VkInstance is not greater than or equal to Version 1.1, dstQueueFamilyIndex must not be VK_QUEUE_FAMILY_EXTERNAL" + "text": "If the VK_KHR_external_memory extension is not enabled, and the value of VkApplicationInfo::apiVersion used to create the VkInstance is not greater than or equal to Version 1.1, dstQueueFamilyIndex must not be VK_QUEUE_FAMILY_EXTERNAL", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-srcQueueFamilyIndex-09099", - "text": " If the VK_EXT_queue_family_foreign extension is not enabled srcQueueFamilyIndex must not be VK_QUEUE_FAMILY_FOREIGN_EXT" + "text": "If the VK_EXT_queue_family_foreign extension is not enabled srcQueueFamilyIndex must not be VK_QUEUE_FAMILY_FOREIGN_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-dstQueueFamilyIndex-09100", - "text": " If the VK_EXT_queue_family_foreign extension is not enabled dstQueueFamilyIndex must not be VK_QUEUE_FAMILY_FOREIGN_EXT" + "text": "If the VK_EXT_queue_family_foreign extension is not enabled dstQueueFamilyIndex must not be VK_QUEUE_FAMILY_FOREIGN_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-srcStageMask-03851", - "text": " If either srcStageMask or dstStageMask includes VK_PIPELINE_STAGE_2_HOST_BIT, srcQueueFamilyIndex and dstQueueFamilyIndex must be equal" + "text": "If either srcStageMask or dstStageMask includes VK_PIPELINE_STAGE_2_HOST_BIT, srcQueueFamilyIndex and dstQueueFamilyIndex must be equal", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2" + "text": "sType must be VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkExternalMemoryAcquireUnmodifiedEXT" + "text": "pNext must be NULL or a pointer to a valid instance of VkExternalMemoryAcquireUnmodifiedEXT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-srcStageMask-parameter", - "text": " srcStageMask must be a valid combination of VkPipelineStageFlagBits2 values" + "text": "srcStageMask must be a valid combination of VkPipelineStageFlagBits2 values", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-parameter", - "text": " srcAccessMask must be a valid combination of VkAccessFlagBits2 values" + "text": "srcAccessMask must be a valid combination of VkAccessFlagBits2 values", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-dstStageMask-parameter", - "text": " dstStageMask must be a valid combination of VkPipelineStageFlagBits2 values" + "text": "dstStageMask must be a valid combination of VkPipelineStageFlagBits2 values", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-parameter", - "text": " dstAccessMask must be a valid combination of VkAccessFlagBits2 values" + "text": "dstAccessMask must be a valid combination of VkAccessFlagBits2 values", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier2-buffer-parameter", - "text": " buffer must be a valid VkBuffer handle" + "text": "buffer must be a valid VkBuffer handle", + "page": "vkspec" } ] }, @@ -5462,75 +6775,93 @@ "core": [ { "vuid": "VUID-VkBufferMemoryBarrier-offset-01187", - "text": " offset must be less than the size of buffer" + "text": "offset must be less than the size of buffer", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier-size-01188", - "text": " If size is not equal to VK_WHOLE_SIZE, size must be greater than 0" + "text": "If size is not equal to VK_WHOLE_SIZE, size must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier-size-01189", - "text": " If size is not equal to VK_WHOLE_SIZE, size must be less than or equal to than the size of buffer minus offset" + "text": "If size is not equal to VK_WHOLE_SIZE, size must be less than or equal to than the size of buffer minus offset", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier-buffer-01931", - "text": " If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier-buffer-09095", - "text": " If buffer was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE, and srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, srcQueueFamilyIndex must be VK_QUEUE_FAMILY_EXTERNAL, VK_QUEUE_FAMILY_FOREIGN_EXT, or a valid queue family" + "text": "If buffer was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE, and srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, srcQueueFamilyIndex must be VK_QUEUE_FAMILY_EXTERNAL, VK_QUEUE_FAMILY_FOREIGN_EXT, or a valid queue family", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier-buffer-09096", - "text": " If buffer was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE, and srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, dstQueueFamilyIndex must be VK_QUEUE_FAMILY_EXTERNAL, VK_QUEUE_FAMILY_FOREIGN_EXT, or a valid queue family" + "text": "If buffer was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE, and srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, dstQueueFamilyIndex must be VK_QUEUE_FAMILY_EXTERNAL, VK_QUEUE_FAMILY_FOREIGN_EXT, or a valid queue family", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier-srcQueueFamilyIndex-04087", - "text": " If srcQueueFamilyIndex is not equal to dstQueueFamilyIndex, at least one of srcQueueFamilyIndex or dstQueueFamilyIndex must not be VK_QUEUE_FAMILY_EXTERNAL or VK_QUEUE_FAMILY_FOREIGN_EXT" + "text": "If srcQueueFamilyIndex is not equal to dstQueueFamilyIndex, at least one of srcQueueFamilyIndex or dstQueueFamilyIndex must not be VK_QUEUE_FAMILY_EXTERNAL or VK_QUEUE_FAMILY_FOREIGN_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier-None-09097", - "text": " If the VK_KHR_external_memory extension is not enabled, and the value of VkApplicationInfo::apiVersion used to create the VkInstance is not greater than or equal to Version 1.1, srcQueueFamilyIndex must not be VK_QUEUE_FAMILY_EXTERNAL" + "text": "If the VK_KHR_external_memory extension is not enabled, and the value of VkApplicationInfo::apiVersion used to create the VkInstance is not greater than or equal to Version 1.1, srcQueueFamilyIndex must not be VK_QUEUE_FAMILY_EXTERNAL", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier-None-09098", - "text": " If the VK_KHR_external_memory extension is not enabled, and the value of VkApplicationInfo::apiVersion used to create the VkInstance is not greater than or equal to Version 1.1, dstQueueFamilyIndex must not be VK_QUEUE_FAMILY_EXTERNAL" + "text": "If the VK_KHR_external_memory extension is not enabled, and the value of VkApplicationInfo::apiVersion used to create the VkInstance is not greater than or equal to Version 1.1, dstQueueFamilyIndex must not be VK_QUEUE_FAMILY_EXTERNAL", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier-srcQueueFamilyIndex-09099", - "text": " If the VK_EXT_queue_family_foreign extension is not enabled srcQueueFamilyIndex must not be VK_QUEUE_FAMILY_FOREIGN_EXT" + "text": "If the VK_EXT_queue_family_foreign extension is not enabled srcQueueFamilyIndex must not be VK_QUEUE_FAMILY_FOREIGN_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier-dstQueueFamilyIndex-09100", - "text": " If the VK_EXT_queue_family_foreign extension is not enabled dstQueueFamilyIndex must not be VK_QUEUE_FAMILY_FOREIGN_EXT" + "text": "If the VK_EXT_queue_family_foreign extension is not enabled dstQueueFamilyIndex must not be VK_QUEUE_FAMILY_FOREIGN_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier-None-09049", - "text": " If the synchronization2 feature is not enabled, and buffer was created with a sharing mode of VK_SHARING_MODE_CONCURRENT, at least one of srcQueueFamilyIndex and dstQueueFamilyIndex must be VK_QUEUE_FAMILY_IGNORED" + "text": "If the synchronization2 feature is not enabled, and buffer was created with a sharing mode of VK_SHARING_MODE_CONCURRENT, at least one of srcQueueFamilyIndex and dstQueueFamilyIndex must be VK_QUEUE_FAMILY_IGNORED", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier-None-09050", - "text": " If the synchronization2 feature is not enabled, and buffer was created with a sharing mode of VK_SHARING_MODE_CONCURRENT, srcQueueFamilyIndex must be VK_QUEUE_FAMILY_IGNORED or VK_QUEUE_FAMILY_EXTERNAL" + "text": "If the synchronization2 feature is not enabled, and buffer was created with a sharing mode of VK_SHARING_MODE_CONCURRENT, srcQueueFamilyIndex must be VK_QUEUE_FAMILY_IGNORED or VK_QUEUE_FAMILY_EXTERNAL", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier-None-09051", - "text": " If the synchronization2 feature is not enabled, and buffer was created with a sharing mode of VK_SHARING_MODE_CONCURRENT, dstQueueFamilyIndex must be VK_QUEUE_FAMILY_IGNORED or VK_QUEUE_FAMILY_EXTERNAL" + "text": "If the synchronization2 feature is not enabled, and buffer was created with a sharing mode of VK_SHARING_MODE_CONCURRENT, dstQueueFamilyIndex must be VK_QUEUE_FAMILY_IGNORED or VK_QUEUE_FAMILY_EXTERNAL", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER" + "text": "sType must be VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkExternalMemoryAcquireUnmodifiedEXT" + "text": "pNext must be NULL or a pointer to a valid instance of VkExternalMemoryAcquireUnmodifiedEXT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryBarrier-buffer-parameter", - "text": " buffer must be a valid VkBuffer handle" + "text": "buffer must be a valid VkBuffer handle", + "page": "vkspec" } ] }, @@ -5538,651 +6869,818 @@ "core": [ { "vuid": "VUID-VkImageMemoryBarrier2-srcStageMask-03929", - "text": " If the geometryShader feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT" + "text": "If the geometryShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-srcStageMask-03930", - "text": " If the tessellationShader feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT" + "text": "If the tessellationShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-srcStageMask-03931", - "text": " If the conditionalRendering feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT" + "text": "If the conditionalRendering feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-srcStageMask-03932", - "text": " If the fragmentDensityMap feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT" + "text": "If the fragmentDensityMap feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-srcStageMask-03933", - "text": " If the transformFeedback feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT" + "text": "If the transformFeedback feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-srcStageMask-03934", - "text": " If the meshShader feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT" + "text": "If the meshShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-srcStageMask-03935", - "text": " If the taskShader feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT" + "text": "If the taskShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-srcStageMask-07316", - "text": " If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR" + "text": "If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-srcStageMask-04957", - "text": " If the subpassShading feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI" + "text": "If the subpassShading feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-srcStageMask-04995", - "text": " If the invocationMask feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI" + "text": "If the invocationMask feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-srcStageMask-07946", - "text": " If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR" + "text": "If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03900", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If srcAccessMask includes VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03901", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_INDEX_READ_BIT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT, VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If srcAccessMask includes VK_ACCESS_2_INDEX_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT, VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03902", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT, VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If srcAccessMask includes VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT, VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03903", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT, VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If srcAccessMask includes VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT, VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03904", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_UNIFORM_READ_BIT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages" + "text": "If srcAccessMask includes VK_ACCESS_2_UNIFORM_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03905", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_SHADER_SAMPLED_READ_BIT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages" + "text": "If srcAccessMask includes VK_ACCESS_2_SHADER_SAMPLED_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03906", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_SHADER_STORAGE_READ_BIT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages" + "text": "If srcAccessMask includes VK_ACCESS_2_SHADER_STORAGE_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03907", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages" + "text": "If srcAccessMask includes VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-07454", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_SHADER_READ_BIT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages" + "text": "If srcAccessMask includes VK_ACCESS_2_SHADER_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03909", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_SHADER_WRITE_BIT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages" + "text": "If srcAccessMask includes VK_ACCESS_2_SHADER_WRITE_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03910", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If srcAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03911", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If srcAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03912", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If srcAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03913", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If srcAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03914", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_TRANSFER_READ_BIT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT, VK_PIPELINE_STAGE_2_BLIT_BIT, VK_PIPELINE_STAGE_2_RESOLVE_BIT, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If srcAccessMask includes VK_ACCESS_2_TRANSFER_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT, VK_PIPELINE_STAGE_2_BLIT_BIT, VK_PIPELINE_STAGE_2_RESOLVE_BIT, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03915", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_TRANSFER_WRITE_BIT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT, VK_PIPELINE_STAGE_2_BLIT_BIT, VK_PIPELINE_STAGE_2_RESOLVE_BIT, VK_PIPELINE_STAGE_2_CLEAR_BIT, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If srcAccessMask includes VK_ACCESS_2_TRANSFER_WRITE_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT, VK_PIPELINE_STAGE_2_BLIT_BIT, VK_PIPELINE_STAGE_2_RESOLVE_BIT, VK_PIPELINE_STAGE_2_CLEAR_BIT, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, or VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03916", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_HOST_READ_BIT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT" + "text": "If srcAccessMask includes VK_ACCESS_2_HOST_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03917", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_HOST_WRITE_BIT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT" + "text": "If srcAccessMask includes VK_ACCESS_2_HOST_WRITE_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03918", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If srcAccessMask includes VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT, srcStageMask must include VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03919", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If srcAccessMask includes VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT, srcStageMask must include VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03920", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If srcAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT, srcStageMask must include VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-04747", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT, VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If srcAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT, srcStageMask must include VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT, VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03922", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If srcAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT, srcStageMask must include VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03923", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV, pname:srcStageMask must include VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If srcAccessMask includes VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV, srcStageMask must include VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-04994", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI, pname:srcStageMask must include VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI" + "text": "If srcAccessMask includes VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI, srcStageMask must include VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03924", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV, pname:srcStageMask must include VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If srcAccessMask includes VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV, srcStageMask must include VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03925", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV, pname:srcStageMask must include VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If srcAccessMask includes VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV, srcStageMask must include VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03926", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If srcAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT, srcStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03927", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages" + "text": "If srcAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, srcStageMask must include VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03928", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If srcAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR, srcStageMask must include VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-06256", - "text": " If the rayQuery feature is not enabled and pname:srcAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, pname:srcStageMask must not include any of the VK_PIPELINE_STAGE_*_SHADER_BIT stages except VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR" + "text": "If the rayQuery feature is not enabled and srcAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, srcStageMask must not include any of the VK_PIPELINE_STAGE_*_SHADER_BIT stages except VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-07272", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT or VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR" + "text": "If srcAccessMask includes VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR, srcStageMask must include VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT or VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-04858", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR" + "text": "If srcAccessMask includes VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR, srcStageMask must include VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-04859", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR" + "text": "If srcAccessMask includes VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR, srcStageMask must include VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-04860", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR" + "text": "If srcAccessMask includes VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR, srcStageMask must include VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-04861", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR" + "text": "If srcAccessMask includes VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR, srcStageMask must include VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-07455", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV, pname:srcStageMask must include VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV" + "text": "If srcAccessMask includes VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV, srcStageMask must include VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-07456", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV, pname:srcStageMask must include VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV" + "text": "If srcAccessMask includes VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV, srcStageMask must include VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-07457", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT" + "text": "If srcAccessMask includes VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT, srcStageMask must include VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-07458", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_MICROMAP_READ_BIT_EXT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT or VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR" + "text": "If srcAccessMask includes VK_ACCESS_2_MICROMAP_READ_BIT_EXT, srcStageMask must include VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT or VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-08118", - "text": " If pname:srcAccessMask includes VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of VK_PIPELINE_STAGE_*_SHADER_BIT stages" + "text": "If srcAccessMask includes VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT, srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of VK_PIPELINE_STAGE_*_SHADER_BIT stages", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-dstStageMask-03929", - "text": " If the geometryShader feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT" + "text": "If the geometryShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-dstStageMask-03930", - "text": " If the tessellationShader feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT" + "text": "If the tessellationShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-dstStageMask-03931", - "text": " If the conditionalRendering feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT" + "text": "If the conditionalRendering feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-dstStageMask-03932", - "text": " If the fragmentDensityMap feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT" + "text": "If the fragmentDensityMap feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-dstStageMask-03933", - "text": " If the transformFeedback feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT" + "text": "If the transformFeedback feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-dstStageMask-03934", - "text": " If the meshShader feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT" + "text": "If the meshShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-dstStageMask-03935", - "text": " If the taskShader feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT" + "text": "If the taskShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-dstStageMask-07316", - "text": " If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR" + "text": "If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-dstStageMask-04957", - "text": " If the subpassShading feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI" + "text": "If the subpassShading feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-dstStageMask-04995", - "text": " If the invocationMask feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI" + "text": "If the invocationMask feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-dstStageMask-07946", - "text": " If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR" + "text": "If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03900", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If dstAccessMask includes VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03901", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_INDEX_READ_BIT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT, VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If dstAccessMask includes VK_ACCESS_2_INDEX_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT, VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03902", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT, VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If dstAccessMask includes VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT, VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03903", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT, VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If dstAccessMask includes VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT, VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03904", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_UNIFORM_READ_BIT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages" + "text": "If dstAccessMask includes VK_ACCESS_2_UNIFORM_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03905", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_SHADER_SAMPLED_READ_BIT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages" + "text": "If dstAccessMask includes VK_ACCESS_2_SHADER_SAMPLED_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03906", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_SHADER_STORAGE_READ_BIT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages" + "text": "If dstAccessMask includes VK_ACCESS_2_SHADER_STORAGE_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03907", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages" + "text": "If dstAccessMask includes VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-07454", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_SHADER_READ_BIT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages" + "text": "If dstAccessMask includes VK_ACCESS_2_SHADER_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03909", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_SHADER_WRITE_BIT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages" + "text": "If dstAccessMask includes VK_ACCESS_2_SHADER_WRITE_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03910", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If dstAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03911", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If dstAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03912", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If dstAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03913", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If dstAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03914", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_TRANSFER_READ_BIT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT, VK_PIPELINE_STAGE_2_BLIT_BIT, VK_PIPELINE_STAGE_2_RESOLVE_BIT, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If dstAccessMask includes VK_ACCESS_2_TRANSFER_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT, VK_PIPELINE_STAGE_2_BLIT_BIT, VK_PIPELINE_STAGE_2_RESOLVE_BIT, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03915", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_TRANSFER_WRITE_BIT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT, VK_PIPELINE_STAGE_2_BLIT_BIT, VK_PIPELINE_STAGE_2_RESOLVE_BIT, VK_PIPELINE_STAGE_2_CLEAR_BIT, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If dstAccessMask includes VK_ACCESS_2_TRANSFER_WRITE_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT, VK_PIPELINE_STAGE_2_BLIT_BIT, VK_PIPELINE_STAGE_2_RESOLVE_BIT, VK_PIPELINE_STAGE_2_CLEAR_BIT, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, or VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03916", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_HOST_READ_BIT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT" + "text": "If dstAccessMask includes VK_ACCESS_2_HOST_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03917", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_HOST_WRITE_BIT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT" + "text": "If dstAccessMask includes VK_ACCESS_2_HOST_WRITE_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03918", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If dstAccessMask includes VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT, dstStageMask must include VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03919", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If dstAccessMask includes VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT, dstStageMask must include VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03920", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If dstAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT, dstStageMask must include VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-04747", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT, VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If dstAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT, dstStageMask must include VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT, VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03922", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If dstAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT, dstStageMask must include VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03923", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV, pname:dstStageMask must include VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If dstAccessMask includes VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV, dstStageMask must include VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-04994", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI, pname:dstStageMask must include VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI" + "text": "If dstAccessMask includes VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI, dstStageMask must include VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03924", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV, pname:dstStageMask must include VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If dstAccessMask includes VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV, dstStageMask must include VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03925", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV, pname:dstStageMask must include VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If dstAccessMask includes VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV, dstStageMask must include VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03926", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If dstAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT, dstStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03927", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages" + "text": "If dstAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, dstStageMask must include VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03928", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" + "text": "If dstAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR, dstStageMask must include VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-06256", - "text": " If the rayQuery feature is not enabled and pname:dstAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, pname:dstStageMask must not include any of the VK_PIPELINE_STAGE_*_SHADER_BIT stages except VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR" + "text": "If the rayQuery feature is not enabled and dstAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, dstStageMask must not include any of the VK_PIPELINE_STAGE_*_SHADER_BIT stages except VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-07272", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT or VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR" + "text": "If dstAccessMask includes VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR, dstStageMask must include VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT or VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-04858", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR" + "text": "If dstAccessMask includes VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR, dstStageMask must include VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-04859", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR" + "text": "If dstAccessMask includes VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR, dstStageMask must include VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-04860", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR" + "text": "If dstAccessMask includes VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR, dstStageMask must include VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-04861", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR" + "text": "If dstAccessMask includes VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR, dstStageMask must include VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-07455", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV, pname:dstStageMask must include VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV" + "text": "If dstAccessMask includes VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV, dstStageMask must include VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-07456", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV, pname:dstStageMask must include VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV" + "text": "If dstAccessMask includes VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV, dstStageMask must include VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-07457", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT" + "text": "If dstAccessMask includes VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT, dstStageMask must include VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-07458", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_MICROMAP_READ_BIT_EXT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT or VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR" + "text": "If dstAccessMask includes VK_ACCESS_2_MICROMAP_READ_BIT_EXT, dstStageMask must include VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT or VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-08118", - "text": " If pname:dstAccessMask includes VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of VK_PIPELINE_STAGE_*_SHADER_BIT stages" + "text": "If dstAccessMask includes VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT, dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of VK_PIPELINE_STAGE_*_SHADER_BIT stages", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-oldLayout-01208", - "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL then image must have been created with VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT" + "text": "If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL then image must have been created with VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-oldLayout-01209", - "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL then image must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT" + "text": "If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL then image must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-oldLayout-01210", - "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL then image must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT" + "text": "If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL then image must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-oldLayout-01211", - "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL then image must have been created with VK_IMAGE_USAGE_SAMPLED_BIT or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT" + "text": "If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL then image must have been created with VK_IMAGE_USAGE_SAMPLED_BIT or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-oldLayout-01212", - "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL then image must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT" + "text": "If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL then image must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-oldLayout-01213", - "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL then image must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT" + "text": "If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL then image must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-oldLayout-01197", - "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, oldLayout must be VK_IMAGE_LAYOUT_UNDEFINED or the current layout of the image subresources affected by the barrier" + "text": "If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, oldLayout must be VK_IMAGE_LAYOUT_UNDEFINED or the current layout of the image subresources affected by the barrier", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-newLayout-01198", - "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, newLayout must not be VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_PREINITIALIZED" + "text": "If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, newLayout must not be VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_PREINITIALIZED", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-oldLayout-01658", - "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL then image must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT" + "text": "If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL then image must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-oldLayout-01659", - "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL then image must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT" + "text": "If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL then image must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-04065", - "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL then image must have been created with at least one of VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, VK_IMAGE_USAGE_SAMPLED_BIT, or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT" + "text": "If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL then image must have been created with at least one of VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, VK_IMAGE_USAGE_SAMPLED_BIT, or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-04066", - "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL then image must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT set" + "text": "If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL then image must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT set", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-04067", - "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL then image must have been created with at least one of VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, VK_IMAGE_USAGE_SAMPLED_BIT, or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT" + "text": "If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL then image must have been created with at least one of VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, VK_IMAGE_USAGE_SAMPLED_BIT, or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-04068", - "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL then image must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT set" + "text": "If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL then image must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT set", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-synchronization2-07793", - "text": " If the synchronization2 feature is not enabled, oldLayout must not be VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR or VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR" + "text": "If the synchronization2 feature is not enabled, oldLayout must not be VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR or VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-synchronization2-07794", - "text": " If the synchronization2 feature is not enabled, newLayout must not be VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR or VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR" + "text": "If the synchronization2 feature is not enabled, newLayout must not be VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR or VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-03938", - "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL, image must have been created with VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT or VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT" + "text": "If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL, image must have been created with VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT or VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-03939", - "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL, image must have been created with at least one of VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, VK_IMAGE_USAGE_SAMPLED_BIT, or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT" + "text": "If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL, image must have been created with at least one of VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, VK_IMAGE_USAGE_SAMPLED_BIT, or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-oldLayout-02088", - "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR then image must have been created with VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR set" + "text": "If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR then image must have been created with VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR set", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-image-09117", - "text": " If image was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE, and srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, srcQueueFamilyIndex must be VK_QUEUE_FAMILY_EXTERNAL, VK_QUEUE_FAMILY_FOREIGN_EXT, or a valid queue family" + "text": "If image was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE, and srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, srcQueueFamilyIndex must be VK_QUEUE_FAMILY_EXTERNAL, VK_QUEUE_FAMILY_FOREIGN_EXT, or a valid queue family", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-image-09118", - "text": " If image was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE, and srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, dstQueueFamilyIndex must be VK_QUEUE_FAMILY_EXTERNAL, VK_QUEUE_FAMILY_FOREIGN_EXT, or a valid queue family" + "text": "If image was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE, and srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, dstQueueFamilyIndex must be VK_QUEUE_FAMILY_EXTERNAL, VK_QUEUE_FAMILY_FOREIGN_EXT, or a valid queue family", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-04070", - "text": " If srcQueueFamilyIndex is not equal to dstQueueFamilyIndex, at least one of srcQueueFamilyIndex or dstQueueFamilyIndex must not be VK_QUEUE_FAMILY_EXTERNAL or VK_QUEUE_FAMILY_FOREIGN_EXT" + "text": "If srcQueueFamilyIndex is not equal to dstQueueFamilyIndex, at least one of srcQueueFamilyIndex or dstQueueFamilyIndex must not be VK_QUEUE_FAMILY_EXTERNAL or VK_QUEUE_FAMILY_FOREIGN_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-None-09119", - "text": " If the VK_KHR_external_memory extension is not enabled, and the value of VkApplicationInfo::apiVersion used to create the VkInstance is not greater than or equal to Version 1.1, srcQueueFamilyIndex must not be VK_QUEUE_FAMILY_EXTERNAL" + "text": "If the VK_KHR_external_memory extension is not enabled, and the value of VkApplicationInfo::apiVersion used to create the VkInstance is not greater than or equal to Version 1.1, srcQueueFamilyIndex must not be VK_QUEUE_FAMILY_EXTERNAL", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-None-09120", - "text": " If the VK_KHR_external_memory extension is not enabled, and the value of VkApplicationInfo::apiVersion used to create the VkInstance is not greater than or equal to Version 1.1, dstQueueFamilyIndex must not be VK_QUEUE_FAMILY_EXTERNAL" + "text": "If the VK_KHR_external_memory extension is not enabled, and the value of VkApplicationInfo::apiVersion used to create the VkInstance is not greater than or equal to Version 1.1, dstQueueFamilyIndex must not be VK_QUEUE_FAMILY_EXTERNAL", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-09121", - "text": " If the VK_EXT_queue_family_foreign extension is not enabled srcQueueFamilyIndex must not be VK_QUEUE_FAMILY_FOREIGN_EXT" + "text": "If the VK_EXT_queue_family_foreign extension is not enabled srcQueueFamilyIndex must not be VK_QUEUE_FAMILY_FOREIGN_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-dstQueueFamilyIndex-09122", - "text": " If the VK_EXT_queue_family_foreign extension is not enabled dstQueueFamilyIndex must not be VK_QUEUE_FAMILY_FOREIGN_EXT" + "text": "If the VK_EXT_queue_family_foreign extension is not enabled dstQueueFamilyIndex must not be VK_QUEUE_FAMILY_FOREIGN_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-07120", - "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR then image must have been created with VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR" + "text": "If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR then image must have been created with VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-07121", - "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR then image must have been created with VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR" + "text": "If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR then image must have been created with VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-07122", - "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR then image must have been created with VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR" + "text": "If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR then image must have been created with VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-07123", - "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR then image must have been created with VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR" + "text": "If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR then image must have been created with VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-07124", - "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR then image must have been created with VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR" + "text": "If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR then image must have been created with VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-07125", - "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR then image must have been created with VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR" + "text": "If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR then image must have been created with VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-07006", - "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT then image must have been created with either the VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT or VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT usage bits, and the VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT or VK_IMAGE_USAGE_SAMPLED_BIT usage bits, and the VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT usage bit" + "text": "If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT then image must have been created with either the VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT or VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT usage bits, and the VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT or VK_IMAGE_USAGE_SAMPLED_BIT usage bits, and the VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT usage bit", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-attachmentFeedbackLoopLayout-07313", - "text": " If the attachmentFeedbackLoopLayout feature is not enabled, newLayout must not be VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT" + "text": "If the attachmentFeedbackLoopLayout feature is not enabled, newLayout must not be VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-subresourceRange-01486", - "text": " subresourceRange.baseMipLevel must be less than the mipLevels specified in VkImageCreateInfo when image was created" + "text": "subresourceRange.baseMipLevel must be less than the mipLevels specified in VkImageCreateInfo when image was created", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-subresourceRange-01724", - "text": " If subresourceRange.levelCount is not VK_REMAINING_MIP_LEVELS, subresourceRange.baseMipLevel + subresourceRange.levelCount must be less than or equal to the mipLevels specified in VkImageCreateInfo when image was created" + "text": "If subresourceRange.levelCount is not VK_REMAINING_MIP_LEVELS, subresourceRange.baseMipLevel + subresourceRange.levelCount must be less than or equal to the mipLevels specified in VkImageCreateInfo when image was created", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-subresourceRange-01488", - "text": " subresourceRange.baseArrayLayer must be less than the arrayLayers specified in VkImageCreateInfo when image was created" + "text": "subresourceRange.baseArrayLayer must be less than the arrayLayers specified in VkImageCreateInfo when image was created", + "page": "vkspec" }, { "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 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": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-image-01932", - "text": " If image is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If image is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { - "vuid": "VUID-VkImageMemoryBarrier2-image-01671", - "text": " If image has a single-plane color format or is not disjoint, then the aspectMask member of subresourceRange must be VK_IMAGE_ASPECT_COLOR_BIT" + "vuid": "VUID-VkImageMemoryBarrier2-image-09241", + "text": "If image has a color format that is single-plane, then the aspectMask member of subresourceRange must be VK_IMAGE_ASPECT_COLOR_BIT", + "page": "vkspec" + }, + { + "vuid": "VUID-VkImageMemoryBarrier2-image-09242", + "text": "If image has a color format and is not disjoint, then the aspectMask member of subresourceRange must be VK_IMAGE_ASPECT_COLOR_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-image-01672", - "text": " If image has a multi-planar format and the image is disjoint, then the aspectMask member of subresourceRange must include at least one multi-planar aspect mask or VK_IMAGE_ASPECT_COLOR_BIT" + "text": "If image has a multi-planar format and the image is disjoint, then the aspectMask member of subresourceRange must include at least one multi-planar aspect mask bit or VK_IMAGE_ASPECT_COLOR_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-image-03319", - "text": " If image has a depth/stencil format with both depth and stencil and the separateDepthStencilLayouts feature is enabled, then the aspectMask member of subresourceRange must include either or both VK_IMAGE_ASPECT_DEPTH_BIT and VK_IMAGE_ASPECT_STENCIL_BIT" + "text": "If image has a depth/stencil format with both depth and stencil and the separateDepthStencilLayouts feature is enabled, then the aspectMask member of subresourceRange must include either or both VK_IMAGE_ASPECT_DEPTH_BIT and VK_IMAGE_ASPECT_STENCIL_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-image-03320", - "text": " If image has a depth/stencil format with both depth and stencil and the separateDepthStencilLayouts feature is not enabled, then the aspectMask member of subresourceRange must include both VK_IMAGE_ASPECT_DEPTH_BIT and VK_IMAGE_ASPECT_STENCIL_BIT" + "text": "If image has a depth/stencil format with both depth and stencil and the separateDepthStencilLayouts feature is not enabled, then the aspectMask member of subresourceRange must include both VK_IMAGE_ASPECT_DEPTH_BIT and VK_IMAGE_ASPECT_STENCIL_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-aspectMask-08702", - "text": " If the aspectMask member of subresourceRange includes VK_IMAGE_ASPECT_DEPTH_BIT, oldLayout and newLayout must not be one of VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL" + "text": "If the aspectMask member of subresourceRange includes VK_IMAGE_ASPECT_DEPTH_BIT, oldLayout and newLayout must not be one of VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-aspectMask-08703", - "text": " If the aspectMask member of subresourceRange includes VK_IMAGE_ASPECT_STENCIL_BIT, oldLayout and newLayout must not be one of VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL" + "text": "If the aspectMask member of subresourceRange includes VK_IMAGE_ASPECT_STENCIL_BIT, oldLayout and newLayout must not be one of VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-srcStageMask-03854", - "text": " If either srcStageMask or dstStageMask includes VK_PIPELINE_STAGE_2_HOST_BIT, srcQueueFamilyIndex and dstQueueFamilyIndex must be equal" + "text": "If either srcStageMask or dstStageMask includes VK_PIPELINE_STAGE_2_HOST_BIT, srcQueueFamilyIndex and dstQueueFamilyIndex must be equal", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-srcStageMask-03855", - "text": " If srcStageMask includes VK_PIPELINE_STAGE_2_HOST_BIT, and srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, oldLayout must be one of VK_IMAGE_LAYOUT_PREINITIALIZED, VK_IMAGE_LAYOUT_UNDEFINED, or VK_IMAGE_LAYOUT_GENERAL" + "text": "If srcStageMask includes VK_PIPELINE_STAGE_2_HOST_BIT, and srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, oldLayout must be one of VK_IMAGE_LAYOUT_PREINITIALIZED, VK_IMAGE_LAYOUT_UNDEFINED, or VK_IMAGE_LAYOUT_GENERAL", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2" + "text": "sType must be VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-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 VkExternalMemoryAcquireUnmodifiedEXT or VkSampleLocationsInfoEXT" + "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 VkExternalMemoryAcquireUnmodifiedEXT or VkSampleLocationsInfoEXT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-srcStageMask-parameter", - "text": " srcStageMask must be a valid combination of VkPipelineStageFlagBits2 values" + "text": "srcStageMask must be a valid combination of VkPipelineStageFlagBits2 values", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-parameter", - "text": " srcAccessMask must be a valid combination of VkAccessFlagBits2 values" + "text": "srcAccessMask must be a valid combination of VkAccessFlagBits2 values", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-dstStageMask-parameter", - "text": " dstStageMask must be a valid combination of VkPipelineStageFlagBits2 values" + "text": "dstStageMask must be a valid combination of VkPipelineStageFlagBits2 values", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-parameter", - "text": " dstAccessMask must be a valid combination of VkAccessFlagBits2 values" + "text": "dstAccessMask must be a valid combination of VkAccessFlagBits2 values", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-oldLayout-parameter", - "text": " oldLayout must be a valid VkImageLayout value" + "text": "oldLayout must be a valid VkImageLayout value", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-newLayout-parameter", - "text": " newLayout must be a valid VkImageLayout value" + "text": "newLayout must be a valid VkImageLayout value", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-image-parameter", - "text": " image must be a valid VkImage handle" + "text": "image must be a valid VkImage handle", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier2-subresourceRange-parameter", - "text": " subresourceRange must be a valid VkImageSubresourceRange structure" + "text": "subresourceRange must be a valid VkImageSubresourceRange structure", + "page": "vkspec" } ] }, @@ -6190,223 +7688,283 @@ "core": [ { "vuid": "VUID-VkImageMemoryBarrier-oldLayout-01208", - "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL then image must have been created with VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT" + "text": "If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL then image must have been created with VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier-oldLayout-01209", - "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL then image must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT" + "text": "If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL then image must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier-oldLayout-01210", - "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL then image must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT" + "text": "If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL then image must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier-oldLayout-01211", - "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL then image must have been created with VK_IMAGE_USAGE_SAMPLED_BIT or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT" + "text": "If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL then image must have been created with VK_IMAGE_USAGE_SAMPLED_BIT or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier-oldLayout-01212", - "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL then image must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT" + "text": "If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL then image must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier-oldLayout-01213", - "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL then image must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT" + "text": "If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL then image must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier-oldLayout-01197", - "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, oldLayout must be VK_IMAGE_LAYOUT_UNDEFINED or the current layout of the image subresources affected by the barrier" + "text": "If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, oldLayout must be VK_IMAGE_LAYOUT_UNDEFINED or the current layout of the image subresources affected by the barrier", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier-newLayout-01198", - "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, newLayout must not be VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_PREINITIALIZED" + "text": "If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, newLayout must not be VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_PREINITIALIZED", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier-oldLayout-01658", - "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL then image must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT" + "text": "If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL then image must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier-oldLayout-01659", - "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL then image must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT" + "text": "If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL then image must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-04065", - "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL then image must have been created with at least one of VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, VK_IMAGE_USAGE_SAMPLED_BIT, or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT" + "text": "If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL then image must have been created with at least one of VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, VK_IMAGE_USAGE_SAMPLED_BIT, or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-04066", - "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL then image must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT set" + "text": "If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL then image must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT set", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-04067", - "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL then image must have been created with at least one of VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, VK_IMAGE_USAGE_SAMPLED_BIT, or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT" + "text": "If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL then image must have been created with at least one of VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, VK_IMAGE_USAGE_SAMPLED_BIT, or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-04068", - "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL then image must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT set" + "text": "If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL then image must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT set", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier-synchronization2-07793", - "text": " If the synchronization2 feature is not enabled, oldLayout must not be VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR or VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR" + "text": "If the synchronization2 feature is not enabled, oldLayout must not be VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR or VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier-synchronization2-07794", - "text": " If the synchronization2 feature is not enabled, newLayout must not be VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR or VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR" + "text": "If the synchronization2 feature is not enabled, newLayout must not be VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR or VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-03938", - "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL, image must have been created with VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT or VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT" + "text": "If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL, image must have been created with VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT or VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-03939", - "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL, image must have been created with at least one of VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, VK_IMAGE_USAGE_SAMPLED_BIT, or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT" + "text": "If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL, image must have been created with at least one of VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, VK_IMAGE_USAGE_SAMPLED_BIT, or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier-oldLayout-02088", - "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR then image must have been created with VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR set" + "text": "If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR then image must have been created with VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR set", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier-image-09117", - "text": " If image was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE, and srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, srcQueueFamilyIndex must be VK_QUEUE_FAMILY_EXTERNAL, VK_QUEUE_FAMILY_FOREIGN_EXT, or a valid queue family" + "text": "If image was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE, and srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, srcQueueFamilyIndex must be VK_QUEUE_FAMILY_EXTERNAL, VK_QUEUE_FAMILY_FOREIGN_EXT, or a valid queue family", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier-image-09118", - "text": " If image was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE, and srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, dstQueueFamilyIndex must be VK_QUEUE_FAMILY_EXTERNAL, VK_QUEUE_FAMILY_FOREIGN_EXT, or a valid queue family" + "text": "If image was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE, and srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, dstQueueFamilyIndex must be VK_QUEUE_FAMILY_EXTERNAL, VK_QUEUE_FAMILY_FOREIGN_EXT, or a valid queue family", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-04070", - "text": " If srcQueueFamilyIndex is not equal to dstQueueFamilyIndex, at least one of srcQueueFamilyIndex or dstQueueFamilyIndex must not be VK_QUEUE_FAMILY_EXTERNAL or VK_QUEUE_FAMILY_FOREIGN_EXT" + "text": "If srcQueueFamilyIndex is not equal to dstQueueFamilyIndex, at least one of srcQueueFamilyIndex or dstQueueFamilyIndex must not be VK_QUEUE_FAMILY_EXTERNAL or VK_QUEUE_FAMILY_FOREIGN_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier-None-09119", - "text": " If the VK_KHR_external_memory extension is not enabled, and the value of VkApplicationInfo::apiVersion used to create the VkInstance is not greater than or equal to Version 1.1, srcQueueFamilyIndex must not be VK_QUEUE_FAMILY_EXTERNAL" + "text": "If the VK_KHR_external_memory extension is not enabled, and the value of VkApplicationInfo::apiVersion used to create the VkInstance is not greater than or equal to Version 1.1, srcQueueFamilyIndex must not be VK_QUEUE_FAMILY_EXTERNAL", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier-None-09120", - "text": " If the VK_KHR_external_memory extension is not enabled, and the value of VkApplicationInfo::apiVersion used to create the VkInstance is not greater than or equal to Version 1.1, dstQueueFamilyIndex must not be VK_QUEUE_FAMILY_EXTERNAL" + "text": "If the VK_KHR_external_memory extension is not enabled, and the value of VkApplicationInfo::apiVersion used to create the VkInstance is not greater than or equal to Version 1.1, dstQueueFamilyIndex must not be VK_QUEUE_FAMILY_EXTERNAL", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-09121", - "text": " If the VK_EXT_queue_family_foreign extension is not enabled srcQueueFamilyIndex must not be VK_QUEUE_FAMILY_FOREIGN_EXT" + "text": "If the VK_EXT_queue_family_foreign extension is not enabled srcQueueFamilyIndex must not be VK_QUEUE_FAMILY_FOREIGN_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier-dstQueueFamilyIndex-09122", - "text": " If the VK_EXT_queue_family_foreign extension is not enabled dstQueueFamilyIndex must not be VK_QUEUE_FAMILY_FOREIGN_EXT" + "text": "If the VK_EXT_queue_family_foreign extension is not enabled dstQueueFamilyIndex must not be VK_QUEUE_FAMILY_FOREIGN_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-07120", - "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR then image must have been created with VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR" + "text": "If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR then image must have been created with VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-07121", - "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR then image must have been created with VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR" + "text": "If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR then image must have been created with VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-07122", - "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR then image must have been created with VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR" + "text": "If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR then image must have been created with VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-07123", - "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR then image must have been created with VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR" + "text": "If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR then image must have been created with VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-07124", - "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR then image must have been created with VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR" + "text": "If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR then image must have been created with VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-07125", - "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR then image must have been created with VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR" + "text": "If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR then image must have been created with VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-07006", - "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT then image must have been created with either the VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT or VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT usage bits, and the VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT or VK_IMAGE_USAGE_SAMPLED_BIT usage bits, and the VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT usage bit" + "text": "If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT then image must have been created with either the VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT or VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT usage bits, and the VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT or VK_IMAGE_USAGE_SAMPLED_BIT usage bits, and the VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT usage bit", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier-attachmentFeedbackLoopLayout-07313", - "text": " If the attachmentFeedbackLoopLayout feature is not enabled, newLayout must not be VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT" + "text": "If the attachmentFeedbackLoopLayout feature is not enabled, newLayout must not be VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier-subresourceRange-01486", - "text": " subresourceRange.baseMipLevel must be less than the mipLevels specified in VkImageCreateInfo when image was created" + "text": "subresourceRange.baseMipLevel must be less than the mipLevels specified in VkImageCreateInfo when image was created", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier-subresourceRange-01724", - "text": " If subresourceRange.levelCount is not VK_REMAINING_MIP_LEVELS, subresourceRange.baseMipLevel + subresourceRange.levelCount must be less than or equal to the mipLevels specified in VkImageCreateInfo when image was created" + "text": "If subresourceRange.levelCount is not VK_REMAINING_MIP_LEVELS, subresourceRange.baseMipLevel + subresourceRange.levelCount must be less than or equal to the mipLevels specified in VkImageCreateInfo when image was created", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier-subresourceRange-01488", - "text": " subresourceRange.baseArrayLayer must be less than the arrayLayers specified in VkImageCreateInfo when image was created" + "text": "subresourceRange.baseArrayLayer must be less than the arrayLayers specified in VkImageCreateInfo when image was created", + "page": "vkspec" }, { "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 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": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier-image-01932", - "text": " If image is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If image is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { - "vuid": "VUID-VkImageMemoryBarrier-image-01671", - "text": " If image has a single-plane color format or is not disjoint, then the aspectMask member of subresourceRange must be VK_IMAGE_ASPECT_COLOR_BIT" + "vuid": "VUID-VkImageMemoryBarrier-image-09241", + "text": "If image has a color format that is single-plane, then the aspectMask member of subresourceRange must be VK_IMAGE_ASPECT_COLOR_BIT", + "page": "vkspec" + }, + { + "vuid": "VUID-VkImageMemoryBarrier-image-09242", + "text": "If image has a color format and is not disjoint, then the aspectMask member of subresourceRange must be VK_IMAGE_ASPECT_COLOR_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier-image-01672", - "text": " If image has a multi-planar format and the image is disjoint, then the aspectMask member of subresourceRange must include at least one multi-planar aspect mask or VK_IMAGE_ASPECT_COLOR_BIT" + "text": "If image has a multi-planar format and the image is disjoint, then the aspectMask member of subresourceRange must include at least one multi-planar aspect mask bit or VK_IMAGE_ASPECT_COLOR_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier-image-03319", - "text": " If image has a depth/stencil format with both depth and stencil and the separateDepthStencilLayouts feature is enabled, then the aspectMask member of subresourceRange must include either or both VK_IMAGE_ASPECT_DEPTH_BIT and VK_IMAGE_ASPECT_STENCIL_BIT" + "text": "If image has a depth/stencil format with both depth and stencil and the separateDepthStencilLayouts feature is enabled, then the aspectMask member of subresourceRange must include either or both VK_IMAGE_ASPECT_DEPTH_BIT and VK_IMAGE_ASPECT_STENCIL_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier-image-03320", - "text": " If image has a depth/stencil format with both depth and stencil and the separateDepthStencilLayouts feature is not enabled, then the aspectMask member of subresourceRange must include both VK_IMAGE_ASPECT_DEPTH_BIT and VK_IMAGE_ASPECT_STENCIL_BIT" + "text": "If image has a depth/stencil format with both depth and stencil and the separateDepthStencilLayouts feature is not enabled, then the aspectMask member of subresourceRange must include both VK_IMAGE_ASPECT_DEPTH_BIT and VK_IMAGE_ASPECT_STENCIL_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier-aspectMask-08702", - "text": " If the aspectMask member of subresourceRange includes VK_IMAGE_ASPECT_DEPTH_BIT, oldLayout and newLayout must not be one of VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL" + "text": "If the aspectMask member of subresourceRange includes VK_IMAGE_ASPECT_DEPTH_BIT, oldLayout and newLayout must not be one of VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier-aspectMask-08703", - "text": " If the aspectMask member of subresourceRange includes VK_IMAGE_ASPECT_STENCIL_BIT, oldLayout and newLayout must not be one of VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL" + "text": "If the aspectMask member of subresourceRange includes VK_IMAGE_ASPECT_STENCIL_BIT, oldLayout and newLayout must not be one of VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier-None-09052", - "text": " If the synchronization2 feature is not enabled, and image was created with a sharing mode of VK_SHARING_MODE_CONCURRENT, at least one of srcQueueFamilyIndex and dstQueueFamilyIndex must be VK_QUEUE_FAMILY_IGNORED" + "text": "If the synchronization2 feature is not enabled, and image was created with a sharing mode of VK_SHARING_MODE_CONCURRENT, at least one of srcQueueFamilyIndex and dstQueueFamilyIndex must be VK_QUEUE_FAMILY_IGNORED", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier-None-09053", - "text": " If the synchronization2 feature is not enabled, and image was created with a sharing mode of VK_SHARING_MODE_CONCURRENT, srcQueueFamilyIndex must be VK_QUEUE_FAMILY_IGNORED or VK_QUEUE_FAMILY_EXTERNAL" + "text": "If the synchronization2 feature is not enabled, and image was created with a sharing mode of VK_SHARING_MODE_CONCURRENT, srcQueueFamilyIndex must be VK_QUEUE_FAMILY_IGNORED or VK_QUEUE_FAMILY_EXTERNAL", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier-None-09054", - "text": " If the synchronization2 feature is not enabled, and image was created with a sharing mode of VK_SHARING_MODE_CONCURRENT, dstQueueFamilyIndex must be VK_QUEUE_FAMILY_IGNORED or VK_QUEUE_FAMILY_EXTERNAL" + "text": "If the synchronization2 feature is not enabled, and image was created with a sharing mode of VK_SHARING_MODE_CONCURRENT, dstQueueFamilyIndex must be VK_QUEUE_FAMILY_IGNORED or VK_QUEUE_FAMILY_EXTERNAL", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER" + "text": "sType must be VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier-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 VkExternalMemoryAcquireUnmodifiedEXT or VkSampleLocationsInfoEXT" + "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 VkExternalMemoryAcquireUnmodifiedEXT or VkSampleLocationsInfoEXT", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier-oldLayout-parameter", - "text": " oldLayout must be a valid VkImageLayout value" + "text": "oldLayout must be a valid VkImageLayout value", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier-newLayout-parameter", - "text": " newLayout must be a valid VkImageLayout value" + "text": "newLayout must be a valid VkImageLayout value", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier-image-parameter", - "text": " image must be a valid VkImage handle" + "text": "image must be a valid VkImage handle", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryBarrier-subresourceRange-parameter", - "text": " subresourceRange must be a valid VkImageSubresourceRange structure" + "text": "subresourceRange must be a valid VkImageSubresourceRange structure", + "page": "vkspec" } ] }, @@ -6414,15 +7972,18 @@ "core": [ { "vuid": "VUID-vkTransitionImageLayoutEXT-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkTransitionImageLayoutEXT-pTransitions-parameter", - "text": " pTransitions must be a valid pointer to an array of transitionCount valid VkHostImageLayoutTransitionInfoEXT structures" + "text": "pTransitions must be a valid pointer to an array of transitionCount valid VkHostImageLayoutTransitionInfoEXT structures", + "page": "vkspec" }, { "vuid": "VUID-vkTransitionImageLayoutEXT-transitionCount-arraylength", - "text": " transitionCount must be greater than 0" + "text": "transitionCount must be greater than 0", + "page": "vkspec" } ] }, @@ -6430,83 +7991,113 @@ "core": [ { "vuid": "VUID-VkHostImageLayoutTransitionInfoEXT-image-09055", - "text": " image must have been created with VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT" + "text": "image must have been created with VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkHostImageLayoutTransitionInfoEXT-subresourceRange-01486", - "text": " subresourceRange.baseMipLevel must be less than the mipLevels specified in VkImageCreateInfo when image was created" + "text": "subresourceRange.baseMipLevel must be less than the mipLevels specified in VkImageCreateInfo when image was created", + "page": "vkspec" }, { "vuid": "VUID-VkHostImageLayoutTransitionInfoEXT-subresourceRange-01724", - "text": " If subresourceRange.levelCount is not VK_REMAINING_MIP_LEVELS, subresourceRange.baseMipLevel + subresourceRange.levelCount must be less than or equal to the mipLevels specified in VkImageCreateInfo when image was created" + "text": "If subresourceRange.levelCount is not VK_REMAINING_MIP_LEVELS, subresourceRange.baseMipLevel + subresourceRange.levelCount must be less than or equal to the mipLevels specified in VkImageCreateInfo when image was created", + "page": "vkspec" }, { "vuid": "VUID-VkHostImageLayoutTransitionInfoEXT-subresourceRange-01488", - "text": " subresourceRange.baseArrayLayer must be less than the arrayLayers specified in VkImageCreateInfo when image was created" + "text": "subresourceRange.baseArrayLayer must be less than the arrayLayers specified in VkImageCreateInfo when image was created", + "page": "vkspec" }, { "vuid": "VUID-VkHostImageLayoutTransitionInfoEXT-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 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": "vkspec" }, { "vuid": "VUID-VkHostImageLayoutTransitionInfoEXT-image-01932", - "text": " If image is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If image is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { - "vuid": "VUID-VkHostImageLayoutTransitionInfoEXT-image-01671", - "text": " If image has a single-plane color format or is not disjoint, then the aspectMask member of subresourceRange must be VK_IMAGE_ASPECT_COLOR_BIT" + "vuid": "VUID-VkHostImageLayoutTransitionInfoEXT-image-09241", + "text": "If image has a color format that is single-plane, then the aspectMask member of subresourceRange must be VK_IMAGE_ASPECT_COLOR_BIT", + "page": "vkspec" + }, + { + "vuid": "VUID-VkHostImageLayoutTransitionInfoEXT-image-09242", + "text": "If image has a color format and is not disjoint, then the aspectMask member of subresourceRange must be VK_IMAGE_ASPECT_COLOR_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkHostImageLayoutTransitionInfoEXT-image-01672", - "text": " If image has a multi-planar format and the image is disjoint, then the aspectMask member of subresourceRange must include at least one multi-planar aspect mask or VK_IMAGE_ASPECT_COLOR_BIT" + "text": "If image has a multi-planar format and the image is disjoint, then the aspectMask member of subresourceRange must include at least one multi-planar aspect mask bit or VK_IMAGE_ASPECT_COLOR_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkHostImageLayoutTransitionInfoEXT-image-03319", - "text": " If image has a depth/stencil format with both depth and stencil and the separateDepthStencilLayouts feature is enabled, then the aspectMask member of subresourceRange must include either or both VK_IMAGE_ASPECT_DEPTH_BIT and VK_IMAGE_ASPECT_STENCIL_BIT" + "text": "If image has a depth/stencil format with both depth and stencil and the separateDepthStencilLayouts feature is enabled, then the aspectMask member of subresourceRange must include either or both VK_IMAGE_ASPECT_DEPTH_BIT and VK_IMAGE_ASPECT_STENCIL_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkHostImageLayoutTransitionInfoEXT-image-03320", - "text": " If image has a depth/stencil format with both depth and stencil and the separateDepthStencilLayouts feature is not enabled, then the aspectMask member of subresourceRange must include both VK_IMAGE_ASPECT_DEPTH_BIT and VK_IMAGE_ASPECT_STENCIL_BIT" + "text": "If image has a depth/stencil format with both depth and stencil and the separateDepthStencilLayouts feature is not enabled, then the aspectMask member of subresourceRange must include both VK_IMAGE_ASPECT_DEPTH_BIT and VK_IMAGE_ASPECT_STENCIL_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkHostImageLayoutTransitionInfoEXT-aspectMask-08702", - "text": " If the aspectMask member of subresourceRange includes VK_IMAGE_ASPECT_DEPTH_BIT, oldLayout and newLayout must not be one of VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL" + "text": "If the aspectMask member of subresourceRange includes VK_IMAGE_ASPECT_DEPTH_BIT, oldLayout and newLayout must not be one of VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkHostImageLayoutTransitionInfoEXT-aspectMask-08703", - "text": " If the aspectMask member of subresourceRange includes VK_IMAGE_ASPECT_STENCIL_BIT, oldLayout and newLayout must not be one of VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL" + "text": "If the aspectMask member of subresourceRange includes VK_IMAGE_ASPECT_STENCIL_BIT, oldLayout and newLayout must not be one of VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL", + "page": "vkspec" }, { - "vuid": "VUID-VkHostImageLayoutTransitionInfoEXT-oldLayout-09056", - "text": " oldLayout must be either VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_PREINITIALIZED, or one of the layouts in VkPhysicalDeviceHostImageCopyPropertiesEXT::pCopySrcLayouts" + "vuid": "VUID-VkHostImageLayoutTransitionInfoEXT-oldLayout-09229", + "text": "oldLayout must be either VK_IMAGE_LAYOUT_UNDEFINED or the current layout of the image subresources as specified in subresourceRange", + "page": "vkspec" + }, + { + "vuid": "VUID-VkHostImageLayoutTransitionInfoEXT-oldLayout-09230", + "text": "If oldLayout is not VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_PREINITIALIZED, it must be one of the layouts in VkPhysicalDeviceHostImageCopyPropertiesEXT::pCopySrcLayouts", + "page": "vkspec" }, { "vuid": "VUID-VkHostImageLayoutTransitionInfoEXT-newLayout-09057", - "text": " newLayout must be one of the layouts in VkPhysicalDeviceHostImageCopyPropertiesEXT::pCopyDstLayouts" + "text": "newLayout must be one of the layouts in VkPhysicalDeviceHostImageCopyPropertiesEXT::pCopyDstLayouts", + "page": "vkspec" }, { "vuid": "VUID-VkHostImageLayoutTransitionInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkHostImageLayoutTransitionInfoEXT-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkHostImageLayoutTransitionInfoEXT-image-parameter", - "text": " image must be a valid VkImage handle" + "text": "image must be a valid VkImage handle", + "page": "vkspec" }, { "vuid": "VUID-VkHostImageLayoutTransitionInfoEXT-oldLayout-parameter", - "text": " oldLayout must be a valid VkImageLayout value" + "text": "oldLayout must be a valid VkImageLayout value", + "page": "vkspec" }, { "vuid": "VUID-VkHostImageLayoutTransitionInfoEXT-newLayout-parameter", - "text": " newLayout must be a valid VkImageLayout value" + "text": "newLayout must be a valid VkImageLayout value", + "page": "vkspec" }, { "vuid": "VUID-VkHostImageLayoutTransitionInfoEXT-subresourceRange-parameter", - "text": " subresourceRange must be a valid VkImageSubresourceRange structure" + "text": "subresourceRange must be a valid VkImageSubresourceRange structure", + "page": "vkspec" } ] }, @@ -6514,11 +8105,13 @@ "core": [ { "vuid": "VUID-VkExternalMemoryAcquireUnmodifiedEXT-acquireUnmodifiedMemory-08922", - "text": " If acquireUnmodifiedMemory is VK_TRUE, and the memory barrier’s srcQueueFamilyIndex is a special queue family reserved for external memory ownership transfers (as described in Queue Family Ownership Transfer), then each range of VkDeviceMemory bound to the resource must have remained unmodified during all time since the resource’s most recent release of ownership to the queue family." + "text": "If acquireUnmodifiedMemory is VK_TRUE, and the memory barrier’s srcQueueFamilyIndex is a special queue family reserved for external memory ownership transfers (as described in Queue Family Ownership Transfer), then each range of VkDeviceMemory bound to the resource must have remained unmodified during all time since the resource’s most recent release of ownership to the queue family.", + "page": "vkspec" }, { "vuid": "VUID-VkExternalMemoryAcquireUnmodifiedEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT", + "page": "vkspec" } ] }, @@ -6526,7 +8119,8 @@ "core": [ { "vuid": "VUID-vkQueueWaitIdle-queue-parameter", - "text": " queue must be a valid VkQueue handle" + "text": "queue must be a valid VkQueue handle", + "page": "vkspec" } ] }, @@ -6534,31 +8128,42 @@ "core": [ { "vuid": "VUID-vkDeviceWaitIdle-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" } ] }, "vkGetCalibratedTimestampsEXT": { "core": [ + { + "vuid": "VUID-vkGetCalibratedTimestampsEXT-timeDomain-09246", + "text": "The timeDomain value of each VkCalibratedTimestampInfoEXT in pTimestampInfos must be unique", + "page": "vkspec" + }, { "vuid": "VUID-vkGetCalibratedTimestampsEXT-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetCalibratedTimestampsEXT-pTimestampInfos-parameter", - "text": " pTimestampInfos must be a valid pointer to an array of timestampCount valid VkCalibratedTimestampInfoEXT structures" + "text": "pTimestampInfos must be a valid pointer to an array of timestampCount valid VkCalibratedTimestampInfoEXT structures", + "page": "vkspec" }, { "vuid": "VUID-vkGetCalibratedTimestampsEXT-pTimestamps-parameter", - "text": " pTimestamps must be a valid pointer to an array of timestampCount uint64_t values" + "text": "pTimestamps must be a valid pointer to an array of timestampCount uint64_t values", + "page": "vkspec" }, { "vuid": "VUID-vkGetCalibratedTimestampsEXT-pMaxDeviation-parameter", - "text": " pMaxDeviation must be a valid pointer to a uint64_t value" + "text": "pMaxDeviation must be a valid pointer to a uint64_t value", + "page": "vkspec" }, { "vuid": "VUID-vkGetCalibratedTimestampsEXT-timestampCount-arraylength", - "text": " timestampCount must be greater than 0" + "text": "timestampCount must be greater than 0", + "page": "vkspec" } ] }, @@ -6566,19 +8171,23 @@ "core": [ { "vuid": "VUID-VkCalibratedTimestampInfoEXT-timeDomain-02354", - "text": " timeDomain must be one of the VkTimeDomainEXT values returned by vkGetPhysicalDeviceCalibrateableTimeDomainsEXT" + "text": "timeDomain must be one of the VkTimeDomainEXT values returned by vkGetPhysicalDeviceCalibrateableTimeDomainsEXT", + "page": "vkspec" }, { "vuid": "VUID-VkCalibratedTimestampInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkCalibratedTimestampInfoEXT-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkCalibratedTimestampInfoEXT-timeDomain-parameter", - "text": " timeDomain must be a valid VkTimeDomainEXT value" + "text": "timeDomain must be a valid VkTimeDomainEXT value", + "page": "vkspec" } ] }, @@ -6586,35 +8195,43 @@ "core": [ { "vuid": "VUID-vkCmdBeginRendering-dynamicRendering-06446", - "text": " The dynamicRendering feature must be enabled" + "text": "The dynamicRendering feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginRendering-commandBuffer-06068", - "text": " If commandBuffer is a secondary command buffer, pRenderingInfo->flags must not include VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT" + "text": "If commandBuffer is a secondary command buffer, and the nestedCommandBuffer feature is not enabled, pRenderingInfo->flags must not include VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginRendering-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginRendering-pRenderingInfo-parameter", - "text": " pRenderingInfo must be a valid pointer to a valid VkRenderingInfo structure" + "text": "pRenderingInfo must be a valid pointer to a valid VkRenderingInfo structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginRendering-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginRendering-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginRendering-renderpass", - "text": " This command must only be called outside of a render pass instance" + "text": "This command must only be called outside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginRendering-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -6622,287 +8239,388 @@ "core": [ { "vuid": "VUID-VkRenderingInfo-viewMask-06069", - "text": " If viewMask is 0, layerCount must not be 0" + "text": "If viewMask is 0, layerCount must not be 0", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingInfo-multisampledRenderToSingleSampled-06857", - "text": " If none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature are enabled, imageView members of pDepthAttachment, pStencilAttachment, and elements of pColorAttachments that are not VK_NULL_HANDLE must have been created with the same sampleCount" + "text": "If none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature are enabled, imageView members of pDepthAttachment, pStencilAttachment, and elements of pColorAttachments that are not VK_NULL_HANDLE must have been created with the same sampleCount", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingInfo-None-08994", - "text": " If VkDeviceGroupRenderPassBeginInfo::deviceRenderAreaCount is 0, renderArea.extent.width must be greater than 0" + "text": "If VkDeviceGroupRenderPassBeginInfo::deviceRenderAreaCount is 0, renderArea.extent.width must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingInfo-None-08995", - "text": " If VkDeviceGroupRenderPassBeginInfo::deviceRenderAreaCount is 0, renderArea.extent.height must be greater than 0" + "text": "If VkDeviceGroupRenderPassBeginInfo::deviceRenderAreaCount is 0, renderArea.extent.height must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingInfo-imageView-06858", - "text": " If multisampled-render-to-single-sampled is enabled, then all attachments referenced by imageView members of pDepthAttachment, pStencilAttachment, and elements of pColorAttachments that are not VK_NULL_HANDLE must have a sample count that is either VK_SAMPLE_COUNT_1_BIT or equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples" + "text": "If multisampled-render-to-single-sampled is enabled, then all attachments referenced by imageView members of pDepthAttachment, pStencilAttachment, and elements of pColorAttachments that are not VK_NULL_HANDLE must have a sample count that is either VK_SAMPLE_COUNT_1_BIT or equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingInfo-imageView-06859", - "text": " If multisampled-render-to-single-sampled is enabled, then all attachments referenced by imageView members of pDepthAttachment, pStencilAttachment, and elements of pColorAttachments that are not VK_NULL_HANDLE and have a sample count of VK_SAMPLE_COUNT_1_BIT must have been created with VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT in their VkImageCreateInfo::flags" + "text": "If multisampled-render-to-single-sampled is enabled, then all attachments referenced by imageView members of pDepthAttachment, pStencilAttachment, and elements of pColorAttachments that are not VK_NULL_HANDLE and have a sample count of VK_SAMPLE_COUNT_1_BIT must have been created with VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT in their VkImageCreateInfo::flags", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingInfo-pNext-06077", - "text": " If the pNext chain does not contain VkDeviceGroupRenderPassBeginInfo or its deviceRenderAreaCount member is equal to 0, renderArea.offset.x must be greater than or equal to 0" + "text": "If the pNext chain does not contain VkDeviceGroupRenderPassBeginInfo or its deviceRenderAreaCount member is equal to 0, renderArea.offset.x must be greater than or equal to 0", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingInfo-pNext-06078", - "text": " If the pNext chain does not contain VkDeviceGroupRenderPassBeginInfo or its deviceRenderAreaCount member is equal to 0, renderArea.offset.y must be greater than or equal to 0" + "text": "If the pNext chain does not contain VkDeviceGroupRenderPassBeginInfo or its deviceRenderAreaCount member is equal to 0, renderArea.offset.y must be greater than or equal to 0", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingInfo-pNext-07815", - "text": " If the pNext chain does not contain VkDeviceGroupRenderPassBeginInfo or its deviceRenderAreaCount member is equal to 0, the sum of renderArea.extent.width and renderArea.offset.x must be less than or equal to maxFramebufferWidth" + "text": "If the pNext chain does not contain VkDeviceGroupRenderPassBeginInfo or its deviceRenderAreaCount member is equal to 0, the sum of renderArea.extent.width and renderArea.offset.x must be less than or equal to maxFramebufferWidth", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingInfo-pNext-07816", - "text": " If the pNext chain does not contain VkDeviceGroupRenderPassBeginInfo or its deviceRenderAreaCount member is equal to 0, the sum of renderArea.extent.height and renderArea.offset.y must be less than or equal to maxFramebufferHeight" + "text": "If the pNext chain does not contain VkDeviceGroupRenderPassBeginInfo or its deviceRenderAreaCount member is equal to 0, the sum of renderArea.extent.height and renderArea.offset.y must be less than or equal to maxFramebufferHeight", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingInfo-pNext-06079", - "text": " If the pNext chain does not contain VkDeviceGroupRenderPassBeginInfo or its deviceRenderAreaCount member is equal to 0, the width of the imageView member of any element of pColorAttachments, pDepthAttachment, or pStencilAttachment that is not VK_NULL_HANDLE must be greater than or equal to renderArea.offset.x + renderArea.extent.width" + "text": "If the pNext chain does not contain VkDeviceGroupRenderPassBeginInfo or its deviceRenderAreaCount member is equal to 0, the width of the imageView member of any element of pColorAttachments, pDepthAttachment, or pStencilAttachment that is not VK_NULL_HANDLE must be greater than or equal to renderArea.offset.x + renderArea.extent.width", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingInfo-pNext-06080", - "text": " If the pNext chain does not contain VkDeviceGroupRenderPassBeginInfo or its deviceRenderAreaCount member is equal to 0, the height of the imageView member of any element of pColorAttachments, pDepthAttachment, or pStencilAttachment that is not VK_NULL_HANDLE must be greater than or equal to renderArea.offset.y + renderArea.extent.height" + "text": "If the pNext chain does not contain VkDeviceGroupRenderPassBeginInfo or its deviceRenderAreaCount member is equal to 0, the height of the imageView member of any element of pColorAttachments, pDepthAttachment, or pStencilAttachment that is not VK_NULL_HANDLE must be greater than or equal to renderArea.offset.y + renderArea.extent.height", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingInfo-pNext-06083", - "text": " If the pNext chain contains VkDeviceGroupRenderPassBeginInfo, the width of the imageView member of any element of pColorAttachments, pDepthAttachment, or pStencilAttachment that is not VK_NULL_HANDLE must be greater than or equal to the sum of the offset.x and extent.width members of each element of pDeviceRenderAreas" + "text": "If the pNext chain contains VkDeviceGroupRenderPassBeginInfo, the width of the imageView member of any element of pColorAttachments, pDepthAttachment, or pStencilAttachment that is not VK_NULL_HANDLE must be greater than or equal to the sum of the offset.x and extent.width members of each element of pDeviceRenderAreas", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingInfo-pNext-06084", - "text": " If the pNext chain contains VkDeviceGroupRenderPassBeginInfo, the height of the imageView member of any element of pColorAttachments, pDepthAttachment, or pStencilAttachment that is not VK_NULL_HANDLE must be greater than or equal to the sum of the offset.y and extent.height members of each element of pDeviceRenderAreas" + "text": "If the pNext chain contains VkDeviceGroupRenderPassBeginInfo, the height of the imageView member of any element of pColorAttachments, pDepthAttachment, or pStencilAttachment that is not VK_NULL_HANDLE must be greater than or equal to the sum of the offset.y and extent.height members of each element of pDeviceRenderAreas", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingInfo-pDepthAttachment-06085", - "text": " If neither pDepthAttachment or pStencilAttachment are NULL and the imageView member of either structure is not VK_NULL_HANDLE, the imageView member of each structure must be the same" + "text": "If neither pDepthAttachment or pStencilAttachment are NULL and the imageView member of either structure is not VK_NULL_HANDLE, the imageView member of each structure must be the same", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingInfo-pDepthAttachment-06086", - "text": " If neither pDepthAttachment or pStencilAttachment are NULL, and the resolveMode member of each is not VK_RESOLVE_MODE_NONE, the resolveImageView member of each structure must be the same" + "text": "If neither pDepthAttachment or pStencilAttachment are NULL, and the resolveMode member of each is not VK_RESOLVE_MODE_NONE, the resolveImageView member of each structure must be the same", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingInfo-colorAttachmentCount-06087", - "text": " If colorAttachmentCount is not 0 and the imageView member of an element of pColorAttachments is not VK_NULL_HANDLE, that imageView must have been created with VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT" + "text": "If colorAttachmentCount is not 0 and the imageView member of an element of pColorAttachments is not VK_NULL_HANDLE, that imageView must have been created with VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingInfo-pDepthAttachment-06547", - "text": " If pDepthAttachment is not NULL and pDepthAttachment->imageView is not VK_NULL_HANDLE, pDepthAttachment->imageView must have been created with a format that includes a depth component" + "text": "If pDepthAttachment is not NULL and pDepthAttachment->imageView is not VK_NULL_HANDLE, pDepthAttachment->imageView must have been created with a format that includes a depth component", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingInfo-pDepthAttachment-06088", - "text": " If pDepthAttachment is not NULL and pDepthAttachment->imageView is not VK_NULL_HANDLE, pDepthAttachment->imageView must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT" + "text": "If pDepthAttachment is not NULL and pDepthAttachment->imageView is not VK_NULL_HANDLE, pDepthAttachment->imageView must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingInfo-pStencilAttachment-06548", - "text": " If pStencilAttachment is not NULL and pStencilAttachment->imageView is not VK_NULL_HANDLE, pStencilAttachment->imageView must have been created with a format that includes a stencil aspect" + "text": "If pStencilAttachment is not NULL and pStencilAttachment->imageView is not VK_NULL_HANDLE, pStencilAttachment->imageView must have been created with a format that includes a stencil aspect", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingInfo-pStencilAttachment-06089", - "text": " If pStencilAttachment is not NULL and pStencilAttachment->imageView is not VK_NULL_HANDLE, pStencilAttachment->imageView must have been created with a stencil usage including VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT" + "text": "If pStencilAttachment is not NULL and pStencilAttachment->imageView is not VK_NULL_HANDLE, pStencilAttachment->imageView must have been created with a stencil usage including VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingInfo-colorAttachmentCount-06090", - "text": " If colorAttachmentCount is not 0 and the imageView member of an element of pColorAttachments is not VK_NULL_HANDLE, the layout member of that element of pColorAttachments must not be VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL" + "text": "If colorAttachmentCount is not 0 and the imageView member of an element of pColorAttachments is not VK_NULL_HANDLE, the layout member of that element of pColorAttachments must not be VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingInfo-colorAttachmentCount-06091", - "text": " If colorAttachmentCount is not 0 and the imageView member of an element of pColorAttachments is not VK_NULL_HANDLE, if the resolveMode member of that element of pColorAttachments is not VK_RESOLVE_MODE_NONE, its resolveImageLayout member must not be VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL" + "text": "If colorAttachmentCount is not 0 and the imageView member of an element of pColorAttachments is not VK_NULL_HANDLE, if the resolveMode member of that element of pColorAttachments is not VK_RESOLVE_MODE_NONE, its resolveImageLayout member must not be VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingInfo-pDepthAttachment-06092", - "text": " If pDepthAttachment is not NULL and pDepthAttachment->imageView is not VK_NULL_HANDLE, pDepthAttachment->layout must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL" + "text": "If pDepthAttachment is not NULL and pDepthAttachment->imageView is not VK_NULL_HANDLE, pDepthAttachment->layout must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingInfo-pDepthAttachment-06093", - "text": " If pDepthAttachment is not NULL, pDepthAttachment->imageView is not VK_NULL_HANDLE, and pDepthAttachment->resolveMode is not VK_RESOLVE_MODE_NONE, pDepthAttachment->resolveImageLayout must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL" + "text": "If pDepthAttachment is not NULL, pDepthAttachment->imageView is not VK_NULL_HANDLE, and pDepthAttachment->resolveMode is not VK_RESOLVE_MODE_NONE, pDepthAttachment->resolveImageLayout must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingInfo-pStencilAttachment-06094", - "text": " If pStencilAttachment is not NULL and pStencilAttachment->imageView is not VK_NULL_HANDLE, pStencilAttachment->layout must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL" + "text": "If pStencilAttachment is not NULL and pStencilAttachment->imageView is not VK_NULL_HANDLE, pStencilAttachment->layout must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingInfo-pStencilAttachment-06095", - "text": " If pStencilAttachment is not NULL, pStencilAttachment->imageView is not VK_NULL_HANDLE, and pStencilAttachment->resolveMode is not VK_RESOLVE_MODE_NONE, pStencilAttachment->resolveImageLayout must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL" + "text": "If pStencilAttachment is not NULL, pStencilAttachment->imageView is not VK_NULL_HANDLE, and pStencilAttachment->resolveMode is not VK_RESOLVE_MODE_NONE, pStencilAttachment->resolveImageLayout must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingInfo-colorAttachmentCount-06096", - "text": " If colorAttachmentCount is not 0 and the imageView member of an element of pColorAttachments is not VK_NULL_HANDLE, the layout member of that element of pColorAttachments must not be VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL" + "text": "If colorAttachmentCount is not 0 and the imageView member of an element of pColorAttachments is not VK_NULL_HANDLE, the layout member of that element of pColorAttachments must not be VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingInfo-colorAttachmentCount-06097", - "text": " If colorAttachmentCount is not 0 and the imageView member of an element of pColorAttachments is not VK_NULL_HANDLE, if the resolveMode member of that element of pColorAttachments is not VK_RESOLVE_MODE_NONE, its resolveImageLayout member must not be VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL" + "text": "If colorAttachmentCount is not 0 and the imageView member of an element of pColorAttachments is not VK_NULL_HANDLE, if the resolveMode member of that element of pColorAttachments is not VK_RESOLVE_MODE_NONE, its resolveImageLayout member must not be VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingInfo-pDepthAttachment-06098", - "text": " If pDepthAttachment is not NULL, pDepthAttachment->imageView is not VK_NULL_HANDLE, and pDepthAttachment->resolveMode is not VK_RESOLVE_MODE_NONE, pDepthAttachment->resolveImageLayout must not be VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL" + "text": "If pDepthAttachment is not NULL, pDepthAttachment->imageView is not VK_NULL_HANDLE, and pDepthAttachment->resolveMode is not VK_RESOLVE_MODE_NONE, pDepthAttachment->resolveImageLayout must not be VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingInfo-pStencilAttachment-06099", - "text": " If pStencilAttachment is not NULL, pStencilAttachment->imageView is not VK_NULL_HANDLE, and pStencilAttachment->resolveMode is not VK_RESOLVE_MODE_NONE, pStencilAttachment->resolveImageLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL" + "text": "If pStencilAttachment is not NULL, pStencilAttachment->imageView is not VK_NULL_HANDLE, and pStencilAttachment->resolveMode is not VK_RESOLVE_MODE_NONE, pStencilAttachment->resolveImageLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingInfo-colorAttachmentCount-06100", - "text": " If colorAttachmentCount is not 0 and the imageView member of an element of pColorAttachments is not VK_NULL_HANDLE, the layout member of that element of pColorAttachments must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL" + "text": "If colorAttachmentCount is not 0 and the imageView member of an element of pColorAttachments is not VK_NULL_HANDLE, the layout member of that element of pColorAttachments must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingInfo-colorAttachmentCount-06101", - "text": " If colorAttachmentCount is not 0 and the imageView member of an element of pColorAttachments is not VK_NULL_HANDLE, if the resolveMode member of that element of pColorAttachments is not VK_RESOLVE_MODE_NONE, its resolveImageLayout member must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL" + "text": "If colorAttachmentCount is not 0 and the imageView member of an element of pColorAttachments is not VK_NULL_HANDLE, if the resolveMode member of that element of pColorAttachments is not VK_RESOLVE_MODE_NONE, its resolveImageLayout member must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingInfo-pDepthAttachment-07732", - "text": " If pDepthAttachment is not NULL and pDepthAttachment->imageView is not VK_NULL_HANDLE, pDepthAttachment->layout must not be VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL" + "text": "If pDepthAttachment is not NULL and pDepthAttachment->imageView is not VK_NULL_HANDLE, pDepthAttachment->layout must not be VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingInfo-pDepthAttachment-07733", - "text": " If pDepthAttachment is not NULL, pDepthAttachment->imageView is not VK_NULL_HANDLE, and pDepthAttachment->resolveMode is not VK_RESOLVE_MODE_NONE, pDepthAttachment->resolveImageLayout must not be VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL" + "text": "If pDepthAttachment is not NULL, pDepthAttachment->imageView is not VK_NULL_HANDLE, and pDepthAttachment->resolveMode is not VK_RESOLVE_MODE_NONE, pDepthAttachment->resolveImageLayout must not be VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingInfo-pStencilAttachment-07734", - "text": " If pStencilAttachment is not NULL and pStencilAttachment->imageView is not VK_NULL_HANDLE, pStencilAttachment->layout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL" + "text": "If pStencilAttachment is not NULL and pStencilAttachment->imageView is not VK_NULL_HANDLE, pStencilAttachment->layout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingInfo-pStencilAttachment-07735", - "text": " If pStencilAttachment is not NULL, pStencilAttachment->imageView is not VK_NULL_HANDLE, and pStencilAttachment->resolveMode is not VK_RESOLVE_MODE_NONE, pStencilAttachment->resolveImageLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL" + "text": "If pStencilAttachment is not NULL, pStencilAttachment->imageView is not VK_NULL_HANDLE, and pStencilAttachment->resolveMode is not VK_RESOLVE_MODE_NONE, pStencilAttachment->resolveImageLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingInfo-pDepthAttachment-06102", - "text": " If pDepthAttachment is not NULL and pDepthAttachment->imageView is not VK_NULL_HANDLE, pDepthAttachment->resolveMode must be one of the bits set in VkPhysicalDeviceDepthStencilResolveProperties::supportedDepthResolveModes" + "text": "If pDepthAttachment is not NULL and pDepthAttachment->imageView is not VK_NULL_HANDLE, pDepthAttachment->resolveMode must be one of the bits set in VkPhysicalDeviceDepthStencilResolveProperties::supportedDepthResolveModes", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingInfo-pStencilAttachment-06103", - "text": " If pStencilAttachment is not NULL and pStencilAttachment->imageView is not VK_NULL_HANDLE, pStencilAttachment->resolveMode must be one of the bits set in VkPhysicalDeviceDepthStencilResolveProperties::supportedStencilResolveModes" + "text": "If pStencilAttachment is not NULL and pStencilAttachment->imageView is not VK_NULL_HANDLE, pStencilAttachment->resolveMode must be one of the bits set in VkPhysicalDeviceDepthStencilResolveProperties::supportedStencilResolveModes", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingInfo-pDepthAttachment-06104", - "text": " If pDepthAttachment or pStencilAttachment are both not NULL, pDepthAttachment->imageView and pStencilAttachment->imageView are both not VK_NULL_HANDLE, and VkPhysicalDeviceDepthStencilResolveProperties::independentResolveNone is VK_FALSE, the resolveMode of both structures must be the same value" + "text": "If pDepthAttachment or pStencilAttachment are both not NULL, pDepthAttachment->imageView and pStencilAttachment->imageView are both not VK_NULL_HANDLE, and VkPhysicalDeviceDepthStencilResolveProperties::independentResolveNone is VK_FALSE, the resolveMode of both structures must be the same value", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingInfo-pDepthAttachment-06105", - "text": " If pDepthAttachment or pStencilAttachment are both not NULL, pDepthAttachment->imageView and pStencilAttachment->imageView are both not VK_NULL_HANDLE, VkPhysicalDeviceDepthStencilResolveProperties::independentResolve is VK_FALSE, and the resolveMode of neither structure is VK_RESOLVE_MODE_NONE, the resolveMode of both structures must be the same value" + "text": "If pDepthAttachment or pStencilAttachment are both not NULL, pDepthAttachment->imageView and pStencilAttachment->imageView are both not VK_NULL_HANDLE, VkPhysicalDeviceDepthStencilResolveProperties::independentResolve is VK_FALSE, and the resolveMode of neither structure is VK_RESOLVE_MODE_NONE, the resolveMode of both structures must be the same value", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingInfo-colorAttachmentCount-06106", - "text": " colorAttachmentCount must be less than or equal to VkPhysicalDeviceLimits::maxColorAttachments" + "text": "colorAttachmentCount must be less than or equal to VkPhysicalDeviceLimits::maxColorAttachments", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingInfo-imageView-06107", - "text": " If the imageView member of a VkRenderingFragmentDensityMapAttachmentInfoEXT structure included in the pNext chain is not VK_NULL_HANDLE, and the fragmentDensityMapNonSubsampledImages feature is not enabled, valid imageView and resolveImageView members of pDepthAttachment, pStencilAttachment, and each element of pColorAttachments must be a VkImageView created with VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT" + "text": "If the imageView member of a VkRenderingFragmentDensityMapAttachmentInfoEXT structure included in the pNext chain is not VK_NULL_HANDLE, and the fragmentDensityMapNonSubsampledImages feature is not enabled, valid imageView and resolveImageView members of pDepthAttachment, pStencilAttachment, and each element of pColorAttachments must be a VkImageView created with VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingInfo-imageView-06108", - "text": " If the imageView member of a VkRenderingFragmentDensityMapAttachmentInfoEXT structure included in the pNext chain is not VK_NULL_HANDLE, and viewMask is not 0, imageView must have a layerCount greater than or equal to the index of the most significant bit in viewMask" + "text": "If the imageView member of a VkRenderingFragmentDensityMapAttachmentInfoEXT structure included in the pNext chain is not VK_NULL_HANDLE, and viewMask is not 0, imageView must have a layerCount greater than or equal to the index of the most significant bit in viewMask", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingInfo-imageView-06109", - "text": " If the imageView member of a VkRenderingFragmentDensityMapAttachmentInfoEXT structure included in the pNext chain is not VK_NULL_HANDLE, and viewMask is 0, imageView must have a layerCount equal to 1" + "text": "If the imageView member of a VkRenderingFragmentDensityMapAttachmentInfoEXT structure included in the pNext chain is not VK_NULL_HANDLE, and viewMask is 0, imageView must have a layerCount equal to 1", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingInfo-pNext-06112", - "text": " If the pNext chain does not contain VkDeviceGroupRenderPassBeginInfo or its deviceRenderAreaCount member is equal to 0 and the imageView member of a VkRenderingFragmentDensityMapAttachmentInfoEXT structure included in the pNext chain is not VK_NULL_HANDLE, imageView must have a width greater than or equal to \\(\\left\\lceil{\\frac{renderArea_{x}+renderArea_{width}}{maxFragmentDensityTexelSize_{width}}}\\right\\rceil\\)" + "text": "If the pNext chain does not contain VkDeviceGroupRenderPassBeginInfo or its deviceRenderAreaCount member is equal to 0 and the imageView member of a VkRenderingFragmentDensityMapAttachmentInfoEXT structure included in the pNext chain is not VK_NULL_HANDLE, imageView must have a width greater than or equal to \\(\\left\\lceil{\\frac{renderArea_{x}+renderArea_{width}}{maxFragmentDensityTexelSize_{width}}}\\right\\rceil\\)", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingInfo-pNext-06113", - "text": " If the pNext chain contains a VkDeviceGroupRenderPassBeginInfo structure, its deviceRenderAreaCount member is not 0, and the imageView member of a VkRenderingFragmentDensityMapAttachmentInfoEXT structure included in the pNext chain is not VK_NULL_HANDLE, imageView must have a width greater than or equal to \\(\\left\\lceil{\\frac{pDeviceRenderAreas_{x}+pDeviceRenderAreas_{width}}{maxFragmentDensityTexelSize_{width}}}\\right\\rceil\\) for each element of pDeviceRenderAreas" + "text": "If the pNext chain contains a VkDeviceGroupRenderPassBeginInfo structure, its deviceRenderAreaCount member is not 0, and the imageView member of a VkRenderingFragmentDensityMapAttachmentInfoEXT structure included in the pNext chain is not VK_NULL_HANDLE, imageView must have a width greater than or equal to \\(\\left\\lceil{\\frac{pDeviceRenderAreas_{x}+pDeviceRenderAreas_{width}}{maxFragmentDensityTexelSize_{width}}}\\right\\rceil\\) for each element of pDeviceRenderAreas", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingInfo-pNext-06114", - "text": " If the pNext chain does not contain VkDeviceGroupRenderPassBeginInfo or its deviceRenderAreaCount member is equal to 0 and the imageView member of a VkRenderingFragmentDensityMapAttachmentInfoEXT structure included in the pNext chain is not VK_NULL_HANDLE, imageView must have a height greater than or equal to \\(\\left\\lceil{\\frac{renderArea_{y}+renderArea_{height}}{maxFragmentDensityTexelSize_{height}}}\\right\\rceil\\)" + "text": "If the pNext chain does not contain VkDeviceGroupRenderPassBeginInfo or its deviceRenderAreaCount member is equal to 0 and the imageView member of a VkRenderingFragmentDensityMapAttachmentInfoEXT structure included in the pNext chain is not VK_NULL_HANDLE, imageView must have a height greater than or equal to \\(\\left\\lceil{\\frac{renderArea_{y}+renderArea_{height}}{maxFragmentDensityTexelSize_{height}}}\\right\\rceil\\)", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingInfo-pNext-06115", - "text": " If the pNext chain contains a VkDeviceGroupRenderPassBeginInfo structure, its deviceRenderAreaCount member is not 0, and the imageView member of a VkRenderingFragmentDensityMapAttachmentInfoEXT structure included in the pNext chain is not VK_NULL_HANDLE, imageView must have a height greater than or equal to \\(\\left\\lceil{\\frac{pDeviceRenderAreas_{y}+pDeviceRenderAreas_{height}}{maxFragmentDensityTexelSize_{height}}}\\right\\rceil\\) for each element of pDeviceRenderAreas" + "text": "If the pNext chain contains a VkDeviceGroupRenderPassBeginInfo structure, its deviceRenderAreaCount member is not 0, and the imageView member of a VkRenderingFragmentDensityMapAttachmentInfoEXT structure included in the pNext chain is not VK_NULL_HANDLE, imageView must have a height greater than or equal to \\(\\left\\lceil{\\frac{pDeviceRenderAreas_{y}+pDeviceRenderAreas_{height}}{maxFragmentDensityTexelSize_{height}}}\\right\\rceil\\) for each element of pDeviceRenderAreas", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingInfo-imageView-06116", - "text": " If the imageView member of a VkRenderingFragmentDensityMapAttachmentInfoEXT structure included in the pNext chain is not VK_NULL_HANDLE, it must not be equal to the imageView or resolveImageView member of pDepthAttachment, pStencilAttachment, or any element of pColorAttachments" + "text": "If the imageView member of a VkRenderingFragmentDensityMapAttachmentInfoEXT structure included in the pNext chain is not VK_NULL_HANDLE, it must not be equal to the imageView or resolveImageView member of pDepthAttachment, pStencilAttachment, or any element of pColorAttachments", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingInfo-pNext-06119", - "text": " If the pNext chain does not contain VkDeviceGroupRenderPassBeginInfo or its deviceRenderAreaCount member is equal to 0 and the imageView member of a VkRenderingFragmentShadingRateAttachmentInfoKHR structure included in the pNext chain is not VK_NULL_HANDLE, imageView must have a width greater than or equal to \\(\\left\\lceil{\\frac{renderArea_{x}+renderArea_{width}}{shadingRateAttachmentTexelSize_{width}}}\\right\\rceil\\)" + "text": "If the pNext chain does not contain VkDeviceGroupRenderPassBeginInfo or its deviceRenderAreaCount member is equal to 0 and the imageView member of a VkRenderingFragmentShadingRateAttachmentInfoKHR structure included in the pNext chain is not VK_NULL_HANDLE, imageView must have a width greater than or equal to \\(\\left\\lceil{\\frac{renderArea_{x}+renderArea_{width}}{shadingRateAttachmentTexelSize_{width}}}\\right\\rceil\\)", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingInfo-pNext-06120", - "text": " If the pNext chain contains a VkDeviceGroupRenderPassBeginInfo structure, its deviceRenderAreaCount member is not 0, and the imageView member of a VkRenderingFragmentShadingRateAttachmentInfoKHR structure included in the pNext chain is not VK_NULL_HANDLE, imageView must have a width greater than or equal to \\(\\left\\lceil{\\frac{pDeviceRenderAreas_{x}+pDeviceRenderAreas_{width}}{shadingRateAttachmentTexelSize_{width}}}\\right\\rceil\\) for each element of pDeviceRenderAreas" + "text": "If the pNext chain contains a VkDeviceGroupRenderPassBeginInfo structure, its deviceRenderAreaCount member is not 0, and the imageView member of a VkRenderingFragmentShadingRateAttachmentInfoKHR structure included in the pNext chain is not VK_NULL_HANDLE, imageView must have a width greater than or equal to \\(\\left\\lceil{\\frac{pDeviceRenderAreas_{x}+pDeviceRenderAreas_{width}}{shadingRateAttachmentTexelSize_{width}}}\\right\\rceil\\) for each element of pDeviceRenderAreas", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingInfo-pNext-06121", - "text": " If the pNext chain does not contain VkDeviceGroupRenderPassBeginInfo or its deviceRenderAreaCount member is equal to 0 and the imageView member of a VkRenderingFragmentShadingRateAttachmentInfoKHR structure included in the pNext chain is not VK_NULL_HANDLE, imageView must have a height greater than or equal to \\(\\left\\lceil{\\frac{renderArea_{y}+renderArea_{height}}{shadingRateAttachmentTexelSize_{height}}}\\right\\rceil\\)" + "text": "If the pNext chain does not contain VkDeviceGroupRenderPassBeginInfo or its deviceRenderAreaCount member is equal to 0 and the imageView member of a VkRenderingFragmentShadingRateAttachmentInfoKHR structure included in the pNext chain is not VK_NULL_HANDLE, imageView must have a height greater than or equal to \\(\\left\\lceil{\\frac{renderArea_{y}+renderArea_{height}}{shadingRateAttachmentTexelSize_{height}}}\\right\\rceil\\)", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingInfo-pNext-06122", - "text": " If the pNext chain contains a VkDeviceGroupRenderPassBeginInfo structure, its deviceRenderAreaCount member is not 0, and the imageView member of a VkRenderingFragmentShadingRateAttachmentInfoKHR structure included in the pNext chain is not VK_NULL_HANDLE, imageView must have a height greater than or equal to \\(\\left\\lceil{\\frac{pDeviceRenderAreas_{y}+pDeviceRenderAreas_{height}}{shadingRateAttachmentTexelSize_{height}}}\\right\\rceil\\) for each element of pDeviceRenderAreas" + "text": "If the pNext chain contains a VkDeviceGroupRenderPassBeginInfo structure, its deviceRenderAreaCount member is not 0, and the imageView member of a VkRenderingFragmentShadingRateAttachmentInfoKHR structure included in the pNext chain is not VK_NULL_HANDLE, imageView must have a height greater than or equal to \\(\\left\\lceil{\\frac{pDeviceRenderAreas_{y}+pDeviceRenderAreas_{height}}{shadingRateAttachmentTexelSize_{height}}}\\right\\rceil\\) for each element of pDeviceRenderAreas", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingInfo-layerCount-07817", - "text": " layerCount must be less than or equal to maxFramebufferLayers" + "text": "layerCount must be less than or equal to maxFramebufferLayers", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingInfo-imageView-06123", - "text": " If the imageView member of a VkRenderingFragmentShadingRateAttachmentInfoKHR structure included in the pNext chain is not VK_NULL_HANDLE, and viewMask is 0, imageView must have a layerCount that is either equal to 1 or greater than or equal to layerCount" + "text": "If the imageView member of a VkRenderingFragmentShadingRateAttachmentInfoKHR structure included in the pNext chain is not VK_NULL_HANDLE, and viewMask is 0, imageView must have a layerCount that is either equal to 1 or greater than or equal to layerCount", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingInfo-imageView-06124", - "text": " If the imageView member of a VkRenderingFragmentShadingRateAttachmentInfoKHR structure included in the pNext chain is not VK_NULL_HANDLE, and viewMask is not 0, imageView must have a layerCount that either equal to 1 or greater than or equal to the index of the most significant bit in viewMask" + "text": "If the imageView member of a VkRenderingFragmentShadingRateAttachmentInfoKHR structure included in the pNext chain is not VK_NULL_HANDLE, and viewMask is not 0, imageView must have a layerCount that either equal to 1 or greater than or equal to the index of the most significant bit in viewMask", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingInfo-imageView-06125", - "text": " If the imageView member of a VkRenderingFragmentShadingRateAttachmentInfoKHR structure included in the pNext chain is not VK_NULL_HANDLE, it must not be equal to the imageView or resolveImageView member of pDepthAttachment, pStencilAttachment, or any element of pColorAttachments" + "text": "If the imageView member of a VkRenderingFragmentShadingRateAttachmentInfoKHR structure included in the pNext chain is not VK_NULL_HANDLE, it must not be equal to the imageView or resolveImageView member of pDepthAttachment, pStencilAttachment, or any element of pColorAttachments", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingInfo-imageView-06126", - "text": " If the imageView member of a VkRenderingFragmentShadingRateAttachmentInfoKHR structure included in the pNext chain is not VK_NULL_HANDLE, it must not be equal to the imageView member of a VkRenderingFragmentDensityMapAttachmentInfoEXT structure included in the pNext chain" + "text": "If the imageView member of a VkRenderingFragmentShadingRateAttachmentInfoKHR structure included in the pNext chain is not VK_NULL_HANDLE, it must not be equal to the imageView member of a VkRenderingFragmentDensityMapAttachmentInfoEXT structure included in the pNext chain", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingInfo-multiview-06127", - "text": " If the multiview feature is not enabled, viewMask must be 0" + "text": "If the multiview feature is not enabled, viewMask must be 0", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingInfo-viewMask-06128", - "text": " The index of the most significant bit in viewMask must be less than maxMultiviewViewCount" + "text": "The index of the most significant bit in viewMask must be less than maxMultiviewViewCount", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingInfo-perViewRenderAreaCount-07857", - "text": " If the perViewRenderAreaCount member of a VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM structure included in the pNext chain is not 0, then the multiviewPerViewRenderAreas feature must be enabled." + "text": "If the perViewRenderAreaCount member of a VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM structure included in the pNext chain is not 0, then the multiviewPerViewRenderAreas feature must be enabled.", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingInfo-perViewRenderAreaCount-07858", - "text": " If the perViewRenderAreaCount member of a VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM structure included in the pNext chain is not 0, then renderArea must specify a render area that includes the union of all per view render areas." + "text": "If the perViewRenderAreaCount member of a VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM structure included in the pNext chain is not 0, then renderArea must specify a render area that includes the union of all per view render areas.", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingInfo-None-09044", - "text": " Valid attachments specified by this structure must not be bound to memory locations that are bound to any other valid attachments specified by this structure" + "text": "Valid attachments specified by this structure must not be bound to memory locations that are bound to any other valid attachments specified by this structure", + "page": "vkspec" + }, + { + "vuid": "VUID-VkRenderingInfo-flags-09381", + "text": "If flags includes VK_RENDERING_CONTENTS_INLINE_BIT_EXT then the nestedCommandBuffer feature must be enabled", + "page": "vkspec" + }, + { + "vuid": "VUID-VkRenderingInfo-pDepthAttachment-09318", + "text": "pDepthAttachment->resolveMode must not be VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID", + "page": "vkspec" + }, + { + "vuid": "VUID-VkRenderingInfo-pStencilAttachment-09319", + "text": "pStencilAttachment->resolveMode must not be VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_RENDERING_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_RENDERING_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingInfo-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 VkDeviceGroupRenderPassBeginInfo, VkMultisampledRenderToSingleSampledInfoEXT, VkMultiviewPerViewAttributesInfoNVX, VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM, VkRenderingFragmentDensityMapAttachmentInfoEXT, or VkRenderingFragmentShadingRateAttachmentInfoKHR" + "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 VkDeviceGroupRenderPassBeginInfo, VkMultisampledRenderToSingleSampledInfoEXT, VkMultiviewPerViewAttributesInfoNVX, VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM, VkRenderingFragmentDensityMapAttachmentInfoEXT, or VkRenderingFragmentShadingRateAttachmentInfoKHR", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingInfo-flags-parameter", - "text": " flags must be a valid combination of VkRenderingFlagBits values" + "text": "flags must be a valid combination of VkRenderingFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingInfo-pColorAttachments-parameter", - "text": " If colorAttachmentCount is not 0, pColorAttachments must be a valid pointer to an array of colorAttachmentCount valid VkRenderingAttachmentInfo structures" + "text": "If colorAttachmentCount is not 0, pColorAttachments must be a valid pointer to an array of colorAttachmentCount valid VkRenderingAttachmentInfo structures", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingInfo-pDepthAttachment-parameter", - "text": " If pDepthAttachment is not NULL, pDepthAttachment must be a valid pointer to a valid VkRenderingAttachmentInfo structure" + "text": "If pDepthAttachment is not NULL, pDepthAttachment must be a valid pointer to a valid VkRenderingAttachmentInfo structure", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingInfo-pStencilAttachment-parameter", - "text": " If pStencilAttachment is not NULL, pStencilAttachment must be a valid pointer to a valid VkRenderingAttachmentInfo structure" + "text": "If pStencilAttachment is not NULL, pStencilAttachment must be a valid pointer to a valid VkRenderingAttachmentInfo structure", + "page": "vkspec" } ] }, @@ -6910,123 +8628,193 @@ "core": [ { "vuid": "VUID-VkRenderingAttachmentInfo-imageView-06129", - "text": " If imageView is not VK_NULL_HANDLE and has a non-integer color format, resolveMode must be VK_RESOLVE_MODE_NONE or VK_RESOLVE_MODE_AVERAGE_BIT" + "text": "If imageView is not VK_NULL_HANDLE and has a non-integer color format, resolveMode must be VK_RESOLVE_MODE_NONE or VK_RESOLVE_MODE_AVERAGE_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingAttachmentInfo-imageView-06130", - "text": " If imageView is not VK_NULL_HANDLE and has an integer color format, resolveMode must be VK_RESOLVE_MODE_NONE or VK_RESOLVE_MODE_SAMPLE_ZERO_BIT" + "text": "If imageView is not VK_NULL_HANDLE and has an integer color format, resolveMode must be VK_RESOLVE_MODE_NONE or VK_RESOLVE_MODE_SAMPLE_ZERO_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingAttachmentInfo-imageView-06861", - "text": " If imageView is not VK_NULL_HANDLE, resolveMode is not VK_RESOLVE_MODE_NONE, and the pNext chain of VkRenderingInfo does not includes a VkMultisampledRenderToSingleSampledInfoEXT structure with the multisampledRenderToSingleSampledEnable field equal to VK_TRUE, imageView must not have a sample count of VK_SAMPLE_COUNT_1_BIT" + "text": "If imageView is not VK_NULL_HANDLE, resolveMode is not VK_RESOLVE_MODE_NONE, and the pNext chain of VkRenderingInfo does not includes a VkMultisampledRenderToSingleSampledInfoEXT structure with the multisampledRenderToSingleSampledEnable field equal to VK_TRUE, imageView must not have a sample count of VK_SAMPLE_COUNT_1_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingAttachmentInfo-imageView-06862", - "text": " If imageView is not VK_NULL_HANDLE, resolveMode is not VK_RESOLVE_MODE_NONE, and the pNext chain of VkRenderingInfo does not includes a VkMultisampledRenderToSingleSampledInfoEXT structure with the multisampledRenderToSingleSampledEnable field equal to VK_TRUE, resolveImageView must not be VK_NULL_HANDLE" + "text": "If imageView is not VK_NULL_HANDLE, resolveMode is not VK_RESOLVE_MODE_NONE, and the pNext chain of VkRenderingInfo does not includes a VkMultisampledRenderToSingleSampledInfoEXT structure with the multisampledRenderToSingleSampledEnable field equal to VK_TRUE, resolveImageView must not be VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingAttachmentInfo-imageView-06863", - "text": " If imageView is not VK_NULL_HANDLE, resolveMode is not VK_RESOLVE_MODE_NONE, the pNext chain of VkRenderingInfo includes a VkMultisampledRenderToSingleSampledInfoEXT structure with the multisampledRenderToSingleSampledEnable field equal to VK_TRUE, and imageView has a sample count of VK_SAMPLE_COUNT_1_BIT, resolveImageView must be VK_NULL_HANDLE" + "text": "If imageView is not VK_NULL_HANDLE, resolveMode is not VK_RESOLVE_MODE_NONE, the pNext chain of VkRenderingInfo includes a VkMultisampledRenderToSingleSampledInfoEXT structure with the multisampledRenderToSingleSampledEnable field equal to VK_TRUE, and imageView has a sample count of VK_SAMPLE_COUNT_1_BIT, resolveImageView must be VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingAttachmentInfo-imageView-06864", - "text": " If imageView is not VK_NULL_HANDLE, resolveImageView is not VK_NULL_HANDLE, and resolveMode is not VK_RESOLVE_MODE_NONE, resolveImageView must have a sample count of VK_SAMPLE_COUNT_1_BIT" + "text": "If imageView is not VK_NULL_HANDLE, resolveImageView is not VK_NULL_HANDLE, and resolveMode is not VK_RESOLVE_MODE_NONE, resolveImageView must have a sample count of VK_SAMPLE_COUNT_1_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingAttachmentInfo-imageView-06865", - "text": " If imageView is not VK_NULL_HANDLE, resolveImageView is not VK_NULL_HANDLE, and resolveMode is not VK_RESOLVE_MODE_NONE, imageView and resolveImageView must have the same VkFormat" + "text": "If imageView is not VK_NULL_HANDLE, resolveImageView is not VK_NULL_HANDLE, and resolveMode is not VK_RESOLVE_MODE_NONE, imageView and resolveImageView must have the same VkFormat", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingAttachmentInfo-imageView-06135", - "text": " If imageView is not VK_NULL_HANDLE, imageLayout must not be VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, or VK_IMAGE_LAYOUT_PREINITIALIZED" + "text": "If imageView is not VK_NULL_HANDLE, imageLayout must not be VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, or VK_IMAGE_LAYOUT_PREINITIALIZED", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingAttachmentInfo-imageView-06136", - "text": " If imageView is not VK_NULL_HANDLE and resolveMode is not VK_RESOLVE_MODE_NONE, resolveImageLayout must not be VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, or VK_IMAGE_LAYOUT_PREINITIALIZED" + "text": "If imageView is not VK_NULL_HANDLE and resolveMode is not VK_RESOLVE_MODE_NONE, resolveImageLayout must not be VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, or VK_IMAGE_LAYOUT_PREINITIALIZED", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingAttachmentInfo-imageView-06137", - "text": " If imageView is not VK_NULL_HANDLE and resolveMode is not VK_RESOLVE_MODE_NONE, resolveImageLayout must not be VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL" + "text": "If imageView is not VK_NULL_HANDLE and resolveMode is not VK_RESOLVE_MODE_NONE, resolveImageLayout must not be VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingAttachmentInfo-imageView-06138", - "text": " If imageView is not VK_NULL_HANDLE, imageLayout must not be VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV" + "text": "If imageView is not VK_NULL_HANDLE, imageLayout must not be VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingAttachmentInfo-imageView-06139", - "text": " If imageView is not VK_NULL_HANDLE and resolveMode is not VK_RESOLVE_MODE_NONE, resolveImageLayout must not be VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV" + "text": "If imageView is not VK_NULL_HANDLE and resolveMode is not VK_RESOLVE_MODE_NONE, resolveImageLayout must not be VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingAttachmentInfo-imageView-06140", - "text": " If imageView is not VK_NULL_HANDLE, imageLayout must not be VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT" + "text": "If imageView is not VK_NULL_HANDLE, imageLayout must not be VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingAttachmentInfo-imageView-06141", - "text": " If imageView is not VK_NULL_HANDLE and resolveMode is not VK_RESOLVE_MODE_NONE, resolveImageLayout must not be VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT" + "text": "If imageView is not VK_NULL_HANDLE and resolveMode is not VK_RESOLVE_MODE_NONE, resolveImageLayout must not be VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingAttachmentInfo-imageView-06142", - "text": " If imageView is not VK_NULL_HANDLE and resolveMode is not VK_RESOLVE_MODE_NONE, resolveImageLayout must not be VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR" + "text": "If imageView is not VK_NULL_HANDLE and resolveMode is not VK_RESOLVE_MODE_NONE, resolveImageLayout must not be VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingAttachmentInfo-imageView-06143", - "text": " If imageView is not VK_NULL_HANDLE, imageLayout must not be VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR" + "text": "If imageView is not VK_NULL_HANDLE, imageLayout must not be VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingAttachmentInfo-imageView-06144", - "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" + "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": "vkspec" }, { "vuid": "VUID-VkRenderingAttachmentInfo-imageView-06145", - "text": " If imageView is not VK_NULL_HANDLE, imageLayout must not be VK_IMAGE_LAYOUT_PRESENT_SRC_KHR" + "text": "If imageView is not VK_NULL_HANDLE, imageLayout must not be VK_IMAGE_LAYOUT_PRESENT_SRC_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingAttachmentInfo-imageView-06146", - "text": " If imageView is not VK_NULL_HANDLE and resolveMode is not VK_RESOLVE_MODE_NONE, resolveImageLayout must not be VK_IMAGE_LAYOUT_PRESENT_SRC_KHR" + "text": "If imageView is not VK_NULL_HANDLE and resolveMode is not VK_RESOLVE_MODE_NONE, resolveImageLayout must not be VK_IMAGE_LAYOUT_PRESENT_SRC_KHR", + "page": "vkspec" + }, + { + "vuid": "VUID-VkRenderingAttachmentInfo-externalFormatResolve-09323", + "text": "If externalFormatResolve is not enabled, resolveMode must not be VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID", + "page": "vkspec" + }, + { + "vuid": "VUID-VkRenderingAttachmentInfo-resolveMode-09324", + "text": "If resolveMode is VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, resolveImageView must be a valid image view", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingAttachmentInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingAttachmentInfo-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingAttachmentInfo-imageView-parameter", - "text": " If imageView is not VK_NULL_HANDLE, imageView must be a valid VkImageView handle" + "text": "If imageView is not VK_NULL_HANDLE, imageView must be a valid VkImageView handle", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingAttachmentInfo-imageLayout-parameter", - "text": " imageLayout must be a valid VkImageLayout value" + "text": "imageLayout must be a valid VkImageLayout value", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingAttachmentInfo-resolveMode-parameter", - "text": " If resolveMode is not 0, resolveMode must be a valid VkResolveModeFlagBits value" + "text": "If resolveMode is not 0, resolveMode must be a valid VkResolveModeFlagBits value", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingAttachmentInfo-resolveImageView-parameter", - "text": " If resolveImageView is not VK_NULL_HANDLE, resolveImageView must be a valid VkImageView handle" + "text": "If resolveImageView is not VK_NULL_HANDLE, resolveImageView must be a valid VkImageView handle", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingAttachmentInfo-resolveImageLayout-parameter", - "text": " resolveImageLayout must be a valid VkImageLayout value" + "text": "resolveImageLayout must be a valid VkImageLayout value", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingAttachmentInfo-loadOp-parameter", - "text": " loadOp must be a valid VkAttachmentLoadOp value" + "text": "loadOp must be a valid VkAttachmentLoadOp value", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingAttachmentInfo-storeOp-parameter", - "text": " storeOp must be a valid VkAttachmentStoreOp value" + "text": "storeOp must be a valid VkAttachmentStoreOp value", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingAttachmentInfo-clearValue-parameter", - "text": " clearValue must be a valid VkClearValue union" + "text": "clearValue must be a valid VkClearValue union", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingAttachmentInfo-commonparent", - "text": " Both of imageView, and resolveImageView that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of imageView, and resolveImageView that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -7034,55 +8822,68 @@ "core": [ { "vuid": "VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06147", - "text": " If imageView is not VK_NULL_HANDLE, layout must be VK_IMAGE_LAYOUT_GENERAL or VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR" + "text": "If imageView is not VK_NULL_HANDLE, layout must be VK_IMAGE_LAYOUT_GENERAL or VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06148", - "text": " If imageView is not VK_NULL_HANDLE, it must have been created with VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR" + "text": "If imageView is not VK_NULL_HANDLE, it must have been created with VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06149", - "text": " If imageView is not VK_NULL_HANDLE, shadingRateAttachmentTexelSize.width must be a power of two value" + "text": "If imageView is not VK_NULL_HANDLE, shadingRateAttachmentTexelSize.width must be a power of two value", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06150", - "text": " If imageView is not VK_NULL_HANDLE, shadingRateAttachmentTexelSize.width must be less than or equal to maxFragmentShadingRateAttachmentTexelSize.width" + "text": "If imageView is not VK_NULL_HANDLE, shadingRateAttachmentTexelSize.width must be less than or equal to maxFragmentShadingRateAttachmentTexelSize.width", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06151", - "text": " If imageView is not VK_NULL_HANDLE, shadingRateAttachmentTexelSize.width must be greater than or equal to minFragmentShadingRateAttachmentTexelSize.width" + "text": "If imageView is not VK_NULL_HANDLE, shadingRateAttachmentTexelSize.width must be greater than or equal to minFragmentShadingRateAttachmentTexelSize.width", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06152", - "text": " If imageView is not VK_NULL_HANDLE, shadingRateAttachmentTexelSize.height must be a power of two value" + "text": "If imageView is not VK_NULL_HANDLE, shadingRateAttachmentTexelSize.height must be a power of two value", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06153", - "text": " If imageView is not VK_NULL_HANDLE, shadingRateAttachmentTexelSize.height must be less than or equal to maxFragmentShadingRateAttachmentTexelSize.height" + "text": "If imageView is not VK_NULL_HANDLE, shadingRateAttachmentTexelSize.height must be less than or equal to maxFragmentShadingRateAttachmentTexelSize.height", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06154", - "text": " If imageView is not VK_NULL_HANDLE, shadingRateAttachmentTexelSize.height must be greater than or equal to minFragmentShadingRateAttachmentTexelSize.height" + "text": "If imageView is not VK_NULL_HANDLE, shadingRateAttachmentTexelSize.height must be greater than or equal to minFragmentShadingRateAttachmentTexelSize.height", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06155", - "text": " If imageView is not VK_NULL_HANDLE, the quotient of shadingRateAttachmentTexelSize.width and shadingRateAttachmentTexelSize.height must be less than or equal to maxFragmentShadingRateAttachmentTexelSizeAspectRatio" + "text": "If imageView is not VK_NULL_HANDLE, the quotient of shadingRateAttachmentTexelSize.width and shadingRateAttachmentTexelSize.height must be less than or equal to maxFragmentShadingRateAttachmentTexelSizeAspectRatio", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06156", - "text": " If imageView is not VK_NULL_HANDLE, the quotient of shadingRateAttachmentTexelSize.height and shadingRateAttachmentTexelSize.width must be less than or equal to maxFragmentShadingRateAttachmentTexelSizeAspectRatio" + "text": "If imageView is not VK_NULL_HANDLE, the quotient of shadingRateAttachmentTexelSize.height and shadingRateAttachmentTexelSize.width must be less than or equal to maxFragmentShadingRateAttachmentTexelSizeAspectRatio", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-parameter", - "text": " If imageView is not VK_NULL_HANDLE, imageView must be a valid VkImageView handle" + "text": "If imageView is not VK_NULL_HANDLE, imageView must be a valid VkImageView handle", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageLayout-parameter", - "text": " imageLayout must be a valid VkImageLayout value" + "text": "imageLayout must be a valid VkImageLayout value", + "page": "vkspec" } ] }, @@ -7090,31 +8891,38 @@ "core": [ { "vuid": "VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-imageView-06157", - "text": " If imageView is not VK_NULL_HANDLE, layout must be VK_IMAGE_LAYOUT_GENERAL or VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT" + "text": "If imageView is not VK_NULL_HANDLE, layout must be VK_IMAGE_LAYOUT_GENERAL or VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-imageView-06158", - "text": " If imageView is not VK_NULL_HANDLE, it must have been created with VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT" + "text": "If imageView is not VK_NULL_HANDLE, it must have been created with VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-imageView-06159", - "text": " If imageView is not VK_NULL_HANDLE, it must not have been created with VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT" + "text": "If imageView is not VK_NULL_HANDLE, it must not have been created with VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-apiVersion-07908", - "text": " If VK_KHR_multiview is not enabled, VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, and imageView is not VK_NULL_HANDLE, it must have a layerCount equal to 1" + "text": "If VK_KHR_multiview is not enabled, VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, and imageView is not VK_NULL_HANDLE, it must have a layerCount equal to 1", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-imageView-parameter", - "text": " imageView must be a valid VkImageView handle" + "text": "imageView must be a valid VkImageView handle", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-imageLayout-parameter", - "text": " imageLayout must be a valid VkImageLayout value" + "text": "imageLayout must be a valid VkImageLayout value", + "page": "vkspec" } ] }, @@ -7122,15 +8930,18 @@ "core": [ { "vuid": "VUID-vkGetRenderingAreaGranularityKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetRenderingAreaGranularityKHR-pRenderingAreaInfo-parameter", - "text": " pRenderingAreaInfo must be a valid pointer to a valid VkRenderingAreaInfoKHR structure" + "text": "pRenderingAreaInfo must be a valid pointer to a valid VkRenderingAreaInfoKHR structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetRenderingAreaGranularityKHR-pGranularity-parameter", - "text": " pGranularity must be a valid pointer to a VkExtent2D structure" + "text": "pGranularity must be a valid pointer to a VkExtent2D structure", + "page": "vkspec" } ] }, @@ -7138,11 +8949,13 @@ "core": [ { "vuid": "VUID-VkRenderingAreaInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_RENDERING_AREA_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_RENDERING_AREA_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkRenderingAreaInfoKHR-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" } ] }, @@ -7150,39 +8963,48 @@ "core": [ { "vuid": "VUID-vkCmdEndRendering-None-06161", - "text": " The current render pass instance must have been begun with vkCmdBeginRendering" + "text": "The current render pass instance must have been begun with vkCmdBeginRendering", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndRendering-commandBuffer-06162", - "text": " The current render pass instance must have been begun in commandBuffer" + "text": "The current render pass instance must have been begun in commandBuffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndRendering-None-06781", - "text": " This command must not be recorded when transform feedback is active" + "text": "This command must not be recorded when transform feedback is active", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndRendering-None-06999", - "text": " If vkCmdBeginQuery* was called within the render pass, the corresponding vkCmdEndQuery* must have been called subsequently within the same subpass" + "text": "If vkCmdBeginQuery* was called within the render pass, the corresponding vkCmdEndQuery* must have been called subsequently within the same subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndRendering-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndRendering-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndRendering-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndRendering-renderpass", - "text": " This command must only be called inside of a render pass instance" + "text": "This command must only be called inside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndRendering-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -7190,11 +9012,13 @@ "core": [ { "vuid": "VUID-VkTilePropertiesQCOM-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM" + "text": "sType must be VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM", + "page": "vkspec" }, { "vuid": "VUID-VkTilePropertiesQCOM-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" } ] }, @@ -7202,15 +9026,18 @@ "core": [ { "vuid": "VUID-vkGetDynamicRenderingTilePropertiesQCOM-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetDynamicRenderingTilePropertiesQCOM-pRenderingInfo-parameter", - "text": " pRenderingInfo must be a valid pointer to a valid VkRenderingInfo structure" + "text": "pRenderingInfo must be a valid pointer to a valid VkRenderingInfo structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetDynamicRenderingTilePropertiesQCOM-pProperties-parameter", - "text": " pProperties must be a valid pointer to a VkTilePropertiesQCOM structure" + "text": "pProperties must be a valid pointer to a VkTilePropertiesQCOM structure", + "page": "vkspec" } ] }, @@ -7218,19 +9045,23 @@ "core": [ { "vuid": "VUID-vkCreateRenderPass-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkCreateRenderPass-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkRenderPassCreateInfo structure" + "text": "pCreateInfo must be a valid pointer to a valid VkRenderPassCreateInfo structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateRenderPass-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateRenderPass-pRenderPass-parameter", - "text": " pRenderPass must be a valid pointer to a VkRenderPass handle" + "text": "pRenderPass must be a valid pointer to a VkRenderPass handle", + "page": "vkspec" } ] }, @@ -7238,115 +9069,143 @@ "core": [ { "vuid": "VUID-VkRenderPassCreateInfo-attachment-00834", - "text": " If the attachment member of any element of pInputAttachments, pColorAttachments, pResolveAttachments or pDepthStencilAttachment, or any element of pPreserveAttachments in any element of pSubpasses is not VK_ATTACHMENT_UNUSED, then it must be less than attachmentCount" + "text": "If the attachment member of any element of pInputAttachments, pColorAttachments, pResolveAttachments or pDepthStencilAttachment, or any element of pPreserveAttachments in any element of pSubpasses is not VK_ATTACHMENT_UNUSED, then it must be less than attachmentCount", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassCreateInfo-fragmentDensityMapAttachment-06471", - "text": " If the pNext chain includes a VkRenderPassFragmentDensityMapCreateInfoEXT structure and the fragmentDensityMapAttachment member is not VK_ATTACHMENT_UNUSED, then attachment must be less than attachmentCount" + "text": "If the pNext chain includes a VkRenderPassFragmentDensityMapCreateInfoEXT structure and the fragmentDensityMapAttachment member is not VK_ATTACHMENT_UNUSED, then attachment must be less than attachmentCount", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassCreateInfo-pAttachments-00836", - "text": " For any member of pAttachments with a loadOp equal to VK_ATTACHMENT_LOAD_OP_CLEAR, the first use of that attachment must not specify a layout equal to VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL" + "text": "For any member of pAttachments with a loadOp equal to VK_ATTACHMENT_LOAD_OP_CLEAR, the first use of that attachment must not specify a layout equal to VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassCreateInfo-pAttachments-02511", - "text": " For any member of pAttachments with a stencilLoadOp equal to VK_ATTACHMENT_LOAD_OP_CLEAR, the first use of that attachment must not specify a layout equal to VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL" + "text": "For any member of pAttachments with a stencilLoadOp equal to VK_ATTACHMENT_LOAD_OP_CLEAR, the first use of that attachment must not specify a layout equal to VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassCreateInfo-pAttachments-01566", - "text": " For any member of pAttachments with a loadOp equal to VK_ATTACHMENT_LOAD_OP_CLEAR, the first use of that attachment must not specify a layout equal to VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL" + "text": "For any member of pAttachments with a loadOp equal to VK_ATTACHMENT_LOAD_OP_CLEAR, the first use of that attachment must not specify a layout equal to VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassCreateInfo-pAttachments-01567", - "text": " For any member of pAttachments with a stencilLoadOp equal to VK_ATTACHMENT_LOAD_OP_CLEAR, the first use of that attachment must not specify a layout equal to VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL" + "text": "For any member of pAttachments with a stencilLoadOp equal to VK_ATTACHMENT_LOAD_OP_CLEAR, the first use of that attachment must not specify a layout equal to VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassCreateInfo-pNext-01926", - "text": " If the pNext chain includes a VkRenderPassInputAttachmentAspectCreateInfo structure, the subpass member of each element of its pAspectReferences member must be less than subpassCount" + "text": "If the pNext chain includes a VkRenderPassInputAttachmentAspectCreateInfo structure, the subpass member of each element of its pAspectReferences member must be less than subpassCount", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassCreateInfo-pNext-01927", - "text": " If the pNext chain includes a VkRenderPassInputAttachmentAspectCreateInfo structure, the inputAttachmentIndex member of each element of its pAspectReferences member must be less than the value of inputAttachmentCount in the element of pSubpasses identified by its subpass member" + "text": "If the pNext chain includes a VkRenderPassInputAttachmentAspectCreateInfo structure, the inputAttachmentIndex member of each element of its pAspectReferences member must be less than the value of inputAttachmentCount in the element of pSubpasses identified by its subpass member", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassCreateInfo-pNext-01963", - "text": " If the pNext chain includes a VkRenderPassInputAttachmentAspectCreateInfo structure, for any element of the pInputAttachments member of any element of pSubpasses where the attachment member is not VK_ATTACHMENT_UNUSED, the aspectMask member of the corresponding element of VkRenderPassInputAttachmentAspectCreateInfo::pAspectReferences must only include aspects that are present in images of the format specified by the element of pAttachments at attachment" + "text": "If the pNext chain includes a VkRenderPassInputAttachmentAspectCreateInfo structure, for any element of the pInputAttachments member of any element of pSubpasses where the attachment member is not VK_ATTACHMENT_UNUSED, the aspectMask member of the corresponding element of VkRenderPassInputAttachmentAspectCreateInfo::pAspectReferences must only include aspects that are present in images of the format specified by the element of pAttachments at attachment", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassCreateInfo-pNext-01928", - "text": " If the pNext chain includes a VkRenderPassMultiviewCreateInfo structure, and its subpassCount member is not zero, that member must be equal to the value of subpassCount" + "text": "If the pNext chain includes a VkRenderPassMultiviewCreateInfo structure, and its subpassCount member is not zero, that member must be equal to the value of subpassCount", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassCreateInfo-pNext-01929", - "text": " If the pNext chain includes a VkRenderPassMultiviewCreateInfo structure, if its dependencyCount member is not zero, it must be equal to dependencyCount" + "text": "If the pNext chain includes a VkRenderPassMultiviewCreateInfo structure, if its dependencyCount member is not zero, it must be equal to dependencyCount", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassCreateInfo-pNext-01930", - "text": " If the pNext chain includes a VkRenderPassMultiviewCreateInfo structure, for each non-zero element of pViewOffsets, the srcSubpass and dstSubpass members of pDependencies at the same index must not be equal" + "text": "If the pNext chain includes a VkRenderPassMultiviewCreateInfo structure, for each non-zero element of pViewOffsets, the srcSubpass and dstSubpass members of pDependencies at the same index must not be equal", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassCreateInfo-pNext-02512", - "text": " If the pNext chain includes a VkRenderPassMultiviewCreateInfo structure, for any element of pDependencies with a dependencyFlags member that does not include VK_DEPENDENCY_VIEW_LOCAL_BIT, the corresponding element of the pViewOffsets member of that VkRenderPassMultiviewCreateInfo instance must be 0" + "text": "If the pNext chain includes a VkRenderPassMultiviewCreateInfo structure, for any element of pDependencies with a dependencyFlags member that does not include VK_DEPENDENCY_VIEW_LOCAL_BIT, the corresponding element of the pViewOffsets member of that VkRenderPassMultiviewCreateInfo instance must be 0", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassCreateInfo-pNext-02513", - "text": " If the pNext chain includes a VkRenderPassMultiviewCreateInfo structure, elements of its pViewMasks member must either all be 0, or all not be 0" + "text": "If the pNext chain includes a VkRenderPassMultiviewCreateInfo structure, elements of its pViewMasks member must either all be 0, or all not be 0", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassCreateInfo-pNext-02514", - "text": " If the pNext chain includes a VkRenderPassMultiviewCreateInfo structure, and each element of its pViewMasks member is 0, the dependencyFlags member of each element of pDependencies must not include VK_DEPENDENCY_VIEW_LOCAL_BIT" + "text": "If the pNext chain includes a VkRenderPassMultiviewCreateInfo structure, and each element of its pViewMasks member is 0, the dependencyFlags member of each element of pDependencies must not include VK_DEPENDENCY_VIEW_LOCAL_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassCreateInfo-pNext-02515", - "text": " If the pNext chain includes a VkRenderPassMultiviewCreateInfo structure, and each element of its pViewMasks member is 0, its correlationMaskCount member must be 0" + "text": "If the pNext chain includes a VkRenderPassMultiviewCreateInfo structure, and each element of its pViewMasks member is 0, its correlationMaskCount member must be 0", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassCreateInfo-pDependencies-00837", - "text": " For any element of pDependencies, if the srcSubpass is not VK_SUBPASS_EXTERNAL, all stage flags included in the srcStageMask member of that dependency must be a pipeline stage supported by the pipeline identified by the pipelineBindPoint member of the source subpass" + "text": "For any element of pDependencies, if the srcSubpass is not VK_SUBPASS_EXTERNAL, all stage flags included in the srcStageMask member of that dependency must be a pipeline stage supported by the pipeline identified by the pipelineBindPoint member of the source subpass", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassCreateInfo-pDependencies-00838", - "text": " For any element of pDependencies, if the dstSubpass is not VK_SUBPASS_EXTERNAL, all stage flags included in the dstStageMask member of that dependency must be a pipeline stage supported by the pipeline identified by the pipelineBindPoint member of the destination subpass" + "text": "For any element of pDependencies, if the dstSubpass is not VK_SUBPASS_EXTERNAL, all stage flags included in the dstStageMask member of that dependency must be a pipeline stage supported by the pipeline identified by the pipelineBindPoint member of the destination subpass", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassCreateInfo-pDependencies-06866", - "text": " For any element of pDependencies, if its srcSubpass is not VK_SUBPASS_EXTERNAL, it must be less than subpassCount" + "text": "For any element of pDependencies, if its srcSubpass is not VK_SUBPASS_EXTERNAL, it must be less than subpassCount", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassCreateInfo-pDependencies-06867", - "text": " For any element of pDependencies, if its dstSubpass is not VK_SUBPASS_EXTERNAL, it must be less than subpassCount" + "text": "For any element of pDependencies, if its dstSubpass is not VK_SUBPASS_EXTERNAL, it must be less than subpassCount", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassCreateInfo-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 VkRenderPassFragmentDensityMapCreateInfoEXT, VkRenderPassInputAttachmentAspectCreateInfo, or VkRenderPassMultiviewCreateInfo" + "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 VkRenderPassFragmentDensityMapCreateInfoEXT, VkRenderPassInputAttachmentAspectCreateInfo, or VkRenderPassMultiviewCreateInfo", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassCreateInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassCreateInfo-flags-parameter", - "text": " flags must be a valid combination of VkRenderPassCreateFlagBits values" + "text": "flags must be a valid combination of VkRenderPassCreateFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassCreateInfo-pAttachments-parameter", - "text": " If attachmentCount is not 0, pAttachments must be a valid pointer to an array of attachmentCount valid VkAttachmentDescription structures" + "text": "If attachmentCount is not 0, pAttachments must be a valid pointer to an array of attachmentCount valid VkAttachmentDescription structures", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassCreateInfo-pSubpasses-parameter", - "text": " pSubpasses must be a valid pointer to an array of subpassCount valid VkSubpassDescription structures" + "text": "pSubpasses must be a valid pointer to an array of subpassCount valid VkSubpassDescription structures", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassCreateInfo-pDependencies-parameter", - "text": " If dependencyCount is not 0, pDependencies must be a valid pointer to an array of dependencyCount valid VkSubpassDependency structures" + "text": "If dependencyCount is not 0, pDependencies must be a valid pointer to an array of dependencyCount valid VkSubpassDependency structures", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassCreateInfo-subpassCount-arraylength", - "text": " subpassCount must be greater than 0" + "text": "subpassCount must be greater than 0", + "page": "vkspec" } ] }, @@ -7354,31 +9213,38 @@ "core": [ { "vuid": "VUID-VkRenderPassMultiviewCreateInfo-pCorrelationMasks-00841", - "text": " Each view index must not be set in more than one element of pCorrelationMasks" + "text": "Each view index must not be set in more than one element of pCorrelationMasks", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassMultiviewCreateInfo-multiview-06555", - "text": " If the multiview feature is not enabled, each element of pViewMasks must be 0" + "text": "If the multiview feature is not enabled, each element of pViewMasks must be 0", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassMultiviewCreateInfo-pViewMasks-06697", - "text": " The index of the most significant bit in each element of pViewMasks must be less than maxMultiviewViewCount" + "text": "The index of the most significant bit in each element of pViewMasks must be less than maxMultiviewViewCount", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassMultiviewCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassMultiviewCreateInfo-pViewMasks-parameter", - "text": " If subpassCount is not 0, pViewMasks must be a valid pointer to an array of subpassCount uint32_t values" + "text": "If subpassCount is not 0, pViewMasks must be a valid pointer to an array of subpassCount uint32_t values", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassMultiviewCreateInfo-pViewOffsets-parameter", - "text": " If dependencyCount is not 0, pViewOffsets must be a valid pointer to an array of dependencyCount int32_t values" + "text": "If dependencyCount is not 0, pViewOffsets must be a valid pointer to an array of dependencyCount int32_t values", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassMultiviewCreateInfo-pCorrelationMasks-parameter", - "text": " If correlationMaskCount is not 0, pCorrelationMasks must be a valid pointer to an array of correlationMaskCount uint32_t values" + "text": "If correlationMaskCount is not 0, pCorrelationMasks must be a valid pointer to an array of correlationMaskCount uint32_t values", + "page": "vkspec" } ] }, @@ -7386,7 +9252,8 @@ "core": [ { "vuid": "VUID-VkMultiviewPerViewAttributesInfoNVX-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX" + "text": "sType must be VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX", + "page": "vkspec" } ] }, @@ -7394,175 +9261,217 @@ "core": [ { "vuid": "VUID-VkRenderPassFragmentDensityMapCreateInfoEXT-fragmentDensityMapAttachment-02548", - "text": " If fragmentDensityMapAttachment is not VK_ATTACHMENT_UNUSED, fragmentDensityMapAttachment must not be an element of VkSubpassDescription::pInputAttachments, VkSubpassDescription::pColorAttachments, VkSubpassDescription::pResolveAttachments, VkSubpassDescription::pDepthStencilAttachment, or VkSubpassDescription::pPreserveAttachments for any subpass" + "text": "If fragmentDensityMapAttachment is not VK_ATTACHMENT_UNUSED, fragmentDensityMapAttachment must not be an element of VkSubpassDescription::pInputAttachments, VkSubpassDescription::pColorAttachments, VkSubpassDescription::pResolveAttachments, VkSubpassDescription::pDepthStencilAttachment, or VkSubpassDescription::pPreserveAttachments for any subpass", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassFragmentDensityMapCreateInfoEXT-fragmentDensityMapAttachment-02549", - "text": " If fragmentDensityMapAttachment is not VK_ATTACHMENT_UNUSED, layout must be equal to VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT, or VK_IMAGE_LAYOUT_GENERAL" + "text": "If fragmentDensityMapAttachment is not VK_ATTACHMENT_UNUSED, layout must be equal to VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT, or VK_IMAGE_LAYOUT_GENERAL", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassFragmentDensityMapCreateInfoEXT-fragmentDensityMapAttachment-02550", - "text": " If fragmentDensityMapAttachment is not VK_ATTACHMENT_UNUSED, fragmentDensityMapAttachment must reference an attachment with a loadOp equal to VK_ATTACHMENT_LOAD_OP_LOAD or VK_ATTACHMENT_LOAD_OP_DONT_CARE" + "text": "If fragmentDensityMapAttachment is not VK_ATTACHMENT_UNUSED, fragmentDensityMapAttachment must reference an attachment with a loadOp equal to VK_ATTACHMENT_LOAD_OP_LOAD or VK_ATTACHMENT_LOAD_OP_DONT_CARE", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassFragmentDensityMapCreateInfoEXT-fragmentDensityMapAttachment-02551", - "text": " If fragmentDensityMapAttachment is not VK_ATTACHMENT_UNUSED, fragmentDensityMapAttachment must reference an attachment with a storeOp equal to VK_ATTACHMENT_STORE_OP_DONT_CARE" + "text": "If fragmentDensityMapAttachment is not VK_ATTACHMENT_UNUSED, fragmentDensityMapAttachment must reference an attachment with a storeOp equal to VK_ATTACHMENT_STORE_OP_DONT_CARE", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassFragmentDensityMapCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassFragmentDensityMapCreateInfoEXT-fragmentDensityMapAttachment-parameter", - "text": " fragmentDensityMapAttachment must be a valid VkAttachmentReference structure" + "text": "fragmentDensityMapAttachment must be a valid VkAttachmentReference structure", + "page": "vkspec" } ] }, "VkAttachmentDescription": { "core": [ - { - "vuid": "VUID-VkAttachmentDescription-format-06698", - "text": " format must not be VK_FORMAT_UNDEFINED" - }, { "vuid": "VUID-VkAttachmentDescription-format-06699", - "text": " If format includes a color or depth component and loadOp is VK_ATTACHMENT_LOAD_OP_LOAD, then initialLayout must not be VK_IMAGE_LAYOUT_UNDEFINED" + "text": "If format includes a color or depth component and loadOp is VK_ATTACHMENT_LOAD_OP_LOAD, then initialLayout must not be VK_IMAGE_LAYOUT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription-finalLayout-00843", - "text": " finalLayout must not be VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_PREINITIALIZED" + "text": "finalLayout must not be VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_PREINITIALIZED", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription-format-03280", - "text": " If format is a color format, initialLayout must not be VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL" + "text": "If format is a color format, initialLayout must not be VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription-format-03281", - "text": " If format is a depth/stencil format, initialLayout must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL" + "text": "If format is a depth/stencil format, initialLayout must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription-format-03282", - "text": " If format is a color format, finalLayout must not be VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL" + "text": "If format is a color format, finalLayout must not be VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription-format-03283", - "text": " If format is a depth/stencil format, finalLayout must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL" + "text": "If format is a depth/stencil format, finalLayout must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription-format-06487", - "text": " If format is a color format, initialLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL" + "text": "If format is a color format, initialLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription-format-06488", - "text": " If format is a color format, finalLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL" + "text": "If format is a color format, finalLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription-separateDepthStencilLayouts-03284", - "text": " If the separateDepthStencilLayouts feature is not enabled, initialLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL," + "text": "If the separateDepthStencilLayouts feature is not enabled, initialLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL,", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription-separateDepthStencilLayouts-03285", - "text": " If the separateDepthStencilLayouts feature is not enabled, finalLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL," + "text": "If the separateDepthStencilLayouts feature is not enabled, finalLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL,", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription-format-03286", - "text": " If format is a color format, initialLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL" + "text": "If format is a color format, initialLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription-format-03287", - "text": " If format is a color format, finalLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL" + "text": "If format is a color format, finalLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription-format-06906", - "text": " If format is a depth/stencil format which includes both depth and stencil components, initialLayout must not be VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL" + "text": "If format is a depth/stencil format which includes both depth and stencil components, initialLayout must not be VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription-format-06907", - "text": " If format is a depth/stencil format which includes both depth and stencil components, finalLayout must not be VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL" + "text": "If format is a depth/stencil format which includes both depth and stencil components, finalLayout must not be VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription-format-03290", - "text": " If format is a depth/stencil format which includes only the depth component, initialLayout must not be VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL" + "text": "If format is a depth/stencil format which includes only the depth component, initialLayout must not be VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription-format-03291", - "text": " If format is a depth/stencil format which includes only the depth component, finalLayout must not be VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL" + "text": "If format is a depth/stencil format which includes only the depth component, finalLayout must not be VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription-synchronization2-06908", - "text": " If the synchronization2 feature is not enabled, initialLayout must not be VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR or VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR" + "text": "If the synchronization2 feature is not enabled, initialLayout must not be VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR or VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription-synchronization2-06909", - "text": " If the synchronization2 feature is not enabled, finalLayout must not be VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR or VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR" + "text": "If the synchronization2 feature is not enabled, finalLayout must not be VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR or VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription-attachmentFeedbackLoopLayout-07309", - "text": " If the attachmentFeedbackLoopLayout feature is not enabled, initialLayout must not be VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT" + "text": "If the attachmentFeedbackLoopLayout feature is not enabled, initialLayout must not be VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription-attachmentFeedbackLoopLayout-07310", - "text": " If the attachmentFeedbackLoopLayout feature is not enabled, finalLayout must not be VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT" + "text": "If the attachmentFeedbackLoopLayout feature is not enabled, finalLayout must not be VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription-samples-08745", - "text": " samples must be a bit value that is set in imageCreateSampleCounts (as defined in Image Creation Limits) for the given format" + "text": "samples must be a bit value that is set in imageCreateSampleCounts (as defined in Image Creation Limits) for the given format", + "page": "vkspec" + }, + { + "vuid": "VUID-VkAttachmentDescription-format-06698", + "text": "format must not be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription-format-06700", - "text": " If format includes a stencil component and stencilLoadOp is VK_ATTACHMENT_LOAD_OP_LOAD, then initialLayout must not be VK_IMAGE_LAYOUT_UNDEFINED" + "text": "If format includes a stencil component and stencilLoadOp is VK_ATTACHMENT_LOAD_OP_LOAD, then initialLayout must not be VK_IMAGE_LAYOUT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription-format-03292", - "text": " If format is a depth/stencil format which includes only the stencil component, initialLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL" + "text": "If format is a depth/stencil format which includes only the stencil component, initialLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription-format-03293", - "text": " If format is a depth/stencil format which includes only the stencil component, finalLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL" + "text": "If format is a depth/stencil format which includes only the stencil component, finalLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription-format-06242", - "text": " If format is a depth/stencil format which includes both depth and stencil components, initialLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL" + "text": "If format is a depth/stencil format which includes both depth and stencil components, initialLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription-format-06243", - "text": " If format is a depth/stencil format which includes both depth and stencil components, finalLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL" + "text": "If format is a depth/stencil format which includes both depth and stencil components, finalLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription-flags-parameter", - "text": " flags must be a valid combination of VkAttachmentDescriptionFlagBits values" + "text": "flags must be a valid combination of VkAttachmentDescriptionFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription-format-parameter", - "text": " format must be a valid VkFormat value" + "text": "format must be a valid VkFormat value", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription-samples-parameter", - "text": " samples must be a valid VkSampleCountFlagBits value" + "text": "samples must be a valid VkSampleCountFlagBits value", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription-loadOp-parameter", - "text": " loadOp must be a valid VkAttachmentLoadOp value" + "text": "loadOp must be a valid VkAttachmentLoadOp value", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription-storeOp-parameter", - "text": " storeOp must be a valid VkAttachmentStoreOp value" + "text": "storeOp must be a valid VkAttachmentStoreOp value", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription-stencilLoadOp-parameter", - "text": " stencilLoadOp must be a valid VkAttachmentLoadOp value" + "text": "stencilLoadOp must be a valid VkAttachmentLoadOp value", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription-stencilStoreOp-parameter", - "text": " stencilStoreOp must be a valid VkAttachmentStoreOp value" + "text": "stencilStoreOp must be a valid VkAttachmentStoreOp value", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription-initialLayout-parameter", - "text": " initialLayout must be a valid VkImageLayout value" + "text": "initialLayout must be a valid VkImageLayout value", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription-finalLayout-parameter", - "text": " finalLayout must be a valid VkImageLayout value" + "text": "finalLayout must be a valid VkImageLayout value", + "page": "vkspec" } ] }, @@ -7570,15 +9479,18 @@ "core": [ { "vuid": "VUID-VkRenderPassInputAttachmentAspectCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassInputAttachmentAspectCreateInfo-pAspectReferences-parameter", - "text": " pAspectReferences must be a valid pointer to an array of aspectReferenceCount valid VkInputAttachmentAspectReference structures" + "text": "pAspectReferences must be a valid pointer to an array of aspectReferenceCount valid VkInputAttachmentAspectReference structures", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassInputAttachmentAspectCreateInfo-aspectReferenceCount-arraylength", - "text": " aspectReferenceCount must be greater than 0" + "text": "aspectReferenceCount must be greater than 0", + "page": "vkspec" } ] }, @@ -7586,19 +9498,23 @@ "core": [ { "vuid": "VUID-VkInputAttachmentAspectReference-aspectMask-01964", - "text": " aspectMask must not include VK_IMAGE_ASPECT_METADATA_BIT" + "text": "aspectMask must not include VK_IMAGE_ASPECT_METADATA_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkInputAttachmentAspectReference-aspectMask-02250", - "text": " aspectMask must not include VK_IMAGE_ASPECT_MEMORY_PLANE{ibit}BIT_EXT for any index i" + "text": "aspectMask must not include VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT for any index i", + "page": "vkspec" }, { "vuid": "VUID-VkInputAttachmentAspectReference-aspectMask-parameter", - "text": " aspectMask must be a valid combination of VkImageAspectFlagBits values" + "text": "aspectMask must be a valid combination of VkImageAspectFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkInputAttachmentAspectReference-aspectMask-requiredbitmask", - "text": " aspectMask must not be 0" + "text": "aspectMask must not be 0", + "page": "vkspec" } ] }, @@ -7606,179 +9522,223 @@ "core": [ { "vuid": "VUID-VkSubpassDescription-attachment-06912", - "text": " If the attachment member of an element of pInputAttachments is not VK_ATTACHMENT_UNUSED, its layout member must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL" + "text": "If the attachment member of an element of pInputAttachments is not VK_ATTACHMENT_UNUSED, its layout member must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription-attachment-06913", - "text": " If the attachment member of an element of pColorAttachments is not VK_ATTACHMENT_UNUSED, its layout member must not be VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL" + "text": "If the attachment member of an element of pColorAttachments is not VK_ATTACHMENT_UNUSED, its layout member must not be VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription-attachment-06914", - "text": " If the attachment member of an element of pResolveAttachments is not VK_ATTACHMENT_UNUSED, its layout member must not be VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL" + "text": "If the attachment member of an element of pResolveAttachments is not VK_ATTACHMENT_UNUSED, its layout member must not be VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription-attachment-06915", - "text": " If the attachment member of pDepthStencilAttachment is not VK_ATTACHMENT_UNUSED, ts layout member must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL" + "text": "If the attachment member of pDepthStencilAttachment is not VK_ATTACHMENT_UNUSED, ts layout member must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription-attachment-06916", - "text": " If the attachment member of an element of pColorAttachments is not VK_ATTACHMENT_UNUSED, its layout member must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL" + "text": "If the attachment member of an element of pColorAttachments is not VK_ATTACHMENT_UNUSED, its layout member must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription-attachment-06917", - "text": " If the attachment member of an element of pResolveAttachments is not VK_ATTACHMENT_UNUSED, its layout member must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL" + "text": "If the attachment member of an element of pResolveAttachments is not VK_ATTACHMENT_UNUSED, its layout member must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription-attachment-06918", - "text": " If the attachment member of an element of pInputAttachments is not VK_ATTACHMENT_UNUSED, its layout member must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL" + "text": "If the attachment member of an element of pInputAttachments is not VK_ATTACHMENT_UNUSED, its layout member must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription-attachment-06919", - "text": " If the attachment member of an element of pColorAttachments is not VK_ATTACHMENT_UNUSED, its layout member must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL" + "text": "If the attachment member of an element of pColorAttachments is not VK_ATTACHMENT_UNUSED, its layout member must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription-attachment-06920", - "text": " If the attachment member of an element of pResolveAttachments is not VK_ATTACHMENT_UNUSED, its layout member must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL" + "text": "If the attachment member of an element of pResolveAttachments is not VK_ATTACHMENT_UNUSED, its layout member must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription-attachment-06921", - "text": " If the attachment member of an element of pInputAttachments is not VK_ATTACHMENT_UNUSED, its layout member must not be VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR" + "text": "If the attachment member of an element of pInputAttachments is not VK_ATTACHMENT_UNUSED, its layout member must not be VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription-attachment-06922", - "text": " If the attachment member of an element of pColorAttachments is not VK_ATTACHMENT_UNUSED, its layout member must not be VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR" + "text": "If the attachment member of an element of pColorAttachments is not VK_ATTACHMENT_UNUSED, its layout member must not be VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription-attachment-06923", - "text": " If the attachment member of an element of pResolveAttachments is not VK_ATTACHMENT_UNUSED, its layout member must not be VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR" + "text": "If the attachment member of an element of pResolveAttachments is not VK_ATTACHMENT_UNUSED, its layout member must not be VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription-pipelineBindPoint-04952", - "text": " pipelineBindPoint must be VK_PIPELINE_BIND_POINT_GRAPHICS or VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI" + "text": "pipelineBindPoint must be VK_PIPELINE_BIND_POINT_GRAPHICS or VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription-colorAttachmentCount-00845", - "text": " colorAttachmentCount must be less than or equal to VkPhysicalDeviceLimits::maxColorAttachments" + "text": "colorAttachmentCount must be less than or equal to VkPhysicalDeviceLimits::maxColorAttachments", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription-loadOp-00846", - "text": " If the first use of an attachment in this render pass is as an input attachment, and the attachment is not also used as a color or depth/stencil attachment in the same subpass, then loadOp must not be VK_ATTACHMENT_LOAD_OP_CLEAR" + "text": "If the first use of an attachment in this render pass is as an input attachment, and the attachment is not also used as a color or depth/stencil attachment in the same subpass, then loadOp must not be VK_ATTACHMENT_LOAD_OP_CLEAR", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription-pResolveAttachments-00847", - "text": " If pResolveAttachments is not NULL, for each resolve attachment that is not VK_ATTACHMENT_UNUSED, the corresponding color attachment must not be VK_ATTACHMENT_UNUSED" + "text": "If pResolveAttachments is not NULL, for each resolve attachment that is not VK_ATTACHMENT_UNUSED, the corresponding color attachment must not be VK_ATTACHMENT_UNUSED", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription-pResolveAttachments-00848", - "text": " If pResolveAttachments is not NULL, for each resolve attachment that is not VK_ATTACHMENT_UNUSED, the corresponding color attachment must not have a sample count of VK_SAMPLE_COUNT_1_BIT" + "text": "If pResolveAttachments is not NULL, for each resolve attachment that is not VK_ATTACHMENT_UNUSED, the corresponding color attachment must not have a sample count of VK_SAMPLE_COUNT_1_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription-pResolveAttachments-00849", - "text": " If pResolveAttachments is not NULL, each resolve attachment that is not VK_ATTACHMENT_UNUSED must have a sample count of VK_SAMPLE_COUNT_1_BIT" + "text": "If pResolveAttachments is not NULL, each resolve attachment that is not VK_ATTACHMENT_UNUSED must have a sample count of VK_SAMPLE_COUNT_1_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription-pResolveAttachments-00850", - "text": " If pResolveAttachments is not NULL, each resolve attachment that is not VK_ATTACHMENT_UNUSED must have the same VkFormat as its corresponding color attachment" + "text": "If pResolveAttachments is not NULL, each resolve attachment that is not VK_ATTACHMENT_UNUSED must have the same VkFormat as its corresponding color attachment", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription-pColorAttachments-06868", - "text": " If neither the VK_AMD_mixed_attachment_samples extension nor the VK_NV_framebuffer_mixed_samples extension is enabled, all attachments in pColorAttachments that are not VK_ATTACHMENT_UNUSED must have the same sample count" + "text": "If neither the VK_AMD_mixed_attachment_samples extension nor the VK_NV_framebuffer_mixed_samples extension is enabled, all attachments in pColorAttachments that are not VK_ATTACHMENT_UNUSED must have the same sample count", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription-pInputAttachments-02647", - "text": " All attachments in pInputAttachments that are not VK_ATTACHMENT_UNUSED must have image formats whose potential format features contain at least VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT or VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT" + "text": "All attachments in pInputAttachments that are not VK_ATTACHMENT_UNUSED must have image formats whose potential format features contain at least VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT or VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription-pColorAttachments-02648", - "text": " All attachments in pColorAttachments that are not VK_ATTACHMENT_UNUSED must have image formats whose potential format features contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT" + "text": "All attachments in pColorAttachments that are not VK_ATTACHMENT_UNUSED must have image formats whose potential format features contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription-pResolveAttachments-02649", - "text": " All attachments in pResolveAttachments that are not VK_ATTACHMENT_UNUSED must have image formats whose potential format features contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT" + "text": "All attachments in pResolveAttachments that are not VK_ATTACHMENT_UNUSED must have image formats whose potential format features contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription-pDepthStencilAttachment-02650", - "text": " If pDepthStencilAttachment is not NULL and the attachment is not VK_ATTACHMENT_UNUSED then it must have an image format whose potential format features contain VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT" + "text": "If pDepthStencilAttachment is not NULL and the attachment is not VK_ATTACHMENT_UNUSED then it must have an image format whose potential format features contain VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription-linearColorAttachment-06496", - "text": " If the linearColorAttachment feature is enabled and the image is created with VK_IMAGE_TILING_LINEAR, all attachments in pInputAttachments that are not VK_ATTACHMENT_UNUSED must have image formats whose potential format features must contain VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV" + "text": "If the linearColorAttachment feature is enabled and the image is created with VK_IMAGE_TILING_LINEAR, all attachments in pInputAttachments that are not VK_ATTACHMENT_UNUSED must have image formats whose potential format features must contain VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription-linearColorAttachment-06497", - "text": " If the linearColorAttachment feature is enabled and the image is created with VK_IMAGE_TILING_LINEAR, all attachments in pColorAttachments that are not VK_ATTACHMENT_UNUSED must have image formats whose potential format features must contain VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV" + "text": "If the linearColorAttachment feature is enabled and the image is created with VK_IMAGE_TILING_LINEAR, all attachments in pColorAttachments that are not VK_ATTACHMENT_UNUSED must have image formats whose potential format features must contain VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription-linearColorAttachment-06498", - "text": " If the linearColorAttachment feature is enabled and the image is created with VK_IMAGE_TILING_LINEAR, all attachments in pResolveAttachments that are not VK_ATTACHMENT_UNUSED must have image formats whose potential format features must contain VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV" + "text": "If the linearColorAttachment feature is enabled and the image is created with VK_IMAGE_TILING_LINEAR, all attachments in pResolveAttachments that are not VK_ATTACHMENT_UNUSED must have image formats whose potential format features must contain VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription-pColorAttachments-01506", - "text": " If the VK_AMD_mixed_attachment_samples extension is enabled, all attachments in pColorAttachments that are not VK_ATTACHMENT_UNUSED must have a sample count that is smaller than or equal to the sample count of pDepthStencilAttachment if it is not VK_ATTACHMENT_UNUSED" + "text": "If the VK_AMD_mixed_attachment_samples extension is enabled, all attachments in pColorAttachments that are not VK_ATTACHMENT_UNUSED must have a sample count that is smaller than or equal to the sample count of pDepthStencilAttachment if it is not VK_ATTACHMENT_UNUSED", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription-pDepthStencilAttachment-01418", - "text": " If neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples extensions are enabled, and if pDepthStencilAttachment is not VK_ATTACHMENT_UNUSED and any attachments in pColorAttachments are not VK_ATTACHMENT_UNUSED, they must have the same sample count" + "text": "If neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples extensions are enabled, and if pDepthStencilAttachment is not VK_ATTACHMENT_UNUSED and any attachments in pColorAttachments are not VK_ATTACHMENT_UNUSED, they must have the same sample count", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription-attachment-00853", - "text": " Each element of pPreserveAttachments must not be VK_ATTACHMENT_UNUSED" + "text": "Each element of pPreserveAttachments must not be VK_ATTACHMENT_UNUSED", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription-pPreserveAttachments-00854", - "text": " Each element of pPreserveAttachments must not also be an element of any other member of the subpass description" + "text": "Each element of pPreserveAttachments must not also be an element of any other member of the subpass description", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription-layout-02519", - "text": " If any attachment is used by more than one VkAttachmentReference member, then each use must use the same layout" + "text": "If any attachment is used by more than one VkAttachmentReference member, then each use must use the same layout", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription-flags-00856", - "text": " If flags includes VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX, it must also include VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX" + "text": "If flags includes VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX, it must also include VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription-flags-03341", - "text": " If flags includes VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM, and if pResolveAttachments is not NULL, then each resolve attachment must be VK_ATTACHMENT_UNUSED" + "text": "If flags includes VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM, and if pResolveAttachments is not NULL, then each resolve attachment must be VK_ATTACHMENT_UNUSED", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription-flags-03343", - "text": " If flags includes VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM, then the subpass must be the last subpass in a subpass dependency chain" + "text": "If flags includes VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM, then the subpass must be the last subpass in a subpass dependency chain", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription-pInputAttachments-02868", - "text": " If the render pass is created with VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM each of the elements of pInputAttachments must be VK_ATTACHMENT_UNUSED" + "text": "If the render pass is created with VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM each of the elements of pInputAttachments must be VK_ATTACHMENT_UNUSED", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription-pDepthStencilAttachment-04438", - "text": " pDepthStencilAttachment and pColorAttachments must not contain references to the same attachment" + "text": "pDepthStencilAttachment and pColorAttachments must not contain references to the same attachment", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription-flags-parameter", - "text": " flags must be a valid combination of VkSubpassDescriptionFlagBits values" + "text": "flags must be a valid combination of VkSubpassDescriptionFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription-pipelineBindPoint-parameter", - "text": " pipelineBindPoint must be a valid VkPipelineBindPoint value" + "text": "pipelineBindPoint must be a valid VkPipelineBindPoint value", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription-pInputAttachments-parameter", - "text": " If inputAttachmentCount is not 0, pInputAttachments must be a valid pointer to an array of inputAttachmentCount valid VkAttachmentReference structures" + "text": "If inputAttachmentCount is not 0, pInputAttachments must be a valid pointer to an array of inputAttachmentCount valid VkAttachmentReference structures", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription-pColorAttachments-parameter", - "text": " If colorAttachmentCount is not 0, pColorAttachments must be a valid pointer to an array of colorAttachmentCount valid VkAttachmentReference structures" + "text": "If colorAttachmentCount is not 0, pColorAttachments must be a valid pointer to an array of colorAttachmentCount valid VkAttachmentReference structures", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription-pResolveAttachments-parameter", - "text": " If colorAttachmentCount is not 0, and pResolveAttachments is not NULL, pResolveAttachments must be a valid pointer to an array of colorAttachmentCount valid VkAttachmentReference structures" + "text": "If colorAttachmentCount is not 0, and pResolveAttachments is not NULL, pResolveAttachments must be a valid pointer to an array of colorAttachmentCount valid VkAttachmentReference structures", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription-pDepthStencilAttachment-parameter", - "text": " If pDepthStencilAttachment is not NULL, pDepthStencilAttachment must be a valid pointer to a valid VkAttachmentReference structure" + "text": "If pDepthStencilAttachment is not NULL, pDepthStencilAttachment must be a valid pointer to a valid VkAttachmentReference structure", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription-pPreserveAttachments-parameter", - "text": " If preserveAttachmentCount is not 0, pPreserveAttachments must be a valid pointer to an array of preserveAttachmentCount uint32_t values" + "text": "If preserveAttachmentCount is not 0, pPreserveAttachments must be a valid pointer to an array of preserveAttachmentCount uint32_t values", + "page": "vkspec" } ] }, @@ -7786,23 +9746,28 @@ "core": [ { "vuid": "VUID-VkAttachmentReference-layout-03077", - "text": " If attachment is not VK_ATTACHMENT_UNUSED, layout must not be VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_PREINITIALIZED, or VK_IMAGE_LAYOUT_PRESENT_SRC_KHR" + "text": "If attachment is not VK_ATTACHMENT_UNUSED, layout must not be VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_PREINITIALIZED, or VK_IMAGE_LAYOUT_PRESENT_SRC_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentReference-separateDepthStencilLayouts-03313", - "text": " If the separateDepthStencilLayouts feature is not enabled, and attachment is not VK_ATTACHMENT_UNUSED, layout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL," + "text": "If the separateDepthStencilLayouts feature is not enabled, and attachment is not VK_ATTACHMENT_UNUSED, layout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL,", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentReference-synchronization2-06910", - "text": " If the synchronization2 feature is not enabled, layout must not be VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR or VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR" + "text": "If the synchronization2 feature is not enabled, layout must not be VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR or VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentReference-attachmentFeedbackLoopLayout-07311", - "text": " If the attachmentFeedbackLoopLayout feature is not enabled, layout must not be VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT" + "text": "If the attachmentFeedbackLoopLayout feature is not enabled, layout must not be VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentReference-layout-parameter", - "text": " layout must be a valid VkImageLayout value" + "text": "layout must be a valid VkImageLayout value", + "page": "vkspec" } ] }, @@ -7810,139 +9775,173 @@ "core": [ { "vuid": "VUID-VkSubpassDependency-srcStageMask-04090", - "text": " If the geometryShader feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT" + "text": "If the geometryShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDependency-srcStageMask-04091", - "text": " If the tessellationShader feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT" + "text": "If the tessellationShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDependency-srcStageMask-04092", - "text": " If the conditionalRendering feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT" + "text": "If the conditionalRendering feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDependency-srcStageMask-04093", - "text": " If the fragmentDensityMap feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT" + "text": "If the fragmentDensityMap feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDependency-srcStageMask-04094", - "text": " If the transformFeedback feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT" + "text": "If the transformFeedback feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDependency-srcStageMask-04095", - "text": " If the meshShader feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT" + "text": "If the meshShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDependency-srcStageMask-04096", - "text": " If the taskShader feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT" + "text": "If the taskShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDependency-srcStageMask-07318", - "text": " If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR" + "text": "If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, srcStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDependency-srcStageMask-03937", - "text": " If the synchronization2 feature is not enabled, pname:srcStageMask must not be 0" + "text": "If the synchronization2 feature is not enabled, srcStageMask must not be 0", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDependency-srcStageMask-07949", - "text": " If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR" + "text": "If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, srcStageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDependency-dstStageMask-04090", - "text": " If the geometryShader feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT" + "text": "If the geometryShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDependency-dstStageMask-04091", - "text": " If the tessellationShader feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT" + "text": "If the tessellationShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDependency-dstStageMask-04092", - "text": " If the conditionalRendering feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT" + "text": "If the conditionalRendering feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDependency-dstStageMask-04093", - "text": " If the fragmentDensityMap feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT" + "text": "If the fragmentDensityMap feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDependency-dstStageMask-04094", - "text": " If the transformFeedback feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT" + "text": "If the transformFeedback feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDependency-dstStageMask-04095", - "text": " If the meshShader feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT" + "text": "If the meshShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDependency-dstStageMask-04096", - "text": " If the taskShader feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT" + "text": "If the taskShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDependency-dstStageMask-07318", - "text": " If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR" + "text": "If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, dstStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDependency-dstStageMask-03937", - "text": " If the synchronization2 feature is not enabled, pname:dstStageMask must not be 0" + "text": "If the synchronization2 feature is not enabled, dstStageMask must not be 0", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDependency-dstStageMask-07949", - "text": " If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR" + "text": "If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, dstStageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDependency-srcSubpass-00864", - "text": " srcSubpass must be less than or equal to dstSubpass, unless one of them is VK_SUBPASS_EXTERNAL, to avoid cyclic dependencies and ensure a valid execution order" + "text": "srcSubpass must be less than or equal to dstSubpass, unless one of them is VK_SUBPASS_EXTERNAL, to avoid cyclic dependencies and ensure a valid execution order", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDependency-srcSubpass-00865", - "text": " srcSubpass and dstSubpass must not both be equal to VK_SUBPASS_EXTERNAL" + "text": "srcSubpass and dstSubpass must not both be equal to VK_SUBPASS_EXTERNAL", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDependency-srcSubpass-06809", - "text": " If srcSubpass is equal to dstSubpass and srcStageMask includes a framebuffer-space stage, dstStageMask must only contain framebuffer-space stages" + "text": "If srcSubpass is equal to dstSubpass and srcStageMask includes a framebuffer-space stage, dstStageMask must only contain framebuffer-space stages", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDependency-srcAccessMask-00868", - "text": " Any access flag included in srcAccessMask must be supported by one of the pipeline stages in srcStageMask, as specified in the table of supported access types" + "text": "Any access flag included in srcAccessMask must be supported by one of the pipeline stages in srcStageMask, as specified in the table of supported access types", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDependency-dstAccessMask-00869", - "text": " Any access flag included in dstAccessMask must be supported by one of the pipeline stages in dstStageMask, as specified in the table of supported access types" + "text": "Any access flag included in dstAccessMask must be supported by one of the pipeline stages in dstStageMask, as specified in the table of supported access types", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDependency-srcSubpass-02243", - "text": " If srcSubpass equals dstSubpass, and srcStageMask and dstStageMask both include a framebuffer-space stage, then dependencyFlags must include VK_DEPENDENCY_BY_REGION_BIT" + "text": "If srcSubpass equals dstSubpass, and srcStageMask and dstStageMask both include a framebuffer-space stage, then dependencyFlags must include VK_DEPENDENCY_BY_REGION_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDependency-dependencyFlags-02520", - "text": " If dependencyFlags includes VK_DEPENDENCY_VIEW_LOCAL_BIT, srcSubpass must not be equal to VK_SUBPASS_EXTERNAL" + "text": "If dependencyFlags includes VK_DEPENDENCY_VIEW_LOCAL_BIT, srcSubpass must not be equal to VK_SUBPASS_EXTERNAL", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDependency-dependencyFlags-02521", - "text": " If dependencyFlags includes VK_DEPENDENCY_VIEW_LOCAL_BIT, dstSubpass must not be equal to VK_SUBPASS_EXTERNAL" + "text": "If dependencyFlags includes VK_DEPENDENCY_VIEW_LOCAL_BIT, dstSubpass must not be equal to VK_SUBPASS_EXTERNAL", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDependency-srcSubpass-00872", - "text": " If srcSubpass equals dstSubpass and that subpass has more than one bit set in the view mask, then dependencyFlags must include VK_DEPENDENCY_VIEW_LOCAL_BIT" + "text": "If srcSubpass equals dstSubpass and that subpass has more than one bit set in the view mask, then dependencyFlags must include VK_DEPENDENCY_VIEW_LOCAL_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDependency-srcStageMask-parameter", - "text": " srcStageMask must be a valid combination of VkPipelineStageFlagBits values" + "text": "srcStageMask must be a valid combination of VkPipelineStageFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDependency-dstStageMask-parameter", - "text": " dstStageMask must be a valid combination of VkPipelineStageFlagBits values" + "text": "dstStageMask must be a valid combination of VkPipelineStageFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDependency-srcAccessMask-parameter", - "text": " srcAccessMask must be a valid combination of VkAccessFlagBits values" + "text": "srcAccessMask must be a valid combination of VkAccessFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDependency-dstAccessMask-parameter", - "text": " dstAccessMask must be a valid combination of VkAccessFlagBits values" + "text": "dstAccessMask must be a valid combination of VkAccessFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDependency-dependencyFlags-parameter", - "text": " dependencyFlags must be a valid combination of VkDependencyFlagBits values" + "text": "dependencyFlags must be a valid combination of VkDependencyFlagBits values", + "page": "vkspec" } ] }, @@ -7950,35 +9949,43 @@ "core": [ { "vuid": "VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-attachmentFeedbackLoopDynamicState-08862", - "text": " The attachmentFeedbackLoopDynamicState feature must be enabled" + "text": "The attachmentFeedbackLoopDynamicState feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-aspectMask-08863", - "text": " aspectMask must only include VK_IMAGE_ASPECT_NONE, VK_IMAGE_ASPECT_COLOR_BIT, VK_IMAGE_ASPECT_DEPTH_BIT, and VK_IMAGE_ASPECT_STENCIL_BIT" + "text": "aspectMask must only include VK_IMAGE_ASPECT_NONE, VK_IMAGE_ASPECT_COLOR_BIT, VK_IMAGE_ASPECT_DEPTH_BIT, and VK_IMAGE_ASPECT_STENCIL_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-attachmentFeedbackLoopLayout-08864", - "text": " If the attachmentFeedbackLoopLayout feature is not enabled, aspectMask must be VK_IMAGE_ASPECT_NONE" + "text": "If the attachmentFeedbackLoopLayout feature is not enabled, aspectMask must be VK_IMAGE_ASPECT_NONE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-aspectMask-parameter", - "text": " aspectMask must be a valid combination of VkImageAspectFlagBits values" + "text": "aspectMask must be a valid combination of VkImageAspectFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -7986,19 +9993,23 @@ "core": [ { "vuid": "VUID-vkCreateRenderPass2-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkCreateRenderPass2-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkRenderPassCreateInfo2 structure" + "text": "pCreateInfo must be a valid pointer to a valid VkRenderPassCreateInfo2 structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateRenderPass2-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateRenderPass2-pRenderPass-parameter", - "text": " pRenderPass must be a valid pointer to a VkRenderPass handle" + "text": "pRenderPass must be a valid pointer to a VkRenderPass handle", + "page": "vkspec" } ] }, @@ -8006,315 +10017,407 @@ "core": [ { "vuid": "VUID-VkRenderPassCreateInfo2-None-03049", - "text": " If any two subpasses operate on attachments with overlapping ranges of the same VkDeviceMemory object, and at least one subpass writes to that area of VkDeviceMemory, a subpass dependency must be included (either directly or via some intermediate subpasses) between them" + "text": "If any two subpasses operate on attachments with overlapping ranges of the same VkDeviceMemory object, and at least one subpass writes to that area of VkDeviceMemory, a subpass dependency must be included (either directly or via some intermediate subpasses) between them", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassCreateInfo2-attachment-03050", - "text": " If the attachment member of any element of pInputAttachments, pColorAttachments, pResolveAttachments or pDepthStencilAttachment, or the attachment indexed by any element of pPreserveAttachments in any element of pSubpasses is bound to a range of a VkDeviceMemory object that overlaps with any other attachment in any subpass (including the same subpass), the VkAttachmentDescription2 structures describing them must include VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT in flags" + "text": "If the attachment member of any element of pInputAttachments, pColorAttachments, pResolveAttachments or pDepthStencilAttachment, or the attachment indexed by any element of pPreserveAttachments in any element of pSubpasses is bound to a range of a VkDeviceMemory object that overlaps with any other attachment in any subpass (including the same subpass), the VkAttachmentDescription2 structures describing them must include VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT in flags", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassCreateInfo2-attachment-03051", - "text": " If the attachment member of any element of pInputAttachments, pColorAttachments, pResolveAttachments or pDepthStencilAttachment, or any element of pPreserveAttachments in any element of pSubpasses is not VK_ATTACHMENT_UNUSED, then it must be less than attachmentCount" + "text": "If the attachment member of any element of pInputAttachments, pColorAttachments, pResolveAttachments or pDepthStencilAttachment, or any element of pPreserveAttachments in any element of pSubpasses is not VK_ATTACHMENT_UNUSED, then it must be less than attachmentCount", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassCreateInfo2-fragmentDensityMapAttachment-06472", - "text": " If the pNext chain includes a VkRenderPassFragmentDensityMapCreateInfoEXT structure and the fragmentDensityMapAttachment member is not VK_ATTACHMENT_UNUSED, then attachment must be less than attachmentCount" + "text": "If the pNext chain includes a VkRenderPassFragmentDensityMapCreateInfoEXT structure and the fragmentDensityMapAttachment member is not VK_ATTACHMENT_UNUSED, then attachment must be less than attachmentCount", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassCreateInfo2-pSubpasses-06473", - "text": " If the pSubpasses pNext chain includes a VkSubpassDescriptionDepthStencilResolve structure and the pDepthStencilResolveAttachment member is not NULL and does not have the value VK_ATTACHMENT_UNUSED, then attachment must be less than attachmentCount" + "text": "If the pSubpasses pNext chain includes a VkSubpassDescriptionDepthStencilResolve structure and the pDepthStencilResolveAttachment member is not NULL and does not have the value VK_ATTACHMENT_UNUSED, then attachment must be less than attachmentCount", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassCreateInfo2-pAttachments-02522", - "text": " For any member of pAttachments with a loadOp equal to VK_ATTACHMENT_LOAD_OP_CLEAR, the first use of that attachment must not specify a layout equal to VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL" + "text": "For any member of pAttachments with a loadOp equal to VK_ATTACHMENT_LOAD_OP_CLEAR, the first use of that attachment must not specify a layout equal to VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassCreateInfo2-pAttachments-02523", - "text": " For any member of pAttachments with a stencilLoadOp equal to VK_ATTACHMENT_LOAD_OP_CLEAR, the first use of that attachment must not specify a layout equal to VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, or VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL" + "text": "For any member of pAttachments with a stencilLoadOp equal to VK_ATTACHMENT_LOAD_OP_CLEAR, the first use of that attachment must not specify a layout equal to VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, or VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassCreateInfo2-pDependencies-03054", - "text": " For any element of pDependencies, if the srcSubpass is not VK_SUBPASS_EXTERNAL, all stage flags included in the srcStageMask member of that dependency must be a pipeline stage supported by the pipeline identified by the pipelineBindPoint member of the source subpass" + "text": "For any element of pDependencies, if the srcSubpass is not VK_SUBPASS_EXTERNAL, all stage flags included in the srcStageMask member of that dependency must be a pipeline stage supported by the pipeline identified by the pipelineBindPoint member of the source subpass", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassCreateInfo2-pDependencies-03055", - "text": " For any element of pDependencies, if the dstSubpass is not VK_SUBPASS_EXTERNAL, all stage flags included in the dstStageMask member of that dependency must be a pipeline stage supported by the pipeline identified by the pipelineBindPoint member of the destination subpass" + "text": "For any element of pDependencies, if the dstSubpass is not VK_SUBPASS_EXTERNAL, all stage flags included in the dstStageMask member of that dependency must be a pipeline stage supported by the pipeline identified by the pipelineBindPoint member of the destination subpass", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassCreateInfo2-pCorrelatedViewMasks-03056", - "text": " The set of bits included in any element of pCorrelatedViewMasks must not overlap with the set of bits included in any other element of pCorrelatedViewMasks" + "text": "The set of bits included in any element of pCorrelatedViewMasks must not overlap with the set of bits included in any other element of pCorrelatedViewMasks", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassCreateInfo2-viewMask-03057", - "text": " If the VkSubpassDescription2::viewMask member of all elements of pSubpasses is 0, correlatedViewMaskCount must be 0" + "text": "If the VkSubpassDescription2::viewMask member of all elements of pSubpasses is 0, correlatedViewMaskCount must be 0", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassCreateInfo2-viewMask-03058", - "text": " The VkSubpassDescription2::viewMask member of all elements of pSubpasses must either all be 0, or all not be 0" + "text": "The VkSubpassDescription2::viewMask member of all elements of pSubpasses must either all be 0, or all not be 0", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassCreateInfo2-viewMask-03059", - "text": " If the VkSubpassDescription2::viewMask member of all elements of pSubpasses is 0, the dependencyFlags member of any element of pDependencies must not include VK_DEPENDENCY_VIEW_LOCAL_BIT" + "text": "If the VkSubpassDescription2::viewMask member of all elements of pSubpasses is 0, the dependencyFlags member of any element of pDependencies must not include VK_DEPENDENCY_VIEW_LOCAL_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassCreateInfo2-pDependencies-03060", - "text": " For any element of pDependencies where its srcSubpass member equals its dstSubpass member, if the viewMask member of the corresponding element of pSubpasses includes more than one bit, its dependencyFlags member must include VK_DEPENDENCY_VIEW_LOCAL_BIT" + "text": "For any element of pDependencies where its srcSubpass member equals its dstSubpass member, if the viewMask member of the corresponding element of pSubpasses includes more than one bit, its dependencyFlags member must include VK_DEPENDENCY_VIEW_LOCAL_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassCreateInfo2-attachment-02525", - "text": " If the attachment member of any element of the pInputAttachments member of any element of pSubpasses is not VK_ATTACHMENT_UNUSED, the aspectMask member of that element of pInputAttachments must only include aspects that are present in images of the format specified by the element of pAttachments specified by attachment" + "text": "If the attachment member of any element of the pInputAttachments member of any element of pSubpasses is not VK_ATTACHMENT_UNUSED, the aspectMask member of that element of pInputAttachments must only include aspects that are present in images of the format specified by the element of pAttachments specified by attachment", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassCreateInfo2-srcSubpass-02526", - "text": " The srcSubpass member of each element of pDependencies must be less than subpassCount" + "text": "The srcSubpass member of each element of pDependencies must be less than subpassCount", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassCreateInfo2-dstSubpass-02527", - "text": " The dstSubpass member of each element of pDependencies must be less than subpassCount" + "text": "The dstSubpass member of each element of pDependencies must be less than subpassCount", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassCreateInfo2-pAttachments-04585", - "text": " If any element of pAttachments is used as a fragment shading rate attachment in any subpass, it must not be used as any other attachment in the render pass" + "text": "If any element of pAttachments is used as a fragment shading rate attachment in any subpass, it must not be used as any other attachment in the render pass", + "page": "vkspec" + }, + { + "vuid": "VUID-VkRenderPassCreateInfo2-pAttachments-09387", + "text": "If any element of pAttachments is used as a fragment shading rate attachment, the loadOp for that attachment must not be VK_ATTACHMENT_LOAD_OP_CLEAR", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassCreateInfo2-flags-04521", - "text": " If flags includes VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM, an element of pSubpasses includes an instance of VkFragmentShadingRateAttachmentInfoKHR in its pNext chain, and the pFragmentShadingRateAttachment member of that structure is not equal to NULL, the attachment member of pFragmentShadingRateAttachment must be VK_ATTACHMENT_UNUSED" + "text": "If flags includes VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM, an element of pSubpasses includes an instance of VkFragmentShadingRateAttachmentInfoKHR in its pNext chain, and the pFragmentShadingRateAttachment member of that structure is not equal to NULL, the attachment member of pFragmentShadingRateAttachment must be VK_ATTACHMENT_UNUSED", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassCreateInfo2-pAttachments-04586", - "text": " If any element of pAttachments is used as a fragment shading rate attachment in any subpass, it must have an image format whose potential format features contain VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR" + "text": "If any element of pAttachments is used as a fragment shading rate attachment in any subpass, it must have an image format whose potential format features contain VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassCreateInfo2-rasterizationSamples-04905", - "text": " If the pipeline is being created with fragment shader state, and the VK_QCOM_render_pass_shader_resolve extension is enabled, and if subpass has any input attachments, and if the subpass description contains VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM, then the sample count of the input attachments must equal rasterizationSamples" + "text": "If the pipeline is being created with fragment shader state, and the VK_QCOM_render_pass_shader_resolve extension is enabled, and if subpass has any input attachments, and if the subpass description contains VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM, then the sample count of the input attachments must equal rasterizationSamples", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassCreateInfo2-sampleShadingEnable-04906", - "text": " If the pipeline is being created with fragment shader state, and the VK_QCOM_render_pass_shader_resolve extension is enabled, and if the subpass description contains VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM, then sampleShadingEnable must be false" + "text": "If the pipeline is being created with fragment shader state, and the VK_QCOM_render_pass_shader_resolve extension is enabled, and if the subpass description contains VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM, then sampleShadingEnable must be false", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassCreateInfo2-flags-04907", - "text": " If flags includes VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM, and if pResolveAttachments is not NULL, then each resolve attachment must be VK_ATTACHMENT_UNUSED" + "text": "If flags includes VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM, and if pResolveAttachments is not NULL, then each resolve attachment must be VK_ATTACHMENT_UNUSED", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassCreateInfo2-flags-04908", - "text": " If flags includes VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM, and if pDepthStencilResolveAttachment is not NULL, then the depth/stencil resolve attachment must be VK_ATTACHMENT_UNUSED" + "text": "If flags includes VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM, and if pDepthStencilResolveAttachment is not NULL, then the depth/stencil resolve attachment must be VK_ATTACHMENT_UNUSED", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassCreateInfo2-flags-04909", - "text": " If flags includes VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM, then the subpass must be the last subpass in a subpass dependency chain" + "text": "If flags includes VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM, then the subpass must be the last subpass in a subpass dependency chain", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassCreateInfo2-attachment-06244", - "text": " If the attachment member of the pDepthStencilAttachment member of an element of pSubpasses is not VK_ATTACHMENT_UNUSED, the layout member of that same structure is either VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, and the pNext chain of that structure does not include a VkAttachmentReferenceStencilLayout structure, then the element of pAttachments with an index equal to attachment must not have a format that includes both depth and stencil components" + "text": "If the attachment member of the pDepthStencilAttachment member of an element of pSubpasses is not VK_ATTACHMENT_UNUSED, the layout member of that same structure is either VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, and the pNext chain of that structure does not include a VkAttachmentReferenceStencilLayout structure, then the element of pAttachments with an index equal to attachment must not have a format that includes both depth and stencil components", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassCreateInfo2-attachment-06245", - "text": " If the attachment member of the pDepthStencilAttachment member of an element of pSubpasses is not VK_ATTACHMENT_UNUSED and the layout member of that same structure is either VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, then the element of pAttachments with an index equal to attachment must have a format that includes only a stencil component" + "text": "If the attachment member of the pDepthStencilAttachment member of an element of pSubpasses is not VK_ATTACHMENT_UNUSED and the layout member of that same structure is either VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, then the element of pAttachments with an index equal to attachment must have a format that includes only a stencil component", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassCreateInfo2-attachment-06246", - "text": " If the attachment member of the pDepthStencilAttachment member of an element of pSubpasses is not VK_ATTACHMENT_UNUSED and the layout member of that same structure is either VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, then the element of pAttachments with an index equal to attachment must not have a format that includes only a stencil component" + "text": "If the attachment member of the pDepthStencilAttachment member of an element of pSubpasses is not VK_ATTACHMENT_UNUSED and the layout member of that same structure is either VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, then the element of pAttachments with an index equal to attachment must not have a format that includes only a stencil component", + "page": "vkspec" + }, + { + "vuid": "VUID-VkRenderPassCreateInfo2-pResolveAttachments-09331", + "text": "If any element of pResolveAttachments of any element of pSubpasses references an attachment description with a format of VK_FORMAT_UNDEFINED, VkRenderPassFragmentDensityMapCreateInfoEXT::fragmentDensityMapAttachment->attachment must be VK_ATTACHMENT_UNUSED", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassCreateInfo2-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2" + "text": "sType must be VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassCreateInfo2-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 VkRenderPassCreationControlEXT, VkRenderPassCreationFeedbackCreateInfoEXT, or VkRenderPassFragmentDensityMapCreateInfoEXT" + "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 VkRenderPassCreationControlEXT, VkRenderPassCreationFeedbackCreateInfoEXT, or VkRenderPassFragmentDensityMapCreateInfoEXT", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassCreateInfo2-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassCreateInfo2-flags-parameter", - "text": " flags must be a valid combination of VkRenderPassCreateFlagBits values" + "text": "flags must be a valid combination of VkRenderPassCreateFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassCreateInfo2-pAttachments-parameter", - "text": " If attachmentCount is not 0, pAttachments must be a valid pointer to an array of attachmentCount valid VkAttachmentDescription2 structures" + "text": "If attachmentCount is not 0, pAttachments must be a valid pointer to an array of attachmentCount valid VkAttachmentDescription2 structures", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassCreateInfo2-pSubpasses-parameter", - "text": " pSubpasses must be a valid pointer to an array of subpassCount valid VkSubpassDescription2 structures" + "text": "pSubpasses must be a valid pointer to an array of subpassCount valid VkSubpassDescription2 structures", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassCreateInfo2-pDependencies-parameter", - "text": " If dependencyCount is not 0, pDependencies must be a valid pointer to an array of dependencyCount valid VkSubpassDependency2 structures" + "text": "If dependencyCount is not 0, pDependencies must be a valid pointer to an array of dependencyCount valid VkSubpassDependency2 structures", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassCreateInfo2-pCorrelatedViewMasks-parameter", - "text": " If correlatedViewMaskCount is not 0, pCorrelatedViewMasks must be a valid pointer to an array of correlatedViewMaskCount uint32_t values" + "text": "If correlatedViewMaskCount is not 0, pCorrelatedViewMasks must be a valid pointer to an array of correlatedViewMaskCount uint32_t values", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassCreateInfo2-subpassCount-arraylength", - "text": " subpassCount must be greater than 0" + "text": "subpassCount must be greater than 0", + "page": "vkspec" } ] }, "VkAttachmentDescription2": { "core": [ - { - "vuid": "VUID-VkAttachmentDescription2-format-06698", - "text": " format must not be VK_FORMAT_UNDEFINED" - }, { "vuid": "VUID-VkAttachmentDescription2-format-06699", - "text": " If format includes a color or depth component and loadOp is VK_ATTACHMENT_LOAD_OP_LOAD, then initialLayout must not be VK_IMAGE_LAYOUT_UNDEFINED" + "text": "If format includes a color or depth component and loadOp is VK_ATTACHMENT_LOAD_OP_LOAD, then initialLayout must not be VK_IMAGE_LAYOUT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription2-finalLayout-00843", - "text": " finalLayout must not be VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_PREINITIALIZED" + "text": "finalLayout must not be VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_PREINITIALIZED", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription2-format-03280", - "text": " If format is a color format, initialLayout must not be VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL" + "text": "If format is a color format, initialLayout must not be VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription2-format-03281", - "text": " If format is a depth/stencil format, initialLayout must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL" + "text": "If format is a depth/stencil format, initialLayout must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription2-format-03282", - "text": " If format is a color format, finalLayout must not be VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL" + "text": "If format is a color format, finalLayout must not be VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription2-format-03283", - "text": " If format is a depth/stencil format, finalLayout must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL" + "text": "If format is a depth/stencil format, finalLayout must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription2-format-06487", - "text": " If format is a color format, initialLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL" + "text": "If format is a color format, initialLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription2-format-06488", - "text": " If format is a color format, finalLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL" + "text": "If format is a color format, finalLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription2-separateDepthStencilLayouts-03284", - "text": " If the separateDepthStencilLayouts feature is not enabled, initialLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL," + "text": "If the separateDepthStencilLayouts feature is not enabled, initialLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL,", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription2-separateDepthStencilLayouts-03285", - "text": " If the separateDepthStencilLayouts feature is not enabled, finalLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL," + "text": "If the separateDepthStencilLayouts feature is not enabled, finalLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL,", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription2-format-03286", - "text": " If format is a color format, initialLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL" + "text": "If format is a color format, initialLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription2-format-03287", - "text": " If format is a color format, finalLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL" + "text": "If format is a color format, finalLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription2-format-06906", - "text": " If format is a depth/stencil format which includes both depth and stencil components, initialLayout must not be VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL" + "text": "If format is a depth/stencil format which includes both depth and stencil components, initialLayout must not be VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription2-format-06907", - "text": " If format is a depth/stencil format which includes both depth and stencil components, finalLayout must not be VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL" + "text": "If format is a depth/stencil format which includes both depth and stencil components, finalLayout must not be VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription2-format-03290", - "text": " If format is a depth/stencil format which includes only the depth component, initialLayout must not be VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL" + "text": "If format is a depth/stencil format which includes only the depth component, initialLayout must not be VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription2-format-03291", - "text": " If format is a depth/stencil format which includes only the depth component, finalLayout must not be VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL" + "text": "If format is a depth/stencil format which includes only the depth component, finalLayout must not be VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription2-synchronization2-06908", - "text": " If the synchronization2 feature is not enabled, initialLayout must not be VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR or VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR" + "text": "If the synchronization2 feature is not enabled, initialLayout must not be VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR or VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription2-synchronization2-06909", - "text": " If the synchronization2 feature is not enabled, finalLayout must not be VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR or VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR" + "text": "If the synchronization2 feature is not enabled, finalLayout must not be VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR or VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription2-attachmentFeedbackLoopLayout-07309", - "text": " If the attachmentFeedbackLoopLayout feature is not enabled, initialLayout must not be VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT" + "text": "If the attachmentFeedbackLoopLayout feature is not enabled, initialLayout must not be VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription2-attachmentFeedbackLoopLayout-07310", - "text": " If the attachmentFeedbackLoopLayout feature is not enabled, finalLayout must not be VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT" + "text": "If the attachmentFeedbackLoopLayout feature is not enabled, finalLayout must not be VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription2-samples-08745", - "text": " samples must be a bit value that is set in imageCreateSampleCounts (as defined in Image Creation Limits) for the given format" + "text": "samples must be a bit value that is set in imageCreateSampleCounts (as defined in Image Creation Limits) for the given format", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription2-pNext-06704", - "text": " If the pNext chain does not include a VkAttachmentDescriptionStencilLayout structure, format includes a stencil component, and stencilLoadOp is VK_ATTACHMENT_LOAD_OP_LOAD, then initialLayout must not be VK_IMAGE_LAYOUT_UNDEFINED" + "text": "If the pNext chain does not include a VkAttachmentDescriptionStencilLayout structure, format includes a stencil component, and stencilLoadOp is VK_ATTACHMENT_LOAD_OP_LOAD, then initialLayout must not be VK_IMAGE_LAYOUT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription2-pNext-06705", - "text": " If the pNext chain does includes a VkAttachmentDescriptionStencilLayout structure, format includes a stencil component, and stencilLoadOp is VK_ATTACHMENT_LOAD_OP_LOAD, then VkAttachmentDescriptionStencilLayout::stencilInitialLayout must not be VK_IMAGE_LAYOUT_UNDEFINED" + "text": "If the pNext chain does includes a VkAttachmentDescriptionStencilLayout structure, format includes a stencil component, and stencilLoadOp is VK_ATTACHMENT_LOAD_OP_LOAD, then VkAttachmentDescriptionStencilLayout::stencilInitialLayout must not be VK_IMAGE_LAYOUT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription2-format-06249", - "text": " If format is a depth/stencil format which includes both depth and stencil components, and initialLayout is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, the pNext chain must include a VkAttachmentDescriptionStencilLayout structure" + "text": "If format is a depth/stencil format which includes both depth and stencil components, and initialLayout is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, the pNext chain must include a VkAttachmentDescriptionStencilLayout structure", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription2-format-06250", - "text": " If format is a depth/stencil format which includes both depth and stencil components, and finalLayout is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, the pNext chain must include a VkAttachmentDescriptionStencilLayout structure" + "text": "If format is a depth/stencil format which includes both depth and stencil components, and finalLayout is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, the pNext chain must include a VkAttachmentDescriptionStencilLayout structure", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription2-format-06247", - "text": " If the pNext chain does not include a VkAttachmentDescriptionStencilLayout structure and format only includes a stencil component, initialLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL" + "text": "If the pNext chain does not include a VkAttachmentDescriptionStencilLayout structure and format only includes a stencil component, initialLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription2-format-06248", - "text": " If the pNext chain does not include a VkAttachmentDescriptionStencilLayout structure and format only includes a stencil component, finalLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL" + "text": "If the pNext chain does not include a VkAttachmentDescriptionStencilLayout structure and format only includes a stencil component, finalLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL", + "page": "vkspec" + }, + { + "vuid": "VUID-VkAttachmentDescription2-format-09332", + "text": "If externalFormatResolve is not enabled, format must not be VK_FORMAT_UNDEFINED", + "page": "vkspec" + }, + { + "vuid": "VUID-VkAttachmentDescription2-format-09334", + "text": "If format is VK_FORMAT_UNDEFINED, there must be a VkExternalFormatANDROID structure in the pNext chain with a externalFormat that is not equal to 0", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription2-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2" + "text": "sType must be VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription2-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkAttachmentDescriptionStencilLayout" + "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 VkAttachmentDescriptionStencilLayout or VkExternalFormatANDROID", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription2-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription2-flags-parameter", - "text": " flags must be a valid combination of VkAttachmentDescriptionFlagBits values" + "text": "flags must be a valid combination of VkAttachmentDescriptionFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription2-format-parameter", - "text": " format must be a valid VkFormat value" + "text": "format must be a valid VkFormat value", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription2-samples-parameter", - "text": " samples must be a valid VkSampleCountFlagBits value" + "text": "samples must be a valid VkSampleCountFlagBits value", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription2-loadOp-parameter", - "text": " loadOp must be a valid VkAttachmentLoadOp value" + "text": "loadOp must be a valid VkAttachmentLoadOp value", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription2-storeOp-parameter", - "text": " storeOp must be a valid VkAttachmentStoreOp value" + "text": "storeOp must be a valid VkAttachmentStoreOp value", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription2-stencilLoadOp-parameter", - "text": " stencilLoadOp must be a valid VkAttachmentLoadOp value" + "text": "stencilLoadOp must be a valid VkAttachmentLoadOp value", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription2-stencilStoreOp-parameter", - "text": " stencilStoreOp must be a valid VkAttachmentStoreOp value" + "text": "stencilStoreOp must be a valid VkAttachmentStoreOp value", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription2-initialLayout-parameter", - "text": " initialLayout must be a valid VkImageLayout value" + "text": "initialLayout must be a valid VkImageLayout value", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription2-finalLayout-parameter", - "text": " finalLayout must be a valid VkImageLayout value" + "text": "finalLayout must be a valid VkImageLayout value", + "page": "vkspec" } ] }, @@ -8322,27 +10425,33 @@ "core": [ { "vuid": "VUID-VkAttachmentDescriptionStencilLayout-stencilInitialLayout-03308", - "text": " stencilInitialLayout must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL" + "text": "stencilInitialLayout must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescriptionStencilLayout-stencilFinalLayout-03309", - "text": " stencilFinalLayout must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL" + "text": "stencilFinalLayout must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescriptionStencilLayout-stencilFinalLayout-03310", - "text": " stencilFinalLayout must not be VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_PREINITIALIZED" + "text": "stencilFinalLayout must not be VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_PREINITIALIZED", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescriptionStencilLayout-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT" + "text": "sType must be VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescriptionStencilLayout-stencilInitialLayout-parameter", - "text": " stencilInitialLayout must be a valid VkImageLayout value" + "text": "stencilInitialLayout must be a valid VkImageLayout value", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescriptionStencilLayout-stencilFinalLayout-parameter", - "text": " stencilFinalLayout must be a valid VkImageLayout value" + "text": "stencilFinalLayout must be a valid VkImageLayout value", + "page": "vkspec" } ] }, @@ -8350,215 +10459,303 @@ "core": [ { "vuid": "VUID-VkSubpassDescription2-attachment-06912", - "text": " If the attachment member of an element of pInputAttachments is not VK_ATTACHMENT_UNUSED, its layout member must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL" + "text": "If the attachment member of an element of pInputAttachments is not VK_ATTACHMENT_UNUSED, its layout member must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription2-attachment-06913", - "text": " If the attachment member of an element of pColorAttachments is not VK_ATTACHMENT_UNUSED, its layout member must not be VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL" + "text": "If the attachment member of an element of pColorAttachments is not VK_ATTACHMENT_UNUSED, its layout member must not be VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription2-attachment-06914", - "text": " If the attachment member of an element of pResolveAttachments is not VK_ATTACHMENT_UNUSED, its layout member must not be VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL" + "text": "If the attachment member of an element of pResolveAttachments is not VK_ATTACHMENT_UNUSED, its layout member must not be VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription2-attachment-06915", - "text": " If the attachment member of pDepthStencilAttachment is not VK_ATTACHMENT_UNUSED, ts layout member must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL" + "text": "If the attachment member of pDepthStencilAttachment is not VK_ATTACHMENT_UNUSED, ts layout member must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription2-attachment-06916", - "text": " If the attachment member of an element of pColorAttachments is not VK_ATTACHMENT_UNUSED, its layout member must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL" + "text": "If the attachment member of an element of pColorAttachments is not VK_ATTACHMENT_UNUSED, its layout member must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription2-attachment-06917", - "text": " If the attachment member of an element of pResolveAttachments is not VK_ATTACHMENT_UNUSED, its layout member must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL" + "text": "If the attachment member of an element of pResolveAttachments is not VK_ATTACHMENT_UNUSED, its layout member must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription2-attachment-06918", - "text": " If the attachment member of an element of pInputAttachments is not VK_ATTACHMENT_UNUSED, its layout member must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL" + "text": "If the attachment member of an element of pInputAttachments is not VK_ATTACHMENT_UNUSED, its layout member must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription2-attachment-06919", - "text": " If the attachment member of an element of pColorAttachments is not VK_ATTACHMENT_UNUSED, its layout member must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL" + "text": "If the attachment member of an element of pColorAttachments is not VK_ATTACHMENT_UNUSED, its layout member must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription2-attachment-06920", - "text": " If the attachment member of an element of pResolveAttachments is not VK_ATTACHMENT_UNUSED, its layout member must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL" + "text": "If the attachment member of an element of pResolveAttachments is not VK_ATTACHMENT_UNUSED, its layout member must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription2-attachment-06921", - "text": " If the attachment member of an element of pInputAttachments is not VK_ATTACHMENT_UNUSED, its layout member must not be VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR" + "text": "If the attachment member of an element of pInputAttachments is not VK_ATTACHMENT_UNUSED, its layout member must not be VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription2-attachment-06922", - "text": " If the attachment member of an element of pColorAttachments is not VK_ATTACHMENT_UNUSED, its layout member must not be VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR" + "text": "If the attachment member of an element of pColorAttachments is not VK_ATTACHMENT_UNUSED, its layout member must not be VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription2-attachment-06923", - "text": " If the attachment member of an element of pResolveAttachments is not VK_ATTACHMENT_UNUSED, its layout member must not be VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR" + "text": "If the attachment member of an element of pResolveAttachments is not VK_ATTACHMENT_UNUSED, its layout member must not be VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription2-attachment-06251", - "text": " If the attachment member of pDepthStencilAttachment is not VK_ATTACHMENT_UNUSED and its pNext chain includes a VkAttachmentReferenceStencilLayout structure, the layout member of pDepthStencilAttachment must not be VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL" + "text": "If the attachment member of pDepthStencilAttachment is not VK_ATTACHMENT_UNUSED and its pNext chain includes a VkAttachmentReferenceStencilLayout structure, the layout member of pDepthStencilAttachment must not be VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription2-pipelineBindPoint-04953", - "text": " pipelineBindPoint must be VK_PIPELINE_BIND_POINT_GRAPHICS or VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI" + "text": "pipelineBindPoint must be VK_PIPELINE_BIND_POINT_GRAPHICS or VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription2-colorAttachmentCount-03063", - "text": " colorAttachmentCount must be less than or equal to VkPhysicalDeviceLimits::maxColorAttachments" + "text": "colorAttachmentCount must be less than or equal to VkPhysicalDeviceLimits::maxColorAttachments", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription2-loadOp-03064", - "text": " If the first use of an attachment in this render pass is as an input attachment, and the attachment is not also used as a color or depth/stencil attachment in the same subpass, then loadOp must not be VK_ATTACHMENT_LOAD_OP_CLEAR" - }, - { - "vuid": "VUID-VkSubpassDescription2-pResolveAttachments-03065", - "text": " If pResolveAttachments is not NULL, for each resolve attachment that does not have the value VK_ATTACHMENT_UNUSED, the corresponding color attachment must not have the value VK_ATTACHMENT_UNUSED" - }, - { - "vuid": "VUID-VkSubpassDescription2-pResolveAttachments-03066", - "text": " If pResolveAttachments is not NULL, for each resolve attachment that is not VK_ATTACHMENT_UNUSED, the corresponding color attachment must not have a sample count of VK_SAMPLE_COUNT_1_BIT" + "text": "If the first use of an attachment in this render pass is as an input attachment, and the attachment is not also used as a color or depth/stencil attachment in the same subpass, then loadOp must not be VK_ATTACHMENT_LOAD_OP_CLEAR", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription2-pResolveAttachments-03067", - "text": " If pResolveAttachments is not NULL, each resolve attachment that is not VK_ATTACHMENT_UNUSED must have a sample count of VK_SAMPLE_COUNT_1_BIT" + "text": "If pResolveAttachments is not NULL, each resolve attachment that is not VK_ATTACHMENT_UNUSED must have a sample count of VK_SAMPLE_COUNT_1_BIT", + "page": "vkspec" }, { - "vuid": "VUID-VkSubpassDescription2-pResolveAttachments-03068", - "text": " Each element of pResolveAttachments must have the same VkFormat as its corresponding color attachment" + "vuid": "VUID-VkSubpassDescription2-externalFormatResolve-09335", + "text": "If externalFormatResolve is not enabled and pResolveAttachments is not NULL, for each resolve attachment that does not have the value VK_ATTACHMENT_UNUSED, the corresponding color attachment must not have the value VK_ATTACHMENT_UNUSED", + "page": "vkspec" + }, + { + "vuid": "VUID-VkSubpassDescription2-nullColorAttachmentWithExternalFormatResolve-09336", + "text": "If the nullColorAttachmentWithExternalFormatResolve property is VK_FALSE and pResolveAttachments is not NULL, for each resolve attachment that has a format of VK_FORMAT_UNDEFINED, the corresponding color attachment must not have the value VK_ATTACHMENT_UNUSED", + "page": "vkspec" + }, + { + "vuid": "VUID-VkSubpassDescription2-nullColorAttachmentWithExternalFormatResolve-09337", + "text": "If the nullColorAttachmentWithExternalFormatResolve property is VK_TRUE and pResolveAttachments is not NULL, for each resolve attachment that has a format of VK_FORMAT_UNDEFINED, the corresponding color attachment must have the value VK_ATTACHMENT_UNUSED", + "page": "vkspec" + }, + { + "vuid": "VUID-VkSubpassDescription2-externalFormatResolve-09338", + "text": "If externalFormatResolve is not enabled and pResolveAttachments is not NULL, for each resolve attachment that is not VK_ATTACHMENT_UNUSED, the corresponding color attachment must not have a sample count of VK_SAMPLE_COUNT_1_BIT", + "page": "vkspec" + }, + { + "vuid": "VUID-VkSubpassDescription2-externalFormatResolve-09339", + "text": "If externalFormatResolve is not enabled, each element of pResolveAttachments must have the same VkFormat as its corresponding color attachment", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription2-multisampledRenderToSingleSampled-06869", - "text": " If none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature are enabled, all attachments in pColorAttachments that are not VK_ATTACHMENT_UNUSED must have the same sample count" + "text": "If none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature are enabled, all attachments in pColorAttachments that are not VK_ATTACHMENT_UNUSED must have the same sample count", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription2-pInputAttachments-02897", - "text": " All attachments in pInputAttachments that are not VK_ATTACHMENT_UNUSED must have image formats whose potential format features contain at least VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT or VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT" + "text": "All attachments in pInputAttachments that are not VK_ATTACHMENT_UNUSED and any of the following is true:
\n\n
\n
\n

must have image formats whose potential format\n features contain at least VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT\n or VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT

\n
", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription2-pColorAttachments-02898", - "text": " All attachments in pColorAttachments that are not VK_ATTACHMENT_UNUSED must have image formats whose potential format features contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT" + "text": "All attachments in pColorAttachments that are not VK_ATTACHMENT_UNUSED must have image formats whose potential format features contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "page": "vkspec" }, { - "vuid": "VUID-VkSubpassDescription2-pResolveAttachments-02899", - "text": " All attachments in pResolveAttachments that are not VK_ATTACHMENT_UNUSED must have image formats whose potential format features contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT" + "vuid": "VUID-VkSubpassDescription2-pResolveAttachments-09343", + "text": "All attachments in pResolveAttachments that are not VK_ATTACHMENT_UNUSED and do not have an image format of VK_FORMAT_UNDEFINED must have image formats whose potential format features contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription2-pDepthStencilAttachment-02900", - "text": " If pDepthStencilAttachment is not NULL and the attachment is not VK_ATTACHMENT_UNUSED then it must have an image format whose potential format features contain VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT" + "text": "If pDepthStencilAttachment is not NULL and the attachment is not VK_ATTACHMENT_UNUSED then it must have an image format whose potential format features contain VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription2-linearColorAttachment-06499", - "text": " If the linearColorAttachment feature is enabled and the image is created with VK_IMAGE_TILING_LINEAR, all attachments in pInputAttachments that are not VK_ATTACHMENT_UNUSED must have image formats whose potential format features must contain VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV" + "text": "If the linearColorAttachment feature is enabled and the image is created with VK_IMAGE_TILING_LINEAR, all attachments in pInputAttachments that are not VK_ATTACHMENT_UNUSED must have image formats whose potential format features must contain VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription2-linearColorAttachment-06500", - "text": " If the linearColorAttachment feature is enabled and the image is created with VK_IMAGE_TILING_LINEAR, all attachments in pColorAttachments that are not VK_ATTACHMENT_UNUSED must have image formats whose potential format features must contain VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV" + "text": "If the linearColorAttachment feature is enabled and the image is created with VK_IMAGE_TILING_LINEAR, all attachments in pColorAttachments that are not VK_ATTACHMENT_UNUSED must have image formats whose potential format features must contain VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription2-linearColorAttachment-06501", - "text": " If the linearColorAttachment feature is enabled and the image is created with VK_IMAGE_TILING_LINEAR, all attachments in pResolveAttachments that are not VK_ATTACHMENT_UNUSED must have image formats whose potential format features must contain VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV" + "text": "If the linearColorAttachment feature is enabled and the image is created with VK_IMAGE_TILING_LINEAR, all attachments in pResolveAttachments that are not VK_ATTACHMENT_UNUSED must have image formats whose potential format features must contain VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription2-pColorAttachments-03070", - "text": " If the VK_AMD_mixed_attachment_samples extension is enabled, all attachments in pColorAttachments that are not VK_ATTACHMENT_UNUSED must have a sample count that is smaller than or equal to the sample count of pDepthStencilAttachment if it is not VK_ATTACHMENT_UNUSED" + "text": "If the VK_AMD_mixed_attachment_samples extension is enabled, all attachments in pColorAttachments that are not VK_ATTACHMENT_UNUSED must have a sample count that is smaller than or equal to the sample count of pDepthStencilAttachment if it is not VK_ATTACHMENT_UNUSED", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription2-pNext-06870", - "text": " If the pNext chain includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then all attachments in pColorAttachments and pDepthStencilAttachment that are not VK_ATTACHMENT_UNUSED must have a sample count that is either VK_SAMPLE_COUNT_1_BIT or equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples" + "text": "If the pNext chain includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then all attachments in pColorAttachments and pDepthStencilAttachment that are not VK_ATTACHMENT_UNUSED must have a sample count that is either VK_SAMPLE_COUNT_1_BIT or equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription2-pNext-06871", - "text": " If the pNext chain includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, and pDepthStencilAttachment is not NULL, does not have the value VK_ATTACHMENT_UNUSED, and has a sample count of VK_SAMPLE_COUNT_1_BIT, the pNext chain must also include a VkSubpassDescriptionDepthStencilResolve structure with pDepthStencilResolveAttachment that is either NULL or has the value VK_ATTACHMENT_UNUSED" + "text": "If the pNext chain includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, and pDepthStencilAttachment is not NULL, does not have the value VK_ATTACHMENT_UNUSED, and has a sample count of VK_SAMPLE_COUNT_1_BIT, the pNext chain must also include a VkSubpassDescriptionDepthStencilResolve structure with pDepthStencilResolveAttachment that is either NULL or has the value VK_ATTACHMENT_UNUSED", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription2-multisampledRenderToSingleSampled-06872", - "text": " If none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature are enabled, all attachments in pDepthStencilAttachment or pColorAttachments that are not VK_ATTACHMENT_UNUSED must have the same sample count" + "text": "If none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature are enabled, all attachments in pDepthStencilAttachment or pColorAttachments that are not VK_ATTACHMENT_UNUSED must have the same sample count", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription2-attachment-03073", - "text": " Each element of pPreserveAttachments must not be VK_ATTACHMENT_UNUSED" + "text": "Each element of pPreserveAttachments must not be VK_ATTACHMENT_UNUSED", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription2-pPreserveAttachments-03074", - "text": " Each element of pPreserveAttachments must not also be an element of any other member of the subpass description" + "text": "Each element of pPreserveAttachments must not also be an element of any other member of the subpass description", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription2-layout-02528", - "text": " If any attachment is used by more than one VkAttachmentReference2 member, then each use must use the same layout" + "text": "If any attachment is used by more than one VkAttachmentReference2 member, then each use must use the same layout", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription2-flags-03076", - "text": " If flags includes VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX, it must also include VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX" + "text": "If flags includes VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX, it must also include VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription2-attachment-02799", - "text": " If the attachment member of any element of pInputAttachments is not VK_ATTACHMENT_UNUSED, then the aspectMask member must be a valid combination of VkImageAspectFlagBits" + "text": "If the attachment member of any element of pInputAttachments is not VK_ATTACHMENT_UNUSED, then the aspectMask member must be a valid combination of VkImageAspectFlagBits", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription2-attachment-02800", - "text": " If the attachment member of any element of pInputAttachments is not VK_ATTACHMENT_UNUSED, then the aspectMask member must not be 0" + "text": "If the attachment member of any element of pInputAttachments is not VK_ATTACHMENT_UNUSED, then the aspectMask member must not be 0", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription2-attachment-02801", - "text": " If the attachment member of any element of pInputAttachments is not VK_ATTACHMENT_UNUSED, then the aspectMask member must not include VK_IMAGE_ASPECT_METADATA_BIT" + "text": "If the attachment member of any element of pInputAttachments is not VK_ATTACHMENT_UNUSED, then the aspectMask member must not include VK_IMAGE_ASPECT_METADATA_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription2-attachment-04563", - "text": " If the attachment member of any element of pInputAttachments is not VK_ATTACHMENT_UNUSED, then the aspectMask member must not include VK_IMAGE_ASPECT_MEMORY_PLANE{ibit}BIT_EXT for any index i" + "text": "If the attachment member of any element of pInputAttachments is not VK_ATTACHMENT_UNUSED, then the aspectMask member must not include VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT for any index i", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription2-pDepthStencilAttachment-04440", - "text": " An attachment must not be used in both pDepthStencilAttachment and pColorAttachments" + "text": "An attachment must not be used in both pDepthStencilAttachment and pColorAttachments", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription2-multiview-06558", - "text": " If the multiview feature is not enabled, viewMask must be 0" + "text": "If the multiview feature is not enabled, viewMask must be 0", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription2-viewMask-06706", - "text": " The index of the most significant bit in viewMask must be less than maxMultiviewViewCount" + "text": "The index of the most significant bit in viewMask must be less than maxMultiviewViewCount", + "page": "vkspec" + }, + { + "vuid": "VUID-VkSubpassDescription2-externalFormatResolve-09344", + "text": "If externalFormatResolve is enabled, pResolveAttachments is not NULL, and colorAttachmentCount is not 1, any element of pResolveAttachments that is not VK_ATTACHMENT_UNUSED, must not have a format of VK_FORMAT_UNDEFINED", + "page": "vkspec" + }, + { + "vuid": "VUID-VkSubpassDescription2-externalFormatResolve-09345", + "text": "If externalFormatResolve is enabled, pResolveAttachments is not NULL, any element of pResolveAttachments is not VK_ATTACHMENT_UNUSED and has a format of VK_FORMAT_UNDEFINED, and the corresponding element of pColorAttachments is not VK_ATTACHMENT_UNUSED, the color attachment must have a samples value of 1", + "page": "vkspec" + }, + { + "vuid": "VUID-VkSubpassDescription2-externalFormatResolve-09346", + "text": "If externalFormatResolve is enabled, pResolveAttachments is not NULL, and any element of pResolveAttachments is not VK_ATTACHMENT_UNUSED and has a format of VK_FORMAT_UNDEFINED, viewMask must be 0", + "page": "vkspec" + }, + { + "vuid": "VUID-VkSubpassDescription2-externalFormatResolve-09347", + "text": "If externalFormatResolve is enabled, pResolveAttachments is not NULL, and any element of pResolveAttachments is not VK_ATTACHMENT_UNUSED and has a format of VK_FORMAT_UNDEFINED, VkFragmentShadingRateAttachmentInfoKHR::pFragmentShadingRateAttachment must either be NULL or a VkAttachmentReference2 structure with a attachment value of VK_ATTACHMENT_UNUSED", + "page": "vkspec" + }, + { + "vuid": "VUID-VkSubpassDescription2-externalFormatResolve-09348", + "text": "If externalFormatResolve is enabled, pResolveAttachments is not NULL, and any element of pResolveAttachments is not VK_ATTACHMENT_UNUSED and has a format of VK_FORMAT_UNDEFINED, elements of pInputAttachments referencing either a color attachment or resolve attachment used in this subpass must not include VK_IMAGE_ASPECT_PLANE_i_BIT for any index i in its aspectMask", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription2-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2" + "text": "sType must be VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription2-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 VkFragmentShadingRateAttachmentInfoKHR, VkMultisampledRenderToSingleSampledInfoEXT, VkRenderPassCreationControlEXT, VkRenderPassSubpassFeedbackCreateInfoEXT, or VkSubpassDescriptionDepthStencilResolve" + "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 VkFragmentShadingRateAttachmentInfoKHR, VkMultisampledRenderToSingleSampledInfoEXT, VkRenderPassCreationControlEXT, VkRenderPassSubpassFeedbackCreateInfoEXT, or VkSubpassDescriptionDepthStencilResolve", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription2-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription2-flags-parameter", - "text": " flags must be a valid combination of VkSubpassDescriptionFlagBits values" + "text": "flags must be a valid combination of VkSubpassDescriptionFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription2-pipelineBindPoint-parameter", - "text": " pipelineBindPoint must be a valid VkPipelineBindPoint value" + "text": "pipelineBindPoint must be a valid VkPipelineBindPoint value", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription2-pInputAttachments-parameter", - "text": " If inputAttachmentCount is not 0, pInputAttachments must be a valid pointer to an array of inputAttachmentCount valid VkAttachmentReference2 structures" + "text": "If inputAttachmentCount is not 0, pInputAttachments must be a valid pointer to an array of inputAttachmentCount valid VkAttachmentReference2 structures", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription2-pColorAttachments-parameter", - "text": " If colorAttachmentCount is not 0, pColorAttachments must be a valid pointer to an array of colorAttachmentCount valid VkAttachmentReference2 structures" + "text": "If colorAttachmentCount is not 0, pColorAttachments must be a valid pointer to an array of colorAttachmentCount valid VkAttachmentReference2 structures", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription2-pResolveAttachments-parameter", - "text": " If colorAttachmentCount is not 0, and pResolveAttachments is not NULL, pResolveAttachments must be a valid pointer to an array of colorAttachmentCount valid VkAttachmentReference2 structures" + "text": "If colorAttachmentCount is not 0, and pResolveAttachments is not NULL, pResolveAttachments must be a valid pointer to an array of colorAttachmentCount valid VkAttachmentReference2 structures", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription2-pDepthStencilAttachment-parameter", - "text": " If pDepthStencilAttachment is not NULL, pDepthStencilAttachment must be a valid pointer to a valid VkAttachmentReference2 structure" + "text": "If pDepthStencilAttachment is not NULL, pDepthStencilAttachment must be a valid pointer to a valid VkAttachmentReference2 structure", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescription2-pPreserveAttachments-parameter", - "text": " If preserveAttachmentCount is not 0, pPreserveAttachments must be a valid pointer to an array of preserveAttachmentCount uint32_t values" + "text": "If preserveAttachmentCount is not 0, pPreserveAttachments must be a valid pointer to an array of preserveAttachmentCount uint32_t values", + "page": "vkspec" } ] }, @@ -8566,75 +10763,93 @@ "core": [ { "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03177", - "text": " If pDepthStencilResolveAttachment is not NULL and does not have the value VK_ATTACHMENT_UNUSED, pDepthStencilAttachment must not be NULL or have the value VK_ATTACHMENT_UNUSED" + "text": "If pDepthStencilResolveAttachment is not NULL and does not have the value VK_ATTACHMENT_UNUSED, pDepthStencilAttachment must not be NULL or have the value VK_ATTACHMENT_UNUSED", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03179", - "text": " If pDepthStencilResolveAttachment is not NULL and does not have the value VK_ATTACHMENT_UNUSED, pDepthStencilAttachment must not have a sample count of VK_SAMPLE_COUNT_1_BIT" + "text": "If pDepthStencilResolveAttachment is not NULL and does not have the value VK_ATTACHMENT_UNUSED, pDepthStencilAttachment must not have a sample count of VK_SAMPLE_COUNT_1_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03180", - "text": " If pDepthStencilResolveAttachment is not NULL and does not have the value VK_ATTACHMENT_UNUSED, pDepthStencilResolveAttachment must have a sample count of VK_SAMPLE_COUNT_1_BIT" + "text": "If pDepthStencilResolveAttachment is not NULL and does not have the value VK_ATTACHMENT_UNUSED, pDepthStencilResolveAttachment must have a sample count of VK_SAMPLE_COUNT_1_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-02651", - "text": " If pDepthStencilResolveAttachment is not NULL and does not have the value VK_ATTACHMENT_UNUSED then it must have an image format whose potential format features contain VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT" + "text": "If pDepthStencilResolveAttachment is not NULL and does not have the value VK_ATTACHMENT_UNUSED then it must have an image format whose potential format features contain VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03181", - "text": " If pDepthStencilResolveAttachment is not NULL and does not have the value VK_ATTACHMENT_UNUSED and VkFormat of pDepthStencilResolveAttachment has a depth component, then the VkFormat of pDepthStencilAttachment must have a depth component with the same number of bits and numeric format" + "text": "If pDepthStencilResolveAttachment is not NULL and does not have the value VK_ATTACHMENT_UNUSED and VkFormat of pDepthStencilResolveAttachment has a depth component, then the VkFormat of pDepthStencilAttachment must have a depth component with the same number of bits and numeric format", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03182", - "text": " If pDepthStencilResolveAttachment is not NULL and does not have the value VK_ATTACHMENT_UNUSED, and VkFormat of pDepthStencilResolveAttachment has a stencil component, then the VkFormat of pDepthStencilAttachment must have a stencil component with the same number of bits and numeric format" + "text": "If pDepthStencilResolveAttachment is not NULL and does not have the value VK_ATTACHMENT_UNUSED, and VkFormat of pDepthStencilResolveAttachment has a stencil component, then the VkFormat of pDepthStencilAttachment must have a stencil component with the same number of bits and numeric format", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03178", - "text": " If pDepthStencilResolveAttachment is not NULL and does not have the value VK_ATTACHMENT_UNUSED, depthResolveMode and stencilResolveMode must not both be VK_RESOLVE_MODE_NONE" + "text": "If pDepthStencilResolveAttachment is not NULL and does not have the value VK_ATTACHMENT_UNUSED, depthResolveMode and stencilResolveMode must not both be VK_RESOLVE_MODE_NONE", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-depthResolveMode-03183", - "text": " If pDepthStencilResolveAttachment is not NULL and does not have the value VK_ATTACHMENT_UNUSED and the VkFormat of pDepthStencilResolveAttachment has a depth component, then the value of depthResolveMode must be one of the bits set in VkPhysicalDeviceDepthStencilResolveProperties::supportedDepthResolveModes or VK_RESOLVE_MODE_NONE" + "text": "If pDepthStencilResolveAttachment is not NULL and does not have the value VK_ATTACHMENT_UNUSED and the VkFormat of pDepthStencilResolveAttachment has a depth component, then the value of depthResolveMode must be one of the bits set in VkPhysicalDeviceDepthStencilResolveProperties::supportedDepthResolveModes or VK_RESOLVE_MODE_NONE", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-stencilResolveMode-03184", - "text": " If pDepthStencilResolveAttachment is not NULL and does not have the value VK_ATTACHMENT_UNUSED and the VkFormat of pDepthStencilResolveAttachment has a stencil component, then the value of stencilResolveMode must be one of the bits set in VkPhysicalDeviceDepthStencilResolveProperties::supportedStencilResolveModes or VK_RESOLVE_MODE_NONE" + "text": "If pDepthStencilResolveAttachment is not NULL and does not have the value VK_ATTACHMENT_UNUSED and the VkFormat of pDepthStencilResolveAttachment has a stencil component, then the value of stencilResolveMode must be one of the bits set in VkPhysicalDeviceDepthStencilResolveProperties::supportedStencilResolveModes or VK_RESOLVE_MODE_NONE", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03185", - "text": " If pDepthStencilResolveAttachment is not NULL and does not have the value VK_ATTACHMENT_UNUSED, the VkFormat of pDepthStencilResolveAttachment has both depth and stencil components, VkPhysicalDeviceDepthStencilResolveProperties::independentResolve is VK_FALSE, and VkPhysicalDeviceDepthStencilResolveProperties::independentResolveNone is VK_FALSE, then the values of depthResolveMode and stencilResolveMode must be identical" + "text": "If pDepthStencilResolveAttachment is not NULL and does not have the value VK_ATTACHMENT_UNUSED, the VkFormat of pDepthStencilResolveAttachment has both depth and stencil components, VkPhysicalDeviceDepthStencilResolveProperties::independentResolve is VK_FALSE, and VkPhysicalDeviceDepthStencilResolveProperties::independentResolveNone is VK_FALSE, then the values of depthResolveMode and stencilResolveMode must be identical", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03186", - "text": " If pDepthStencilResolveAttachment is not NULL and does not have the value VK_ATTACHMENT_UNUSED, the VkFormat of pDepthStencilResolveAttachment has both depth and stencil components, VkPhysicalDeviceDepthStencilResolveProperties::independentResolve is VK_FALSE and VkPhysicalDeviceDepthStencilResolveProperties::independentResolveNone is VK_TRUE, then the values of depthResolveMode and stencilResolveMode must be identical or one of them must be VK_RESOLVE_MODE_NONE" + "text": "If pDepthStencilResolveAttachment is not NULL and does not have the value VK_ATTACHMENT_UNUSED, the VkFormat of pDepthStencilResolveAttachment has both depth and stencil components, VkPhysicalDeviceDepthStencilResolveProperties::independentResolve is VK_FALSE and VkPhysicalDeviceDepthStencilResolveProperties::independentResolveNone is VK_TRUE, then the values of depthResolveMode and stencilResolveMode must be identical or one of them must be VK_RESOLVE_MODE_NONE", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-pNext-06873", - "text": " If the pNext chain of VkSubpassDescription2 includes a VkMultisampledRenderToSingleSampledInfoEXT structure, the multisampledRenderToSingleSampledEnable field is VK_TRUE, and pDepthStencilAttachment is not NULL and does not have the value VK_ATTACHMENT_UNUSED, depthResolveMode and stencilResolveMode must not both be VK_RESOLVE_MODE_NONE" + "text": "If the pNext chain of VkSubpassDescription2 includes a VkMultisampledRenderToSingleSampledInfoEXT structure, the multisampledRenderToSingleSampledEnable field is VK_TRUE, and pDepthStencilAttachment is not NULL and does not have the value VK_ATTACHMENT_UNUSED, depthResolveMode and stencilResolveMode must not both be VK_RESOLVE_MODE_NONE", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-pNext-06874", - "text": " If the pNext chain of VkSubpassDescription2 includes a VkMultisampledRenderToSingleSampledInfoEXT structure whose multisampledRenderToSingleSampledEnable field is VK_TRUE, and pDepthStencilAttachment is not NULL, does not have the value VK_ATTACHMENT_UNUSED, and has a VkFormat that has a depth component, then the value of depthResolveMode must be one of the bits set in VkPhysicalDeviceDepthStencilResolveProperties::supportedDepthResolveModes or VK_RESOLVE_MODE_NONE" + "text": "If the pNext chain of VkSubpassDescription2 includes a VkMultisampledRenderToSingleSampledInfoEXT structure whose multisampledRenderToSingleSampledEnable field is VK_TRUE, and pDepthStencilAttachment is not NULL, does not have the value VK_ATTACHMENT_UNUSED, and has a VkFormat that has a depth component, then the value of depthResolveMode must be one of the bits set in VkPhysicalDeviceDepthStencilResolveProperties::supportedDepthResolveModes or VK_RESOLVE_MODE_NONE", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-pNext-06875", - "text": " If the pNext chain of VkSubpassDescription2 includes a VkMultisampledRenderToSingleSampledInfoEXT structure whose multisampledRenderToSingleSampledEnable field is VK_TRUE, and pDepthStencilAttachment is not NULL, does not have the value VK_ATTACHMENT_UNUSED, and has a VkFormat with a stencil component, then the value of stencilResolveMode must be one of the bits set in VkPhysicalDeviceDepthStencilResolveProperties::supportedStencilResolveModes or VK_RESOLVE_MODE_NONE" + "text": "If the pNext chain of VkSubpassDescription2 includes a VkMultisampledRenderToSingleSampledInfoEXT structure whose multisampledRenderToSingleSampledEnable field is VK_TRUE, and pDepthStencilAttachment is not NULL, does not have the value VK_ATTACHMENT_UNUSED, and has a VkFormat with a stencil component, then the value of stencilResolveMode must be one of the bits set in VkPhysicalDeviceDepthStencilResolveProperties::supportedStencilResolveModes or VK_RESOLVE_MODE_NONE", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-pNext-06876", - "text": " If the pNext chain of VkSubpassDescription2 includes a VkMultisampledRenderToSingleSampledInfoEXT structure whose multisampledRenderToSingleSampledEnable field is VK_TRUE, pDepthStencilAttachment is not NULL, does not have the value VK_ATTACHMENT_UNUSED, and has a VkFormat with both depth and stencil components, and both VkPhysicalDeviceDepthStencilResolveProperties::independentResolve and VkPhysicalDeviceDepthStencilResolveProperties::independentResolveNone are VK_FALSE, then the values of depthResolveMode and stencilResolveMode must be identical" + "text": "If the pNext chain of VkSubpassDescription2 includes a VkMultisampledRenderToSingleSampledInfoEXT structure whose multisampledRenderToSingleSampledEnable field is VK_TRUE, pDepthStencilAttachment is not NULL, does not have the value VK_ATTACHMENT_UNUSED, and has a VkFormat with both depth and stencil components, and both VkPhysicalDeviceDepthStencilResolveProperties::independentResolve and VkPhysicalDeviceDepthStencilResolveProperties::independentResolveNone are VK_FALSE, then the values of depthResolveMode and stencilResolveMode must be identical", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-pNext-06877", - "text": " If the pNext chain of VkSubpassDescription2 includes a VkMultisampledRenderToSingleSampledInfoEXT structure whose multisampledRenderToSingleSampledEnable field is VK_TRUE, pDepthStencilAttachment is not NULL, does not have the value VK_ATTACHMENT_UNUSED, and has a VkFormat with both depth and stencil components, VkPhysicalDeviceDepthStencilResolveProperties::independentResolve is VK_FALSE, and VkPhysicalDeviceDepthStencilResolveProperties::independentResolveNone is VK_TRUE, then the values of depthResolveMode and stencilResolveMode must be identical or one of them must be VK_RESOLVE_MODE_NONE" + "text": "If the pNext chain of VkSubpassDescription2 includes a VkMultisampledRenderToSingleSampledInfoEXT structure whose multisampledRenderToSingleSampledEnable field is VK_TRUE, pDepthStencilAttachment is not NULL, does not have the value VK_ATTACHMENT_UNUSED, and has a VkFormat with both depth and stencil components, VkPhysicalDeviceDepthStencilResolveProperties::independentResolve is VK_FALSE, and VkPhysicalDeviceDepthStencilResolveProperties::independentResolveNone is VK_TRUE, then the values of depthResolveMode and stencilResolveMode must be identical or one of them must be VK_RESOLVE_MODE_NONE", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE" + "text": "sType must be VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-parameter", - "text": " If pDepthStencilResolveAttachment is not NULL, pDepthStencilResolveAttachment must be a valid pointer to a valid VkAttachmentReference2 structure" + "text": "If pDepthStencilResolveAttachment is not NULL, pDepthStencilResolveAttachment must be a valid pointer to a valid VkAttachmentReference2 structure", + "page": "vkspec" } ] }, @@ -8642,47 +10857,58 @@ "core": [ { "vuid": "VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04524", - "text": " If pFragmentShadingRateAttachment is not NULL and its attachment member is not VK_ATTACHMENT_UNUSED, its layout member must be equal to VK_IMAGE_LAYOUT_GENERAL or VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR" + "text": "If pFragmentShadingRateAttachment is not NULL and its attachment member is not VK_ATTACHMENT_UNUSED, its layout member must be equal to VK_IMAGE_LAYOUT_GENERAL or VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04525", - "text": " If pFragmentShadingRateAttachment is not NULL and its attachment member is not VK_ATTACHMENT_UNUSED, shadingRateAttachmentTexelSize.width must be a power of two value" + "text": "If pFragmentShadingRateAttachment is not NULL and its attachment member is not VK_ATTACHMENT_UNUSED, shadingRateAttachmentTexelSize.width must be a power of two value", + "page": "vkspec" }, { "vuid": "VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04526", - "text": " If pFragmentShadingRateAttachment is not NULL and its attachment member is not VK_ATTACHMENT_UNUSED, shadingRateAttachmentTexelSize.width must be less than or equal to maxFragmentShadingRateAttachmentTexelSize.width" + "text": "If pFragmentShadingRateAttachment is not NULL and its attachment member is not VK_ATTACHMENT_UNUSED, shadingRateAttachmentTexelSize.width must be less than or equal to maxFragmentShadingRateAttachmentTexelSize.width", + "page": "vkspec" }, { "vuid": "VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04527", - "text": " If pFragmentShadingRateAttachment is not NULL and its attachment member is not VK_ATTACHMENT_UNUSED, shadingRateAttachmentTexelSize.width must be greater than or equal to minFragmentShadingRateAttachmentTexelSize.width" + "text": "If pFragmentShadingRateAttachment is not NULL and its attachment member is not VK_ATTACHMENT_UNUSED, shadingRateAttachmentTexelSize.width must be greater than or equal to minFragmentShadingRateAttachmentTexelSize.width", + "page": "vkspec" }, { "vuid": "VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04528", - "text": " If pFragmentShadingRateAttachment is not NULL and its attachment member is not VK_ATTACHMENT_UNUSED, shadingRateAttachmentTexelSize.height must be a power of two value" + "text": "If pFragmentShadingRateAttachment is not NULL and its attachment member is not VK_ATTACHMENT_UNUSED, shadingRateAttachmentTexelSize.height must be a power of two value", + "page": "vkspec" }, { "vuid": "VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04529", - "text": " If pFragmentShadingRateAttachment is not NULL and its attachment member is not VK_ATTACHMENT_UNUSED, shadingRateAttachmentTexelSize.height must be less than or equal to maxFragmentShadingRateAttachmentTexelSize.height" + "text": "If pFragmentShadingRateAttachment is not NULL and its attachment member is not VK_ATTACHMENT_UNUSED, shadingRateAttachmentTexelSize.height must be less than or equal to maxFragmentShadingRateAttachmentTexelSize.height", + "page": "vkspec" }, { "vuid": "VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04530", - "text": " If pFragmentShadingRateAttachment is not NULL and its attachment member is not VK_ATTACHMENT_UNUSED, shadingRateAttachmentTexelSize.height must be greater than or equal to minFragmentShadingRateAttachmentTexelSize.height" + "text": "If pFragmentShadingRateAttachment is not NULL and its attachment member is not VK_ATTACHMENT_UNUSED, shadingRateAttachmentTexelSize.height must be greater than or equal to minFragmentShadingRateAttachmentTexelSize.height", + "page": "vkspec" }, { "vuid": "VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04531", - "text": " If pFragmentShadingRateAttachment is not NULL and its attachment member is not VK_ATTACHMENT_UNUSED, the quotient of shadingRateAttachmentTexelSize.width and shadingRateAttachmentTexelSize.height must be less than or equal to maxFragmentShadingRateAttachmentTexelSizeAspectRatio" + "text": "If pFragmentShadingRateAttachment is not NULL and its attachment member is not VK_ATTACHMENT_UNUSED, the quotient of shadingRateAttachmentTexelSize.width and shadingRateAttachmentTexelSize.height must be less than or equal to maxFragmentShadingRateAttachmentTexelSizeAspectRatio", + "page": "vkspec" }, { "vuid": "VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04532", - "text": " If pFragmentShadingRateAttachment is not NULL and its attachment member is not VK_ATTACHMENT_UNUSED, the quotient of shadingRateAttachmentTexelSize.height and shadingRateAttachmentTexelSize.width must be less than or equal to maxFragmentShadingRateAttachmentTexelSizeAspectRatio" + "text": "If pFragmentShadingRateAttachment is not NULL and its attachment member is not VK_ATTACHMENT_UNUSED, the quotient of shadingRateAttachmentTexelSize.height and shadingRateAttachmentTexelSize.width must be less than or equal to maxFragmentShadingRateAttachmentTexelSizeAspectRatio", + "page": "vkspec" }, { "vuid": "VUID-VkFragmentShadingRateAttachmentInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-parameter", - "text": " If pFragmentShadingRateAttachment is not NULL, pFragmentShadingRateAttachment must be a valid pointer to a valid VkAttachmentReference2 structure" + "text": "If pFragmentShadingRateAttachment is not NULL, pFragmentShadingRateAttachment must be a valid pointer to a valid VkAttachmentReference2 structure", + "page": "vkspec" } ] }, @@ -8690,19 +10916,23 @@ "core": [ { "vuid": "VUID-VkMultisampledRenderToSingleSampledInfoEXT-rasterizationSamples-06878", - "text": " The value of rasterizationSamples must not be VK_SAMPLE_COUNT_1_BIT" + "text": "The value of rasterizationSamples must not be VK_SAMPLE_COUNT_1_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkMultisampledRenderToSingleSampledInfoEXT-pNext-06880", - "text": " If added to the pNext chain of VkRenderingInfo, each imageView member of any element of VkRenderingInfo::pColorAttachments, VkRenderingInfo::pDepthAttachment, or VkRenderingInfo::pStencilAttachment that is not VK_NULL_HANDLE must have a format that supports the sample count specified in rasterizationSamples" + "text": "If added to the pNext chain of VkRenderingInfo, each imageView member of any element of VkRenderingInfo::pColorAttachments, VkRenderingInfo::pDepthAttachment, or VkRenderingInfo::pStencilAttachment that is not VK_NULL_HANDLE must have a format that supports the sample count specified in rasterizationSamples", + "page": "vkspec" }, { "vuid": "VUID-VkMultisampledRenderToSingleSampledInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkMultisampledRenderToSingleSampledInfoEXT-rasterizationSamples-parameter", - "text": " rasterizationSamples must be a valid VkSampleCountFlagBits value" + "text": "rasterizationSamples must be a valid VkSampleCountFlagBits value", + "page": "vkspec" } ] }, @@ -8710,35 +10940,43 @@ "core": [ { "vuid": "VUID-VkAttachmentReference2-layout-03077", - "text": " If attachment is not VK_ATTACHMENT_UNUSED, layout must not be VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_PREINITIALIZED, or VK_IMAGE_LAYOUT_PRESENT_SRC_KHR" + "text": "If attachment is not VK_ATTACHMENT_UNUSED, layout must not be VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_PREINITIALIZED, or VK_IMAGE_LAYOUT_PRESENT_SRC_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentReference2-separateDepthStencilLayouts-03313", - "text": " If the separateDepthStencilLayouts feature is not enabled, and attachment is not VK_ATTACHMENT_UNUSED, layout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL," + "text": "If the separateDepthStencilLayouts feature is not enabled, and attachment is not VK_ATTACHMENT_UNUSED, layout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL,", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentReference2-synchronization2-06910", - "text": " If the synchronization2 feature is not enabled, layout must not be VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR or VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR" + "text": "If the synchronization2 feature is not enabled, layout must not be VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR or VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentReference2-attachmentFeedbackLoopLayout-07311", - "text": " If the attachmentFeedbackLoopLayout feature is not enabled, layout must not be VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT" + "text": "If the attachmentFeedbackLoopLayout feature is not enabled, layout must not be VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentReference2-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2" + "text": "sType must be VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentReference2-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkAttachmentReferenceStencilLayout" + "text": "pNext must be NULL or a pointer to a valid instance of VkAttachmentReferenceStencilLayout", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentReference2-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentReference2-layout-parameter", - "text": " layout must be a valid VkImageLayout value" + "text": "layout must be a valid VkImageLayout value", + "page": "vkspec" } ] }, @@ -8746,15 +10984,18 @@ "core": [ { "vuid": "VUID-VkAttachmentReferenceStencilLayout-stencilLayout-03318", - "text": " stencilLayout must not be VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_PREINITIALIZED, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_PRESENT_SRC_KHR" + "text": "stencilLayout must not be VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_PREINITIALIZED, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_PRESENT_SRC_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentReferenceStencilLayout-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT" + "text": "sType must be VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentReferenceStencilLayout-stencilLayout-parameter", - "text": " stencilLayout must be a valid VkImageLayout value" + "text": "stencilLayout must be a valid VkImageLayout value", + "page": "vkspec" } ] }, @@ -8762,155 +11003,193 @@ "core": [ { "vuid": "VUID-VkSubpassDependency2-srcStageMask-04090", - "text": " If the geometryShader feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT" + "text": "If the geometryShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDependency2-srcStageMask-04091", - "text": " If the tessellationShader feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT" + "text": "If the tessellationShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDependency2-srcStageMask-04092", - "text": " If the conditionalRendering feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT" + "text": "If the conditionalRendering feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDependency2-srcStageMask-04093", - "text": " If the fragmentDensityMap feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT" + "text": "If the fragmentDensityMap feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDependency2-srcStageMask-04094", - "text": " If the transformFeedback feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT" + "text": "If the transformFeedback feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDependency2-srcStageMask-04095", - "text": " If the meshShader feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT" + "text": "If the meshShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDependency2-srcStageMask-04096", - "text": " If the taskShader feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT" + "text": "If the taskShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDependency2-srcStageMask-07318", - "text": " If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR" + "text": "If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, srcStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDependency2-srcStageMask-03937", - "text": " If the synchronization2 feature is not enabled, pname:srcStageMask must not be 0" + "text": "If the synchronization2 feature is not enabled, srcStageMask must not be 0", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDependency2-srcStageMask-07949", - "text": " If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR" + "text": "If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, srcStageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDependency2-dstStageMask-04090", - "text": " If the geometryShader feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT" + "text": "If the geometryShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDependency2-dstStageMask-04091", - "text": " If the tessellationShader feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT" + "text": "If the tessellationShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDependency2-dstStageMask-04092", - "text": " If the conditionalRendering feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT" + "text": "If the conditionalRendering feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDependency2-dstStageMask-04093", - "text": " If the fragmentDensityMap feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT" + "text": "If the fragmentDensityMap feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDependency2-dstStageMask-04094", - "text": " If the transformFeedback feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT" + "text": "If the transformFeedback feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDependency2-dstStageMask-04095", - "text": " If the meshShader feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT" + "text": "If the meshShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDependency2-dstStageMask-04096", - "text": " If the taskShader feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT" + "text": "If the taskShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDependency2-dstStageMask-07318", - "text": " If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR" + "text": "If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, dstStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDependency2-dstStageMask-03937", - "text": " If the synchronization2 feature is not enabled, pname:dstStageMask must not be 0" + "text": "If the synchronization2 feature is not enabled, dstStageMask must not be 0", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDependency2-dstStageMask-07949", - "text": " If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR" + "text": "If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, dstStageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDependency2-srcSubpass-03084", - "text": " srcSubpass must be less than or equal to dstSubpass, unless one of them is VK_SUBPASS_EXTERNAL, to avoid cyclic dependencies and ensure a valid execution order" + "text": "srcSubpass must be less than or equal to dstSubpass, unless one of them is VK_SUBPASS_EXTERNAL, to avoid cyclic dependencies and ensure a valid execution order", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDependency2-srcSubpass-03085", - "text": " srcSubpass and dstSubpass must not both be equal to VK_SUBPASS_EXTERNAL" + "text": "srcSubpass and dstSubpass must not both be equal to VK_SUBPASS_EXTERNAL", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDependency2-srcSubpass-06810", - "text": " If srcSubpass is equal to dstSubpass and srcStageMask includes a framebuffer-space stage, dstStageMask must only contain framebuffer-space stages" + "text": "If srcSubpass is equal to dstSubpass and srcStageMask includes a framebuffer-space stage, dstStageMask must only contain framebuffer-space stages", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDependency2-srcAccessMask-03088", - "text": " Any access flag included in srcAccessMask must be supported by one of the pipeline stages in srcStageMask, as specified in the table of supported access types" + "text": "Any access flag included in srcAccessMask must be supported by one of the pipeline stages in srcStageMask, as specified in the table of supported access types", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDependency2-dstAccessMask-03089", - "text": " Any access flag included in dstAccessMask must be supported by one of the pipeline stages in dstStageMask, as specified in the table of supported access types" + "text": "Any access flag included in dstAccessMask must be supported by one of the pipeline stages in dstStageMask, as specified in the table of supported access types", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDependency2-dependencyFlags-03090", - "text": " If dependencyFlags includes VK_DEPENDENCY_VIEW_LOCAL_BIT, srcSubpass must not be equal to VK_SUBPASS_EXTERNAL" + "text": "If dependencyFlags includes VK_DEPENDENCY_VIEW_LOCAL_BIT, srcSubpass must not be equal to VK_SUBPASS_EXTERNAL", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDependency2-dependencyFlags-03091", - "text": " If dependencyFlags includes VK_DEPENDENCY_VIEW_LOCAL_BIT, dstSubpass must not be equal to VK_SUBPASS_EXTERNAL" + "text": "If dependencyFlags includes VK_DEPENDENCY_VIEW_LOCAL_BIT, dstSubpass must not be equal to VK_SUBPASS_EXTERNAL", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDependency2-srcSubpass-02245", - "text": " If srcSubpass equals dstSubpass, and srcStageMask and dstStageMask both include a framebuffer-space stage, then dependencyFlags must include VK_DEPENDENCY_BY_REGION_BIT" + "text": "If srcSubpass equals dstSubpass, and srcStageMask and dstStageMask both include a framebuffer-space stage, then dependencyFlags must include VK_DEPENDENCY_BY_REGION_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDependency2-viewOffset-02530", - "text": " If viewOffset is not equal to 0, srcSubpass must not be equal to dstSubpass" + "text": "If viewOffset is not equal to 0, srcSubpass must not be equal to dstSubpass", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDependency2-dependencyFlags-03092", - "text": " If dependencyFlags does not include VK_DEPENDENCY_VIEW_LOCAL_BIT, viewOffset must be 0" + "text": "If dependencyFlags does not include VK_DEPENDENCY_VIEW_LOCAL_BIT, viewOffset must be 0", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDependency2-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2" + "text": "sType must be VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDependency2-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkMemoryBarrier2" + "text": "pNext must be NULL or a pointer to a valid instance of VkMemoryBarrier2", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDependency2-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDependency2-srcStageMask-parameter", - "text": " srcStageMask must be a valid combination of VkPipelineStageFlagBits values" + "text": "srcStageMask must be a valid combination of VkPipelineStageFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDependency2-dstStageMask-parameter", - "text": " dstStageMask must be a valid combination of VkPipelineStageFlagBits values" + "text": "dstStageMask must be a valid combination of VkPipelineStageFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDependency2-srcAccessMask-parameter", - "text": " srcAccessMask must be a valid combination of VkAccessFlagBits values" + "text": "srcAccessMask must be a valid combination of VkAccessFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDependency2-dstAccessMask-parameter", - "text": " dstAccessMask must be a valid combination of VkAccessFlagBits values" + "text": "dstAccessMask must be a valid combination of VkAccessFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassDependency2-dependencyFlags-parameter", - "text": " dependencyFlags must be a valid combination of VkDependencyFlagBits values" + "text": "dependencyFlags must be a valid combination of VkDependencyFlagBits values", + "page": "vkspec" } ] }, @@ -8918,31 +11197,38 @@ "core": [ { "vuid": "VUID-vkDestroyRenderPass-renderPass-00873", - "text": " All submitted commands that refer to renderPass must have completed execution" + "text": "All submitted commands that refer to renderPass must have completed execution", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyRenderPass-renderPass-00874", - "text": " If VkAllocationCallbacks were provided when renderPass was created, a compatible set of callbacks must be provided here" + "text": "If VkAllocationCallbacks were provided when renderPass was created, a compatible set of callbacks must be provided here", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyRenderPass-renderPass-00875", - "text": " If no VkAllocationCallbacks were provided when renderPass was created, pAllocator must be NULL" + "text": "If no VkAllocationCallbacks were provided when renderPass was created, pAllocator must be NULL", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyRenderPass-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyRenderPass-renderPass-parameter", - "text": " If renderPass is not VK_NULL_HANDLE, renderPass must be a valid VkRenderPass handle" + "text": "If renderPass is not VK_NULL_HANDLE, renderPass must be a valid VkRenderPass handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyRenderPass-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyRenderPass-renderPass-parent", - "text": " If renderPass is a valid handle, it must have been created, allocated, or retrieved from device" + "text": "If renderPass is a valid handle, it must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -8950,23 +11236,28 @@ "core": [ { "vuid": "VUID-vkCreateFramebuffer-pCreateInfo-02777", - "text": " If pCreateInfo->flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, and attachmentCount is not 0, each element of pCreateInfo->pAttachments must have been created on device" + "text": "If pCreateInfo->flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, and attachmentCount is not 0, each element of pCreateInfo->pAttachments must have been created on device", + "page": "vkspec" }, { "vuid": "VUID-vkCreateFramebuffer-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkCreateFramebuffer-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkFramebufferCreateInfo structure" + "text": "pCreateInfo must be a valid pointer to a valid VkFramebufferCreateInfo structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateFramebuffer-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateFramebuffer-pFramebuffer-parameter", - "text": " pFramebuffer must be a valid pointer to a VkFramebuffer handle" + "text": "pFramebuffer must be a valid pointer to a VkFramebuffer handle", + "page": "vkspec" } ] }, @@ -8974,255 +11265,328 @@ "core": [ { "vuid": "VUID-VkFramebufferCreateInfo-attachmentCount-00876", - "text": " attachmentCount must be equal to the attachment count specified in renderPass" + "text": "attachmentCount must be equal to the attachment count specified in renderPass", + "page": "vkspec" }, { "vuid": "VUID-VkFramebufferCreateInfo-flags-02778", - "text": " If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT and attachmentCount is not 0, pAttachments must be a valid pointer to an array of attachmentCount valid VkImageView handles" + "text": "If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT and attachmentCount is not 0, pAttachments must be a valid pointer to an array of attachmentCount valid VkImageView handles", + "page": "vkspec" }, { "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-00877", - "text": " If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments that is used as a color attachment or resolve attachment by renderPass must have been created with a usage value including VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT" + "text": "If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments that is used as a color attachment or resolve attachment by renderPass must have been created with a usage value including VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-02633", - "text": " If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments that is used as a depth/stencil attachment by renderPass must have been created with a usage value including VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT" + "text": "If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments that is used as a depth/stencil attachment by renderPass must have been created with a usage value including VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-02634", - "text": " If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments that is used as a depth/stencil resolve attachment by renderPass must have been created with a usage value including VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT" + "text": "If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments that is used as a depth/stencil resolve attachment by renderPass must have been created with a usage value including VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-00879", - "text": " If renderpass is not VK_NULL_HANDLE, flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments that is used as an input attachment by renderPass must have been created with a usage value including VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT" + "text": "If renderpass is not VK_NULL_HANDLE, flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments that is used as an input attachment by renderPass must have been created with a usage value including VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-02552", - "text": " Each element of pAttachments that is used as a fragment density map attachment by renderPass must not have been created with a flags value including VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT" + "text": "Each element of pAttachments that is used as a fragment density map attachment by renderPass must not have been created with a flags value including VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkFramebufferCreateInfo-renderPass-02553", - "text": " If renderPass has a fragment density map attachment and the fragmentDensityMapNonSubsampledImages feature is not enabled, each element of pAttachments must have been created with a flags value including VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT unless that element is the fragment density map attachment" + "text": "If renderPass has a fragment density map attachment and the fragmentDensityMapNonSubsampledImages feature is not enabled, each element of pAttachments must have been created with a flags value including VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT unless that element is the fragment density map attachment", + "page": "vkspec" }, { "vuid": "VUID-VkFramebufferCreateInfo-renderPass-06502", - "text": " If renderPass was created with fragment density map offsets other than (0,0), each element of pAttachments must have been created with a flags value including VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM" + "text": "If renderPass was created with fragment density map offsets other than (0,0), each element of pAttachments must have been created with a flags value including VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-00880", - "text": " If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments must have been created with a VkFormat value that matches the VkFormat specified by the corresponding VkAttachmentDescription in renderPass" + "text": "If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments must have been created with a VkFormat value that matches the VkFormat specified by the corresponding VkAttachmentDescription in renderPass", + "page": "vkspec" }, { "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-00881", - "text": " If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments must have been created with a samples value that matches the samples value specified by the corresponding VkAttachmentDescription in renderPass" + "text": "If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments must have been created with a samples value that matches the samples value specified by the corresponding VkAttachmentDescription in renderPass", + "page": "vkspec" }, { "vuid": "VUID-VkFramebufferCreateInfo-flags-04533", - "text": " If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments that is used as an input, color, resolve, or depth/stencil attachment by renderPass must have been created with a VkImageCreateInfo::extent.width greater than or equal to width" + "text": "If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments that is used as an input, color, resolve, or depth/stencil attachment by renderPass must have been created with a VkImageCreateInfo::extent.width greater than or equal to width", + "page": "vkspec" }, { "vuid": "VUID-VkFramebufferCreateInfo-flags-04534", - "text": " If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments that is used as an input, color, resolve, or depth/stencil attachment by renderPass must have been created with a VkImageCreateInfo::extent.height greater than or equal to height" + "text": "If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments that is used as an input, color, resolve, or depth/stencil attachment by renderPass must have been created with a VkImageCreateInfo::extent.height greater than or equal to height", + "page": "vkspec" }, { "vuid": "VUID-VkFramebufferCreateInfo-flags-04535", - "text": " If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments that is used as an input, color, resolve, or depth/stencil attachment by renderPass must have been created with a VkImageViewCreateInfo::subresourceRange.layerCount greater than or equal to layers" + "text": "If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments that is used as an input, color, resolve, or depth/stencil attachment by renderPass must have been created with a VkImageViewCreateInfo::subresourceRange.layerCount greater than or equal to layers", + "page": "vkspec" }, { "vuid": "VUID-VkFramebufferCreateInfo-renderPass-04536", - "text": " If renderPass was specified with non-zero view masks, each element of pAttachments that is used as an input, color, resolve, or depth/stencil attachment by renderPass must have a layerCount greater than the index of the most significant bit set in any of those view masks" + "text": "If renderPass was specified with non-zero view masks, each element of pAttachments that is used as an input, color, resolve, or depth/stencil attachment by renderPass must have a layerCount greater than the index of the most significant bit set in any of those view masks", + "page": "vkspec" }, { "vuid": "VUID-VkFramebufferCreateInfo-renderPass-02746", - "text": " If renderPass was specified with non-zero view masks, each element of pAttachments that is referenced by fragmentDensityMapAttachment must have a layerCount equal to 1 or greater than the index of the most significant bit set in any of those view masks" + "text": "If renderPass was specified with non-zero view masks, each element of pAttachments that is referenced by fragmentDensityMapAttachment must have a layerCount equal to 1 or greater than the index of the most significant bit set in any of those view masks", + "page": "vkspec" }, { "vuid": "VUID-VkFramebufferCreateInfo-renderPass-02747", - "text": " If renderPass was specified with all view masks equal to zero, each element of pAttachments that is referenced by fragmentDensityMapAttachment must have a layerCount equal to 1" + "text": "If renderPass was specified with all view masks equal to zero, each element of pAttachments that is referenced by fragmentDensityMapAttachment must have a layerCount equal to 1", + "page": "vkspec" }, { "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-02555", - "text": " If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, an element of pAttachments that is referenced by fragmentDensityMapAttachment must have a width at least as large as \\(\\left\\lceil{\\frac{width}{maxFragmentDensityTexelSize_{width}}}\\right\\rceil\\)" + "text": "If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, an element of pAttachments that is referenced by fragmentDensityMapAttachment must have a width at least as large as \\(\\left\\lceil{\\frac{width}{maxFragmentDensityTexelSize_{width}}}\\right\\rceil\\)", + "page": "vkspec" }, { "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-02556", - "text": " If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, an element of pAttachments that is referenced by fragmentDensityMapAttachment must have a height at least as large as \\(\\left\\lceil{\\frac{height}{maxFragmentDensityTexelSize_{height}}}\\right\\rceil\\)" + "text": "If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, an element of pAttachments that is referenced by fragmentDensityMapAttachment must have a height at least as large as \\(\\left\\lceil{\\frac{height}{maxFragmentDensityTexelSize_{height}}}\\right\\rceil\\)", + "page": "vkspec" }, { "vuid": "VUID-VkFramebufferCreateInfo-flags-04537", - "text": " If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, and renderPass was specified with non-zero view masks, each element of pAttachments that is used as a fragment shading rate attachment by renderPass must have a layerCount that is either 1, or greater than the index of the most significant bit set in any of those view masks" + "text": "If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, and renderPass was specified with non-zero view masks, each element of pAttachments that is used as a fragment shading rate attachment by renderPass must have a layerCount that is either 1, or greater than the index of the most significant bit set in any of those view masks", + "page": "vkspec" }, { "vuid": "VUID-VkFramebufferCreateInfo-flags-04538", - "text": " If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, and renderPass was not specified with non-zero view masks, each element of pAttachments that is used as a fragment shading rate attachment by renderPass must have a layerCount that is either 1, or greater than layers" + "text": "If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, and renderPass was not specified with non-zero view masks, each element of pAttachments that is used as a fragment shading rate attachment by renderPass must have a layerCount that is either 1, or greater than layers", + "page": "vkspec" }, { "vuid": "VUID-VkFramebufferCreateInfo-renderPass-08921", - "text": " If renderPass was specified with non-zero view masks, each element of pAttachments that is used as a fragment shading rate attachment must have a layerCount equal to 1 or greater than the index of the most significant bit set in any of those view masks" + "text": "If renderPass was specified with non-zero view masks, each element of pAttachments that is used as a fragment shading rate attachment must have a layerCount equal to 1 or greater than the index of the most significant bit set in any of those view masks", + "page": "vkspec" }, { "vuid": "VUID-VkFramebufferCreateInfo-flags-04539", - "text": " If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, an element of pAttachments that is used as a fragment shading rate attachment must have a width at least as large as {lceil}width / texelWidth{rceil}, where texelWidth is the largest value of shadingRateAttachmentTexelSize.width in a VkFragmentShadingRateAttachmentInfoKHR which references that attachment" + "text": "If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, an element of pAttachments that is used as a fragment shading rate attachment must have a width at least as large as ⌈width / texelWidth⌉, where texelWidth is the largest value of shadingRateAttachmentTexelSize.width in a VkFragmentShadingRateAttachmentInfoKHR which references that attachment", + "page": "vkspec" }, { "vuid": "VUID-VkFramebufferCreateInfo-flags-04540", - "text": " If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, an element of pAttachments that is used as a fragment shading rate attachment must have a height at least as large as {lceil}height / texelHeight{rceil}, where texelHeight is the largest value of shadingRateAttachmentTexelSize.height in a VkFragmentShadingRateAttachmentInfoKHR which references that attachment" + "text": "If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, an element of pAttachments that is used as a fragment shading rate attachment must have a height at least as large as ⌈height / texelHeight⌉, where texelHeight is the largest value of shadingRateAttachmentTexelSize.height in a VkFragmentShadingRateAttachmentInfoKHR which references that attachment", + "page": "vkspec" }, { "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-00883", - "text": " If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments must only specify a single mip level" + "text": "If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments must only specify a single mip level", + "page": "vkspec" }, { "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-00884", - "text": " If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments must have been created with the identity swizzle" + "text": "If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments must have been created with the identity swizzle", + "page": "vkspec" }, { "vuid": "VUID-VkFramebufferCreateInfo-width-00885", - "text": " width must be greater than 0" + "text": "width must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-VkFramebufferCreateInfo-width-00886", - "text": " width must be less than or equal to maxFramebufferWidth" + "text": "width must be less than or equal to maxFramebufferWidth", + "page": "vkspec" }, { "vuid": "VUID-VkFramebufferCreateInfo-height-00887", - "text": " height must be greater than 0" + "text": "height must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-VkFramebufferCreateInfo-height-00888", - "text": " height must be less than or equal to maxFramebufferHeight" + "text": "height must be less than or equal to maxFramebufferHeight", + "page": "vkspec" }, { "vuid": "VUID-VkFramebufferCreateInfo-layers-00889", - "text": " layers must be greater than 0" + "text": "layers must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-VkFramebufferCreateInfo-layers-00890", - "text": " layers must be less than or equal to maxFramebufferLayers" + "text": "layers must be less than or equal to maxFramebufferLayers", + "page": "vkspec" }, { "vuid": "VUID-VkFramebufferCreateInfo-renderPass-02531", - "text": " If renderPass was specified with non-zero view masks, layers must be 1" + "text": "If renderPass was specified with non-zero view masks, layers must be 1", + "page": "vkspec" }, { "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-00891", - "text": " If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments that is a 2D or 2D array image view taken from a 3D image must not be a depth/stencil format" + "text": "If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments that is a 2D or 2D array image view taken from a 3D image must not be a depth/stencil format", + "page": "vkspec" }, { "vuid": "VUID-VkFramebufferCreateInfo-flags-03189", - "text": " If the imagelessFramebuffer feature is not enabled, flags must not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT" + "text": "If the imagelessFramebuffer feature is not enabled, flags must not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkFramebufferCreateInfo-flags-03190", - "text": " If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the pNext chain must include a VkFramebufferAttachmentsCreateInfo structure" + "text": "If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the pNext chain must include a VkFramebufferAttachmentsCreateInfo structure", + "page": "vkspec" }, { "vuid": "VUID-VkFramebufferCreateInfo-flags-03191", - "text": " If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the attachmentImageInfoCount member of a VkFramebufferAttachmentsCreateInfo structure in the pNext chain must be equal to either zero or attachmentCount" + "text": "If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the attachmentImageInfoCount member of a VkFramebufferAttachmentsCreateInfo structure in the pNext chain must be equal to either zero or attachmentCount", + "page": "vkspec" }, { "vuid": "VUID-VkFramebufferCreateInfo-flags-04541", - "text": " If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the width member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure in the pNext chain that is used as an input, color, resolve or depth/stencil attachment in renderPass must be greater than or equal to width" + "text": "If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the width member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure in the pNext chain that is used as an input, color, resolve or depth/stencil attachment in renderPass must be greater than or equal to width", + "page": "vkspec" }, { "vuid": "VUID-VkFramebufferCreateInfo-flags-04542", - "text": " If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the height member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure in the pNext chain that is used as an input, color, resolve or depth/stencil attachment in renderPass must be greater than or equal to height" + "text": "If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the height member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure in the pNext chain that is used as an input, color, resolve or depth/stencil attachment in renderPass must be greater than or equal to height", + "page": "vkspec" }, { "vuid": "VUID-VkFramebufferCreateInfo-flags-03196", - "text": " If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the width member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure in the pNext chain that is referenced by VkRenderPassFragmentDensityMapCreateInfoEXT::fragmentDensityMapAttachment in renderPass must be greater than or equal to \\(\\left\\lceil{\\frac{width}{maxFragmentDensityTexelSize_{width}}}\\right\\rceil\\)" + "text": "If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the width member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure in the pNext chain that is referenced by VkRenderPassFragmentDensityMapCreateInfoEXT::fragmentDensityMapAttachment in renderPass must be greater than or equal to \\(\\left\\lceil{\\frac{width}{maxFragmentDensityTexelSize_{width}}}\\right\\rceil\\)", + "page": "vkspec" }, { "vuid": "VUID-VkFramebufferCreateInfo-flags-03197", - "text": " If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the height member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain that is referenced by VkRenderPassFragmentDensityMapCreateInfoEXT::fragmentDensityMapAttachment in renderPass must be greater than or equal to \\(\\left\\lceil{\\frac{height}{maxFragmentDensityTexelSize_{height}}}\\right\\rceil\\)" + "text": "If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the height member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain that is referenced by VkRenderPassFragmentDensityMapCreateInfoEXT::fragmentDensityMapAttachment in renderPass must be greater than or equal to \\(\\left\\lceil{\\frac{height}{maxFragmentDensityTexelSize_{height}}}\\right\\rceil\\)", + "page": "vkspec" }, { "vuid": "VUID-VkFramebufferCreateInfo-flags-04543", - "text": " If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the width member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure in the pNext chain that is used as a fragment shading rate attachment must be greater than or equal to {lceil}width / texelWidth{rceil}, where texelWidth is the largest value of shadingRateAttachmentTexelSize.width in a VkFragmentShadingRateAttachmentInfoKHR which references that attachment" + "text": "If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the width member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure in the pNext chain that is used as a fragment shading rate attachment must be greater than or equal to ⌈width / texelWidth⌉, where texelWidth is the largest value of shadingRateAttachmentTexelSize.width in a VkFragmentShadingRateAttachmentInfoKHR which references that attachment", + "page": "vkspec" }, { "vuid": "VUID-VkFramebufferCreateInfo-flags-04544", - "text": " If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the height member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure in the pNext chain that is used as a fragment shading rate attachment must be greater than or equal to {lceil}height / texelHeight{rceil}, where texelHeight is the largest value of shadingRateAttachmentTexelSize.height in a VkFragmentShadingRateAttachmentInfoKHR which references that attachment" + "text": "If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the height member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure in the pNext chain that is used as a fragment shading rate attachment must be greater than or equal to ⌈height / texelHeight⌉, where texelHeight is the largest value of shadingRateAttachmentTexelSize.height in a VkFragmentShadingRateAttachmentInfoKHR which references that attachment", + "page": "vkspec" }, { "vuid": "VUID-VkFramebufferCreateInfo-flags-04545", - "text": " If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the layerCount member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure in the pNext chain that is used as a fragment shading rate attachment must be either 1, or greater than or equal to layers" + "text": "If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the layerCount member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure in the pNext chain that is used as a fragment shading rate attachment must be either 1, or greater than or equal to layers", + "page": "vkspec" }, { "vuid": "VUID-VkFramebufferCreateInfo-flags-04587", - "text": " If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT and renderPass was specified with non-zero view masks, each element of pAttachments that is used as a fragment shading rate attachment by renderPass must have a layerCount that is either 1, or greater than the index of the most significant bit set in any of those view masks" + "text": "If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT and renderPass was specified with non-zero view masks, each element of pAttachments that is used as a fragment shading rate attachment by renderPass must have a layerCount that is either 1, or greater than the index of the most significant bit set in any of those view masks", + "page": "vkspec" }, { "vuid": "VUID-VkFramebufferCreateInfo-renderPass-03198", - "text": " If multiview is enabled for renderPass and flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the layerCount member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain used as an input, color, resolve, or depth/stencil attachment in renderPass must be greater than the maximum bit index set in the view mask in the subpasses in which it is used in renderPass" + "text": "If multiview is enabled for renderPass and flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the layerCount member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain used as an input, color, resolve, or depth/stencil attachment in renderPass must be greater than the maximum bit index set in the view mask in the subpasses in which it is used in renderPass", + "page": "vkspec" }, { "vuid": "VUID-VkFramebufferCreateInfo-renderPass-04546", - "text": " If multiview is not enabled for renderPass and flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the layerCount member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain used as an input, color, resolve, or depth/stencil attachment in renderPass must be greater than or equal to layers" + "text": "If multiview is not enabled for renderPass and flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the layerCount member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain used as an input, color, resolve, or depth/stencil attachment in renderPass must be greater than or equal to layers", + "page": "vkspec" }, { "vuid": "VUID-VkFramebufferCreateInfo-flags-03201", - "text": " If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the usage member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain that refers to an attachment used as a color attachment or resolve attachment by renderPass must include VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT" + "text": "If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the usage member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain that refers to an attachment used as a color attachment or resolve attachment by renderPass must include VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkFramebufferCreateInfo-flags-03202", - "text": " If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the usage member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain that refers to an attachment used as a depth/stencil attachment by renderPass must include VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT" + "text": "If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the usage member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain that refers to an attachment used as a depth/stencil attachment by renderPass must include VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkFramebufferCreateInfo-flags-03203", - "text": " If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the usage member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain that refers to an attachment used as a depth/stencil resolve attachment by renderPass must include VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT" + "text": "If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the usage member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain that refers to an attachment used as a depth/stencil resolve attachment by renderPass must include VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkFramebufferCreateInfo-flags-03204", - "text": " If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the usage member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain that refers to an attachment used as an input attachment by renderPass must include VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT" + "text": "If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the usage member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain that refers to an attachment used as an input attachment by renderPass must include VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkFramebufferCreateInfo-flags-03205", - "text": " If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, at least one element of the pViewFormats member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain must be equal to the corresponding value of VkAttachmentDescription::format used to create renderPass" + "text": "If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, at least one element of the pViewFormats member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain must be equal to the corresponding value of VkAttachmentDescription::format used to create renderPass", + "page": "vkspec" }, { "vuid": "VUID-VkFramebufferCreateInfo-flags-04113", - "text": " If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments must have been created with VkImageViewCreateInfo::viewType not equal to VK_IMAGE_VIEW_TYPE_3D" + "text": "If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments must have been created with VkImageViewCreateInfo::viewType not equal to VK_IMAGE_VIEW_TYPE_3D", + "page": "vkspec" }, { "vuid": "VUID-VkFramebufferCreateInfo-flags-04548", - "text": " If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments that is used as a fragment shading rate attachment by renderPass must have been created with a usage value including VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR" + "text": "If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments that is used as a fragment shading rate attachment by renderPass must have been created with a usage value including VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkFramebufferCreateInfo-flags-04549", - "text": " If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the usage member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain that refers to an attachment used as a fragment shading rate attachment by renderPass must include VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR" + "text": "If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the usage member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain that refers to an attachment used as a fragment shading rate attachment by renderPass must include VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkFramebufferCreateInfo-samples-06881", - "text": " If multisampled-render-to-single-sampled is enabled for any subpass, all color, depth/stencil and input attachments used in that subpass which have VkAttachmentDescription::samples or VkAttachmentDescription2::samples equal to VK_SAMPLE_COUNT_1_BIT must have been created with VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT in their VkImageCreateInfo::flags" + "text": "If multisampled-render-to-single-sampled is enabled for any subpass, all color, depth/stencil and input attachments used in that subpass which have VkAttachmentDescription::samples or VkAttachmentDescription2::samples equal to VK_SAMPLE_COUNT_1_BIT must have been created with VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT in their VkImageCreateInfo::flags", + "page": "vkspec" }, { "vuid": "VUID-VkFramebufferCreateInfo-samples-07009", - "text": " If multisampled-render-to-single-sampled is enabled for any subpass, all color, depth/stencil and input attachments used in that subpass which have VkAttachmentDescription::samples or VkAttachmentDescription2::samples equal to VK_SAMPLE_COUNT_1_BIT must have a format that supports the sample count specified in VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples" + "text": "If multisampled-render-to-single-sampled is enabled for any subpass, all color, depth/stencil and input attachments used in that subpass which have VkAttachmentDescription::samples or VkAttachmentDescription2::samples equal to VK_SAMPLE_COUNT_1_BIT must have a format that supports the sample count specified in VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples", + "page": "vkspec" + }, + { + "vuid": "VUID-VkFramebufferCreateInfo-nullColorAttachmentWithExternalFormatResolve-09349", + "text": "If the nullColorAttachmentWithExternalFormatResolve is VK_FALSE, and flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the format of the color attachment for each subpass in renderPass that includes an external format image as a resolve attachment 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 the image view use as its resolve attachment", + "page": "vkspec" + }, + { + "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-09350", + "text": "If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, then if an element of pAttachments has a format of VK_FORMAT_UNDEFINED, it must have been created with a VkExternalFormatANDROID::externalFormat value identical to that provided in the VkExternalFormatANDROID::externalFormat specified by the corresponding VkAttachmentDescription2 in renderPass", + "page": "vkspec" }, { "vuid": "VUID-VkFramebufferCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkFramebufferCreateInfo-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkFramebufferAttachmentsCreateInfo" + "text": "pNext must be NULL or a pointer to a valid instance of VkFramebufferAttachmentsCreateInfo", + "page": "vkspec" }, { "vuid": "VUID-VkFramebufferCreateInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" }, { "vuid": "VUID-VkFramebufferCreateInfo-flags-parameter", - "text": " flags must be a valid combination of VkFramebufferCreateFlagBits values" + "text": "flags must be a valid combination of VkFramebufferCreateFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkFramebufferCreateInfo-renderPass-parameter", - "text": " renderPass must be a valid VkRenderPass handle" + "text": "renderPass must be a valid VkRenderPass handle", + "page": "vkspec" }, { "vuid": "VUID-VkFramebufferCreateInfo-commonparent", - "text": " Both of renderPass, and the elements of pAttachments that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of renderPass, and the elements of pAttachments that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -9230,11 +11594,13 @@ "core": [ { "vuid": "VUID-VkFramebufferAttachmentsCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkFramebufferAttachmentsCreateInfo-pAttachmentImageInfos-parameter", - "text": " If attachmentImageInfoCount is not 0, pAttachmentImageInfos must be a valid pointer to an array of attachmentImageInfoCount valid VkFramebufferAttachmentImageInfo structures" + "text": "If attachmentImageInfoCount is not 0, pAttachmentImageInfos must be a valid pointer to an array of attachmentImageInfoCount valid VkFramebufferAttachmentImageInfo structures", + "page": "vkspec" } ] }, @@ -9242,27 +11608,33 @@ "core": [ { "vuid": "VUID-VkFramebufferAttachmentImageInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkFramebufferAttachmentImageInfo-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkFramebufferAttachmentImageInfo-flags-parameter", - "text": " flags must be a valid combination of VkImageCreateFlagBits values" + "text": "flags must be a valid combination of VkImageCreateFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkFramebufferAttachmentImageInfo-usage-parameter", - "text": " usage must be a valid combination of VkImageUsageFlagBits values" + "text": "usage must be a valid combination of VkImageUsageFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkFramebufferAttachmentImageInfo-usage-requiredbitmask", - "text": " usage must not be 0" + "text": "usage must not be 0", + "page": "vkspec" }, { "vuid": "VUID-VkFramebufferAttachmentImageInfo-pViewFormats-parameter", - "text": " If viewFormatCount is not 0, pViewFormats must be a valid pointer to an array of viewFormatCount valid VkFormat values" + "text": "If viewFormatCount is not 0, pViewFormats must be a valid pointer to an array of viewFormatCount valid VkFormat values", + "page": "vkspec" } ] }, @@ -9270,31 +11642,38 @@ "core": [ { "vuid": "VUID-vkDestroyFramebuffer-framebuffer-00892", - "text": " All submitted commands that refer to framebuffer must have completed execution" + "text": "All submitted commands that refer to framebuffer must have completed execution", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyFramebuffer-framebuffer-00893", - "text": " If VkAllocationCallbacks were provided when framebuffer was created, a compatible set of callbacks must be provided here" + "text": "If VkAllocationCallbacks were provided when framebuffer was created, a compatible set of callbacks must be provided here", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyFramebuffer-framebuffer-00894", - "text": " If no VkAllocationCallbacks were provided when framebuffer was created, pAllocator must be NULL" + "text": "If no VkAllocationCallbacks were provided when framebuffer was created, pAllocator must be NULL", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyFramebuffer-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyFramebuffer-framebuffer-parameter", - "text": " If framebuffer is not VK_NULL_HANDLE, framebuffer must be a valid VkFramebuffer handle" + "text": "If framebuffer is not VK_NULL_HANDLE, framebuffer must be a valid VkFramebuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyFramebuffer-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyFramebuffer-framebuffer-parent", - "text": " If framebuffer is a valid handle, it must have been created, allocated, or retrieved from device" + "text": "If framebuffer is a valid handle, it must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -9302,91 +11681,113 @@ "core": [ { "vuid": "VUID-vkCmdBeginRenderPass-initialLayout-00895", - "text": " If any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value including VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT" + "text": "If any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value including VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginRenderPass-initialLayout-01758", - "text": " If any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value including VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT" + "text": "If any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value including VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginRenderPass-initialLayout-02842", - "text": " If any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value including VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT" + "text": "If any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value including VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginRenderPass-stencilInitialLayout-02843", - "text": " If any of the stencilInitialLayout or stencilFinalLayout member of the VkAttachmentDescriptionStencilLayout structures or the stencilLayout member of the VkAttachmentReferenceStencilLayout structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value including VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT" + "text": "If any of the stencilInitialLayout or stencilFinalLayout member of the VkAttachmentDescriptionStencilLayout structures or the stencilLayout member of the VkAttachmentReferenceStencilLayout structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value including VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginRenderPass-initialLayout-00897", - "text": " If any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value including VK_IMAGE_USAGE_SAMPLED_BIT or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT" + "text": "If any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value including VK_IMAGE_USAGE_SAMPLED_BIT or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginRenderPass-initialLayout-00898", - "text": " If any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value including VK_IMAGE_USAGE_TRANSFER_SRC_BIT" + "text": "If any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value including VK_IMAGE_USAGE_TRANSFER_SRC_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginRenderPass-initialLayout-00899", - "text": " If any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value including VK_IMAGE_USAGE_TRANSFER_DST_BIT" + "text": "If any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value including VK_IMAGE_USAGE_TRANSFER_DST_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginRenderPass-initialLayout-00900", - "text": " If the initialLayout member of any of the VkAttachmentDescription structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is not VK_IMAGE_LAYOUT_UNDEFINED, then each such initialLayout must be equal to the current layout of the corresponding attachment image subresource of the framebuffer specified in the framebuffer member of pRenderPassBegin" + "text": "If the initialLayout member of any of the VkAttachmentDescription structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is not VK_IMAGE_LAYOUT_UNDEFINED, then each such initialLayout must be equal to the current layout of the corresponding attachment image subresource of the framebuffer specified in the framebuffer member of pRenderPassBegin", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginRenderPass-srcStageMask-06451", - "text": " The srcStageMask members of any element of the pDependencies member of VkRenderPassCreateInfo used to create renderPass must be supported by the capabilities of the queue family identified by the queueFamilyIndex member of the VkCommandPoolCreateInfo used to create the command pool which commandBuffer was allocated from" + "text": "The srcStageMask members of any element of the pDependencies member of VkRenderPassCreateInfo used to create renderPass must be supported by the capabilities of the queue family identified by the queueFamilyIndex member of the VkCommandPoolCreateInfo used to create the command pool which commandBuffer was allocated from", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginRenderPass-dstStageMask-06452", - "text": " The dstStageMask members of any element of the pDependencies member of VkRenderPassCreateInfo used to create renderPass must be supported by the capabilities of the queue family identified by the queueFamilyIndex member of the VkCommandPoolCreateInfo used to create the command pool which commandBuffer was allocated from" + "text": "The dstStageMask members of any element of the pDependencies member of VkRenderPassCreateInfo used to create renderPass must be supported by the capabilities of the queue family identified by the queueFamilyIndex member of the VkCommandPoolCreateInfo used to create the command pool which commandBuffer was allocated from", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginRenderPass-framebuffer-02532", - "text": " For any attachment in framebuffer that is used by renderPass and is bound to memory locations that are also bound to another attachment used by renderPass, and if at least one of those uses causes either attachment to be written to, both attachments must have had the VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT set" + "text": "For any attachment in framebuffer that is used by renderPass and is bound to memory locations that are also bound to another attachment used by renderPass, and if at least one of those uses causes either attachment to be written to, both attachments must have had the VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginRenderPass-framebuffer-09045", - "text": " If any attachments specified in framebuffer are used by renderPass and are bound to overlapping memory locations, there must be only one that is used as a color attachment, depth/stencil, or resolve attachment in any subpass" + "text": "If any attachments specified in framebuffer are used by renderPass and are bound to overlapping memory locations, there must be only one that is used as a color attachment, depth/stencil, or resolve attachment in any subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginRenderPass-initialLayout-07000", - "text": " If any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value including either the VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT or VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT and either the VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT or VK_IMAGE_USAGE_SAMPLED_BIT usage bits" + "text": "If any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value including either the VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT or VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT and either the VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT or VK_IMAGE_USAGE_SAMPLED_BIT usage bits", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginRenderPass-initialLayout-07001", - "text": " If any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value the VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT usage bit" + "text": "If any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value the VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT usage bit", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginRenderPass-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginRenderPass-pRenderPassBegin-parameter", - "text": " pRenderPassBegin must be a valid pointer to a valid VkRenderPassBeginInfo structure" + "text": "pRenderPassBegin must be a valid pointer to a valid VkRenderPassBeginInfo structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginRenderPass-contents-parameter", - "text": " contents must be a valid VkSubpassContents value" + "text": "contents must be a valid VkSubpassContents value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginRenderPass-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginRenderPass-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginRenderPass-renderpass", - "text": " This command must only be called outside of a render pass instance" + "text": "This command must only be called outside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginRenderPass-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginRenderPass-bufferlevel", - "text": " commandBuffer must be a primary VkCommandBuffer" + "text": "commandBuffer must be a primary VkCommandBuffer", + "page": "vkspec" } ] }, @@ -9394,95 +11795,118 @@ "core": [ { "vuid": "VUID-vkCmdBeginRenderPass2-framebuffer-02779", - "text": " Both the framebuffer and renderPass members of pRenderPassBegin must have been created on the same VkDevice that commandBuffer was allocated on" + "text": "Both the framebuffer and renderPass members of pRenderPassBegin must have been created on the same VkDevice that commandBuffer was allocated on", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginRenderPass2-initialLayout-03094", - "text": " If any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value including VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT" + "text": "If any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value including VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginRenderPass2-initialLayout-03096", - "text": " If any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value including VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT" + "text": "If any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value including VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginRenderPass2-initialLayout-02844", - "text": " If any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value including VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT" + "text": "If any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value including VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginRenderPass2-stencilInitialLayout-02845", - "text": " If any of the stencilInitialLayout or stencilFinalLayout member of the VkAttachmentDescriptionStencilLayout structures or the stencilLayout member of the VkAttachmentReferenceStencilLayout structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value including VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT" + "text": "If any of the stencilInitialLayout or stencilFinalLayout member of the VkAttachmentDescriptionStencilLayout structures or the stencilLayout member of the VkAttachmentReferenceStencilLayout structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value including VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginRenderPass2-initialLayout-03097", - "text": " If any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value including VK_IMAGE_USAGE_SAMPLED_BIT or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT" + "text": "If any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value including VK_IMAGE_USAGE_SAMPLED_BIT or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginRenderPass2-initialLayout-03098", - "text": " If any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value including VK_IMAGE_USAGE_TRANSFER_SRC_BIT" + "text": "If any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value including VK_IMAGE_USAGE_TRANSFER_SRC_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginRenderPass2-initialLayout-03099", - "text": " If any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value including VK_IMAGE_USAGE_TRANSFER_DST_BIT" + "text": "If any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value including VK_IMAGE_USAGE_TRANSFER_DST_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginRenderPass2-initialLayout-03100", - "text": " If the initialLayout member of any of the VkAttachmentDescription structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is not VK_IMAGE_LAYOUT_UNDEFINED, then each such initialLayout must be equal to the current layout of the corresponding attachment image subresource of the framebuffer specified in the framebuffer member of pRenderPassBegin" + "text": "If the initialLayout member of any of the VkAttachmentDescription structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is not VK_IMAGE_LAYOUT_UNDEFINED, then each such initialLayout must be equal to the current layout of the corresponding attachment image subresource of the framebuffer specified in the framebuffer member of pRenderPassBegin", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginRenderPass2-srcStageMask-06453", - "text": " The srcStageMask members of any element of the pDependencies member of VkRenderPassCreateInfo used to create renderPass must be supported by the capabilities of the queue family identified by the queueFamilyIndex member of the VkCommandPoolCreateInfo used to create the command pool which commandBuffer was allocated from" + "text": "The srcStageMask members of any element of the pDependencies member of VkRenderPassCreateInfo used to create renderPass must be supported by the capabilities of the queue family identified by the queueFamilyIndex member of the VkCommandPoolCreateInfo used to create the command pool which commandBuffer was allocated from", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginRenderPass2-dstStageMask-06454", - "text": " The dstStageMask members of any element of the pDependencies member of VkRenderPassCreateInfo used to create renderPass must be supported by the capabilities of the queue family identified by the queueFamilyIndex member of the VkCommandPoolCreateInfo used to create the command pool which commandBuffer was allocated from" + "text": "The dstStageMask members of any element of the pDependencies member of VkRenderPassCreateInfo used to create renderPass must be supported by the capabilities of the queue family identified by the queueFamilyIndex member of the VkCommandPoolCreateInfo used to create the command pool which commandBuffer was allocated from", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginRenderPass2-framebuffer-02533", - "text": " For any attachment in framebuffer that is used by renderPass and is bound to memory locations that are also bound to another attachment used by renderPass, and if at least one of those uses causes either attachment to be written to, both attachments must have had the VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT set" + "text": "For any attachment in framebuffer that is used by renderPass and is bound to memory locations that are also bound to another attachment used by renderPass, and if at least one of those uses causes either attachment to be written to, both attachments must have had the VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginRenderPass2-framebuffer-09046", - "text": " If any attachments specified in framebuffer are used by renderPass and are bound to overlapping memory locations, there must be only one that is used as a color attachment, depth/stencil, or resolve attachment in any subpass" + "text": "If any attachments specified in framebuffer are used by renderPass and are bound to overlapping memory locations, there must be only one that is used as a color attachment, depth/stencil, or resolve attachment in any subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginRenderPass2-initialLayout-07002", - "text": " If any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value including either the VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT or VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT and either the VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT or VK_IMAGE_USAGE_SAMPLED_BIT usage bits" + "text": "If any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value including either the VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT or VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT and either the VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT or VK_IMAGE_USAGE_SAMPLED_BIT usage bits", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginRenderPass2-initialLayout-07003", - "text": " If any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value the VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT usage bit" + "text": "If any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value the VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT usage bit", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginRenderPass2-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginRenderPass2-pRenderPassBegin-parameter", - "text": " pRenderPassBegin must be a valid pointer to a valid VkRenderPassBeginInfo structure" + "text": "pRenderPassBegin must be a valid pointer to a valid VkRenderPassBeginInfo structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginRenderPass2-pSubpassBeginInfo-parameter", - "text": " pSubpassBeginInfo must be a valid pointer to a valid VkSubpassBeginInfo structure" + "text": "pSubpassBeginInfo must be a valid pointer to a valid VkSubpassBeginInfo structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginRenderPass2-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginRenderPass2-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginRenderPass2-renderpass", - "text": " This command must only be called outside of a render pass instance" + "text": "This command must only be called outside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginRenderPass2-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginRenderPass2-bufferlevel", - "text": " commandBuffer must be a primary VkCommandBuffer" + "text": "commandBuffer must be a primary VkCommandBuffer", + "page": "vkspec" } ] }, @@ -9490,135 +11914,178 @@ "core": [ { "vuid": "VUID-VkRenderPassBeginInfo-clearValueCount-00902", - "text": " clearValueCount must be greater than the largest attachment index in renderPass specifying a loadOp (or stencilLoadOp, if the attachment has a depth/stencil format) of VK_ATTACHMENT_LOAD_OP_CLEAR" + "text": "clearValueCount must be greater than the largest attachment index in renderPass specifying a loadOp (or stencilLoadOp, if the attachment has a depth/stencil format) of VK_ATTACHMENT_LOAD_OP_CLEAR", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassBeginInfo-clearValueCount-04962", - "text": " If clearValueCount is not 0, pClearValues must be a valid pointer to an array of clearValueCount VkClearValue unions" + "text": "If clearValueCount is not 0, pClearValues must be a valid pointer to an array of clearValueCount VkClearValue unions", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassBeginInfo-renderPass-00904", - "text": " renderPass must be compatible with the renderPass member of the VkFramebufferCreateInfo structure specified when creating framebuffer" + "text": "renderPass must be compatible with the renderPass member of the VkFramebufferCreateInfo structure specified when creating framebuffer", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassBeginInfo-None-08996", - "text": " If VkDeviceGroupRenderPassBeginInfo::deviceRenderAreaCount is 0, renderArea.extent.width must be greater than 0" + "text": "If VkDeviceGroupRenderPassBeginInfo::deviceRenderAreaCount is 0, renderArea.extent.width must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassBeginInfo-None-08997", - "text": " If VkDeviceGroupRenderPassBeginInfo::deviceRenderAreaCount is 0, renderArea.extent.height must be greater than 0" + "text": "If VkDeviceGroupRenderPassBeginInfo::deviceRenderAreaCount is 0, renderArea.extent.height must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassBeginInfo-pNext-02850", - "text": " If the pNext chain does not contain VkDeviceGroupRenderPassBeginInfo or its deviceRenderAreaCount member is equal to 0, renderArea.offset.x must be greater than or equal to 0" + "text": "If the pNext chain does not contain VkDeviceGroupRenderPassBeginInfo or its deviceRenderAreaCount member is equal to 0, renderArea.offset.x must be greater than or equal to 0", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassBeginInfo-pNext-02851", - "text": " If the pNext chain does not contain VkDeviceGroupRenderPassBeginInfo or its deviceRenderAreaCount member is equal to 0, renderArea.offset.y must be greater than or equal to 0" + "text": "If the pNext chain does not contain VkDeviceGroupRenderPassBeginInfo or its deviceRenderAreaCount member is equal to 0, renderArea.offset.y must be greater than or equal to 0", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassBeginInfo-pNext-02852", - "text": " If the pNext chain does not contain VkDeviceGroupRenderPassBeginInfo or its deviceRenderAreaCount member is equal to 0, renderArea.offset.x + renderArea.extent.width must be less than or equal to VkFramebufferCreateInfo::width the framebuffer was created with" + "text": "If the pNext chain does not contain VkDeviceGroupRenderPassBeginInfo or its deviceRenderAreaCount member is equal to 0, renderArea.offset.x + renderArea.extent.width must be less than or equal to VkFramebufferCreateInfo::width the framebuffer was created with", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassBeginInfo-pNext-02853", - "text": " If the pNext chain does not contain VkDeviceGroupRenderPassBeginInfo or its deviceRenderAreaCount member is equal to 0, renderArea.offset.y + renderArea.extent.height must be less than or equal to VkFramebufferCreateInfo::height the framebuffer was created with" + "text": "If the pNext chain does not contain VkDeviceGroupRenderPassBeginInfo or its deviceRenderAreaCount member is equal to 0, renderArea.offset.y + renderArea.extent.height must be less than or equal to VkFramebufferCreateInfo::height the framebuffer was created with", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassBeginInfo-pNext-02856", - "text": " If the pNext chain contains VkDeviceGroupRenderPassBeginInfo, offset.x + extent.width of each element of pDeviceRenderAreas must be less than or equal to VkFramebufferCreateInfo::width the framebuffer was created with" + "text": "If the pNext chain contains VkDeviceGroupRenderPassBeginInfo, offset.x + extent.width of each element of pDeviceRenderAreas must be less than or equal to VkFramebufferCreateInfo::width the framebuffer was created with", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassBeginInfo-pNext-02857", - "text": " If the pNext chain contains VkDeviceGroupRenderPassBeginInfo, offset.y + extent.height of each element of pDeviceRenderAreas must be less than or equal to VkFramebufferCreateInfo::height the framebuffer was created with" + "text": "If the pNext chain contains VkDeviceGroupRenderPassBeginInfo, offset.y + extent.height of each element of pDeviceRenderAreas must be less than or equal to VkFramebufferCreateInfo::height the framebuffer was created with", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-03207", - "text": " If framebuffer was created with a VkFramebufferCreateInfo::flags value that did not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, and the pNext chain includes a VkRenderPassAttachmentBeginInfo structure, its attachmentCount must be zero" + "text": "If framebuffer was created with a VkFramebufferCreateInfo::flags value that did not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, and the pNext chain includes a VkRenderPassAttachmentBeginInfo structure, its attachmentCount must be zero", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-03208", - "text": " If framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the attachmentCount of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be equal to the value of VkFramebufferAttachmentsCreateInfo::attachmentImageInfoCount used to create framebuffer" + "text": "If framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the attachmentCount of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be equal to the value of VkFramebufferAttachmentsCreateInfo::attachmentImageInfoCount used to create framebuffer", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-02780", - "text": " If framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must have been created on the same VkDevice as framebuffer and renderPass" + "text": "If framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must have been created on the same VkDevice as framebuffer and renderPass", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-03209", - "text": " If framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be a VkImageView of an image created with a value of VkImageCreateInfo::flags equal to the flags member of the corresponding element of VkFramebufferAttachmentsCreateInfo::pAttachmentImageInfos used to create framebuffer" + "text": "If framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be a VkImageView of an image created with a value of VkImageCreateInfo::flags equal to the flags member of the corresponding element of VkFramebufferAttachmentsCreateInfo::pAttachmentImageInfos used to create framebuffer", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-04627", - "text": " If framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be a VkImageView with an inherited usage equal to the usage member of the corresponding element of VkFramebufferAttachmentsCreateInfo::pAttachmentImageInfos used to create framebuffer" + "text": "If framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be a VkImageView with an inherited usage equal to the usage member of the corresponding element of VkFramebufferAttachmentsCreateInfo::pAttachmentImageInfos used to create framebuffer", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-03211", - "text": " If framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be a VkImageView with a width equal to the width member of the corresponding element of VkFramebufferAttachmentsCreateInfo::pAttachmentImageInfos used to create framebuffer" + "text": "If framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be a VkImageView with a width equal to the width member of the corresponding element of VkFramebufferAttachmentsCreateInfo::pAttachmentImageInfos used to create framebuffer", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-03212", - "text": " If framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be a VkImageView with a height equal to the height member of the corresponding element of VkFramebufferAttachmentsCreateInfo::pAttachmentImageInfos used to create framebuffer" + "text": "If framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be a VkImageView with a height equal to the height member of the corresponding element of VkFramebufferAttachmentsCreateInfo::pAttachmentImageInfos used to create framebuffer", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-03213", - "text": " If framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be a VkImageView of an image created with a value of VkImageViewCreateInfo::subresourceRange.layerCount equal to the layerCount member of the corresponding element of VkFramebufferAttachmentsCreateInfo::pAttachmentImageInfos used to create framebuffer" + "text": "If framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be a VkImageView of an image created with a value of VkImageViewCreateInfo::subresourceRange.layerCount equal to the layerCount member of the corresponding element of VkFramebufferAttachmentsCreateInfo::pAttachmentImageInfos used to create framebuffer", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-03214", - "text": " If framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be a VkImageView of an image created with a value of VkImageFormatListCreateInfo::viewFormatCount equal to the viewFormatCount member of the corresponding element of VkFramebufferAttachmentsCreateInfo::pAttachmentImageInfos used to create framebuffer" + "text": "If framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be a VkImageView of an image created with a value of VkImageFormatListCreateInfo::viewFormatCount equal to the viewFormatCount member of the corresponding element of VkFramebufferAttachmentsCreateInfo::pAttachmentImageInfos used to create framebuffer", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-03215", - "text": " If framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be a VkImageView of an image created with a set of elements in VkImageFormatListCreateInfo::pViewFormats equal to the set of elements in the pViewFormats member of the corresponding element of VkFramebufferAttachmentsCreateInfo::pAttachmentImageInfos used to create framebuffer" + "text": "If framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be a VkImageView of an image created with a set of elements in VkImageFormatListCreateInfo::pViewFormats equal to the set of elements in the pViewFormats member of the corresponding element of VkFramebufferAttachmentsCreateInfo::pAttachmentImageInfos used to create framebuffer", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-03216", - "text": " If framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be a VkImageView of an image created with a value of VkImageViewCreateInfo::format equal to the corresponding value of VkAttachmentDescription::format in renderPass" + "text": "If framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be a VkImageView of an image created with a value of VkImageViewCreateInfo::format equal to the corresponding value of VkAttachmentDescription::format in renderPass", + "page": "vkspec" + }, + { + "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-09353", + "text": "If framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, and the nullColorAttachmentWithExternalFormatResolve is VK_FALSE, the format of the color attachment for each subpass that includes an external format image as a resolve attachment 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 the image view use as its resolve attachment", + "page": "vkspec" + }, + { + "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-09354", + "text": "If framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be a VkImageView of an image created with a value of VkExternalFormatANDROID::externalFormat equal to VkExternalFormatANDROID::externalFormat in the pNext chain of the corresponding VkAttachmentDescription2 structure used to create renderPass", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-09047", - "text": " If framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be a VkImageView of an image created with a value of VkImageCreateInfo::samples equal to the corresponding value of VkAttachmentDescription::samples in renderPass , or VK_SAMPLE_COUNT_1_BIT if renderPass was created with VkMultisampledRenderToSingleSampledInfoEXT structure in the pNext chain with multisampledRenderToSingleSampledEnable equal to VK_TRUE" + "text": "If framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be a VkImageView of an image created with a value of VkImageCreateInfo::samples equal to the corresponding value of VkAttachmentDescription::samples in renderPass , or VK_SAMPLE_COUNT_1_BIT if renderPass was created with VkMultisampledRenderToSingleSampledInfoEXT structure in the pNext chain with multisampledRenderToSingleSampledEnable equal to VK_TRUE", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassBeginInfo-pNext-02869", - "text": " If the pNext chain includes VkRenderPassTransformBeginInfoQCOM, renderArea.offset must equal (0,0)" + "text": "If the pNext chain includes VkRenderPassTransformBeginInfoQCOM, renderArea.offset must equal (0,0)", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassBeginInfo-pNext-02870", - "text": " If the pNext chain includes VkRenderPassTransformBeginInfoQCOM, renderArea.extent transformed by VkRenderPassTransformBeginInfoQCOM::transform must equal the framebuffer dimensions" + "text": "If the pNext chain includes VkRenderPassTransformBeginInfoQCOM, renderArea.extent transformed by VkRenderPassTransformBeginInfoQCOM::transform must equal the framebuffer dimensions", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassBeginInfo-perViewRenderAreaCount-07859", - "text": " If the perViewRenderAreaCount member of a VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM structure included in the pNext chain is not 0, then the multiviewPerViewRenderAreas feature must be enabled." + "text": "If the perViewRenderAreaCount member of a VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM structure included in the pNext chain is not 0, then the multiviewPerViewRenderAreas feature must be enabled.", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassBeginInfo-perViewRenderAreaCount-07860", - "text": " If the perViewRenderAreaCount member of a VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM structure included in the pNext chain is not 0, then renderArea must specify a render area that includes the union of all per view render areas." + "text": "If the perViewRenderAreaCount member of a VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM structure included in the pNext chain is not 0, then renderArea must specify a render area that includes the union of all per view render areas.", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassBeginInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassBeginInfo-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 VkDeviceGroupRenderPassBeginInfo, VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM, VkRenderPassAttachmentBeginInfo, VkRenderPassSampleLocationsBeginInfoEXT, or VkRenderPassTransformBeginInfoQCOM" + "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 VkDeviceGroupRenderPassBeginInfo, VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM, VkRenderPassAttachmentBeginInfo, VkRenderPassSampleLocationsBeginInfoEXT, or VkRenderPassTransformBeginInfoQCOM", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassBeginInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassBeginInfo-renderPass-parameter", - "text": " renderPass must be a valid VkRenderPass handle" + "text": "renderPass must be a valid VkRenderPass handle", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-parameter", - "text": " framebuffer must be a valid VkFramebuffer handle" + "text": "framebuffer must be a valid VkFramebuffer handle", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassBeginInfo-commonparent", - "text": " Both of framebuffer, and renderPass must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of framebuffer, and renderPass must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -9626,15 +12093,18 @@ "core": [ { "vuid": "VUID-VkRenderPassSampleLocationsBeginInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassSampleLocationsBeginInfoEXT-pAttachmentInitialSampleLocations-parameter", - "text": " If attachmentInitialSampleLocationsCount is not 0, pAttachmentInitialSampleLocations must be a valid pointer to an array of attachmentInitialSampleLocationsCount valid VkAttachmentSampleLocationsEXT structures" + "text": "If attachmentInitialSampleLocationsCount is not 0, pAttachmentInitialSampleLocations must be a valid pointer to an array of attachmentInitialSampleLocationsCount valid VkAttachmentSampleLocationsEXT structures", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassSampleLocationsBeginInfoEXT-pPostSubpassSampleLocations-parameter", - "text": " If postSubpassSampleLocationsCount is not 0, pPostSubpassSampleLocations must be a valid pointer to an array of postSubpassSampleLocationsCount valid VkSubpassSampleLocationsEXT structures" + "text": "If postSubpassSampleLocationsCount is not 0, pPostSubpassSampleLocations must be a valid pointer to an array of postSubpassSampleLocationsCount valid VkSubpassSampleLocationsEXT structures", + "page": "vkspec" } ] }, @@ -9642,11 +12112,13 @@ "core": [ { "vuid": "VUID-VkAttachmentSampleLocationsEXT-attachmentIndex-01531", - "text": " attachmentIndex must be less than the attachmentCount specified in VkRenderPassCreateInfo the render pass specified by VkRenderPassBeginInfo::renderPass was created with" + "text": "attachmentIndex must be less than the attachmentCount specified in VkRenderPassCreateInfo the render pass specified by VkRenderPassBeginInfo::renderPass was created with", + "page": "vkspec" }, { "vuid": "VUID-VkAttachmentSampleLocationsEXT-sampleLocationsInfo-parameter", - "text": " sampleLocationsInfo must be a valid VkSampleLocationsInfoEXT structure" + "text": "sampleLocationsInfo must be a valid VkSampleLocationsInfoEXT structure", + "page": "vkspec" } ] }, @@ -9654,11 +12126,13 @@ "core": [ { "vuid": "VUID-VkSubpassSampleLocationsEXT-subpassIndex-01532", - "text": " subpassIndex must be less than the subpassCount specified in VkRenderPassCreateInfo the render pass specified by VkRenderPassBeginInfo::renderPass was created with" + "text": "subpassIndex must be less than the subpassCount specified in VkRenderPassCreateInfo the render pass specified by VkRenderPassBeginInfo::renderPass was created with", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassSampleLocationsEXT-sampleLocationsInfo-parameter", - "text": " sampleLocationsInfo must be a valid VkSampleLocationsInfoEXT structure" + "text": "sampleLocationsInfo must be a valid VkSampleLocationsInfoEXT structure", + "page": "vkspec" } ] }, @@ -9666,31 +12140,42 @@ "core": [ { "vuid": "VUID-VkRenderPassTransformBeginInfoQCOM-transform-02871", - "text": " transform must be VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR, VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR, VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR, or VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR" + "text": "transform must be VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR, VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR, VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR, or VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassTransformBeginInfoQCOM-flags-02872", - "text": " The renderpass must have been created with VkRenderPassCreateInfo::flags containing VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM" + "text": "The renderpass must have been created with VkRenderPassCreateInfo::flags containing VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassTransformBeginInfoQCOM-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM" + "text": "sType must be VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM", + "page": "vkspec" } ] }, "VkSubpassBeginInfo": { "core": [ + { + "vuid": "VUID-VkSubpassBeginInfo-contents-09382", + "text": "If contents is VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT, then nestedCommandBuffer must be enabled", + "page": "vkspec" + }, { "vuid": "VUID-VkSubpassBeginInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassBeginInfo-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassBeginInfo-contents-parameter", - "text": " contents must be a valid VkSubpassContents value" + "text": "contents must be a valid VkSubpassContents value", + "page": "vkspec" } ] }, @@ -9698,51 +12183,63 @@ "core": [ { "vuid": "VUID-VkDeviceGroupRenderPassBeginInfo-deviceMask-00905", - "text": " deviceMask must be a valid device mask value" + "text": "deviceMask must be a valid device mask value", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceGroupRenderPassBeginInfo-deviceMask-00906", - "text": " deviceMask must not be zero" + "text": "deviceMask must not be zero", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceGroupRenderPassBeginInfo-deviceMask-00907", - "text": " deviceMask must be a subset of the command buffer’s initial device mask" + "text": "deviceMask must be a subset of the command buffer’s initial device mask", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceGroupRenderPassBeginInfo-deviceRenderAreaCount-00908", - "text": " deviceRenderAreaCount must either be zero or equal to the number of physical devices in the logical device" + "text": "deviceRenderAreaCount must either be zero or equal to the number of physical devices in the logical device", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceGroupRenderPassBeginInfo-offset-06166", - "text": " The offset.x member of any element of pDeviceRenderAreas must be greater than or equal to 0" + "text": "The offset.x member of any element of pDeviceRenderAreas must be greater than or equal to 0", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceGroupRenderPassBeginInfo-offset-06167", - "text": " The offset.y member of any element of pDeviceRenderAreas must be greater than or equal to 0" + "text": "The offset.y member of any element of pDeviceRenderAreas must be greater than or equal to 0", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceGroupRenderPassBeginInfo-offset-06168", - "text": " The sum of the offset.x and extent.width members of any element of pDeviceRenderAreas must be less than or equal to maxFramebufferWidth" + "text": "The sum of the offset.x and extent.width members of any element of pDeviceRenderAreas must be less than or equal to maxFramebufferWidth", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceGroupRenderPassBeginInfo-offset-06169", - "text": " The sum of the offset.y and extent.height members of any element of pDeviceRenderAreas must be less than or equal to maxFramebufferHeight" + "text": "The sum of the offset.y and extent.height members of any element of pDeviceRenderAreas must be less than or equal to maxFramebufferHeight", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceGroupRenderPassBeginInfo-extent-08998", - "text": " The extent.width member of any element of pDeviceRenderAreas must be greater than 0" + "text": "The extent.width member of any element of pDeviceRenderAreas must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceGroupRenderPassBeginInfo-extent-08999", - "text": " The extent.height member of any element of pDeviceRenderAreas must be greater than 0" + "text": "The extent.height member of any element of pDeviceRenderAreas must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceGroupRenderPassBeginInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceGroupRenderPassBeginInfo-pDeviceRenderAreas-parameter", - "text": " If deviceRenderAreaCount is not 0, pDeviceRenderAreas must be a valid pointer to an array of deviceRenderAreaCount VkRect2D structures" + "text": "If deviceRenderAreaCount is not 0, pDeviceRenderAreas must be a valid pointer to an array of deviceRenderAreaCount VkRect2D structures", + "page": "vkspec" } ] }, @@ -9750,27 +12247,33 @@ "core": [ { "vuid": "VUID-VkRenderPassAttachmentBeginInfo-pAttachments-03218", - "text": " Each element of pAttachments must only specify a single mip level" + "text": "Each element of pAttachments must only specify a single mip level", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassAttachmentBeginInfo-pAttachments-03219", - "text": " Each element of pAttachments must have been created with the identity swizzle" + "text": "Each element of pAttachments must have been created with the identity swizzle", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassAttachmentBeginInfo-pAttachments-04114", - "text": " Each element of pAttachments must have been created with VkImageViewCreateInfo::viewType not equal to VK_IMAGE_VIEW_TYPE_3D" + "text": "Each element of pAttachments must have been created with VkImageViewCreateInfo::viewType not equal to VK_IMAGE_VIEW_TYPE_3D", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassAttachmentBeginInfo-pAttachments-07010", - "text": " If multisampled-render-to-single-sampled is enabled for any subpass, all element of pAttachments which have a sample count equal to VK_SAMPLE_COUNT_1_BIT must have a format that supports the sample count specified in VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples" + "text": "If multisampled-render-to-single-sampled is enabled for any subpass, all element of pAttachments which have a sample count equal to VK_SAMPLE_COUNT_1_BIT must have a format that supports the sample count specified in VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassAttachmentBeginInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassAttachmentBeginInfo-pAttachments-parameter", - "text": " If attachmentCount is not 0, pAttachments must be a valid pointer to an array of attachmentCount valid VkImageView handles" + "text": "If attachmentCount is not 0, pAttachments must be a valid pointer to an array of attachmentCount valid VkImageView handles", + "page": "vkspec" } ] }, @@ -9778,35 +12281,43 @@ "core": [ { "vuid": "VUID-VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM-offset-07861", - "text": " The offset.x member of any element of pPerViewRenderAreas must be greater than or equal to 0" + "text": "The offset.x member of any element of pPerViewRenderAreas must be greater than or equal to 0", + "page": "vkspec" }, { "vuid": "VUID-VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM-offset-07862", - "text": " The offset.y member of any element of pPerViewRenderAreas must be greater than or equal to 0" + "text": "The offset.y member of any element of pPerViewRenderAreas must be greater than or equal to 0", + "page": "vkspec" }, { "vuid": "VUID-VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM-offset-07863", - "text": " The sum of the offset.x and extent.width members of any element of pPerViewRenderAreas must be less than or equal to maxFramebufferWidth" + "text": "The sum of the offset.x and extent.width members of any element of pPerViewRenderAreas must be less than or equal to maxFramebufferWidth", + "page": "vkspec" }, { "vuid": "VUID-VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM-offset-07864", - "text": " The sum of the offset.y and extent.height members of any element of pPerViewRenderAreas must be less than or equal to maxFramebufferHeight" + "text": "The sum of the offset.y and extent.height members of any element of pPerViewRenderAreas must be less than or equal to maxFramebufferHeight", + "page": "vkspec" }, { "vuid": "VUID-VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM-pNext-07865", - "text": " If this structure is in the pNext chain of VkRenderPassBeginInfo and if the render pass object included an element in VkRenderPassMultiviewCreateInfo::pViewMasks that set bit n, then perViewRenderAreaCount must be at least equal to n+1." + "text": "If this structure is in the pNext chain of VkRenderPassBeginInfo and if the render pass object included an element in VkRenderPassMultiviewCreateInfo::pViewMasks that set bit n, then perViewRenderAreaCount must be at least equal to n+1.", + "page": "vkspec" }, { "vuid": "VUID-VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM-pNext-07866", - "text": " If this structure is in the pNext chain of VkRenderingInfo and if VkRenderingInfo::viewMask set bit n, then perViewRenderAreaCount must be at least equal to n+1." + "text": "If this structure is in the pNext chain of VkRenderingInfo and if VkRenderingInfo::viewMask set bit n, then perViewRenderAreaCount must be at least equal to n+1.", + "page": "vkspec" }, { "vuid": "VUID-VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM" + "text": "sType must be VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM", + "page": "vkspec" }, { "vuid": "VUID-VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM-pPerViewRenderAreas-parameter", - "text": " If perViewRenderAreaCount is not 0, pPerViewRenderAreas must be a valid pointer to an array of perViewRenderAreaCount VkRect2D structures" + "text": "If perViewRenderAreaCount is not 0, pPerViewRenderAreas must be a valid pointer to an array of perViewRenderAreaCount VkRect2D structures", + "page": "vkspec" } ] }, @@ -9814,19 +12325,23 @@ "core": [ { "vuid": "VUID-vkGetRenderAreaGranularity-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetRenderAreaGranularity-renderPass-parameter", - "text": " renderPass must be a valid VkRenderPass handle" + "text": "renderPass must be a valid VkRenderPass handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetRenderAreaGranularity-pGranularity-parameter", - "text": " pGranularity must be a valid pointer to a VkExtent2D structure" + "text": "pGranularity must be a valid pointer to a VkExtent2D structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetRenderAreaGranularity-renderPass-parent", - "text": " renderPass must have been created, allocated, or retrieved from device" + "text": "renderPass must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -9834,39 +12349,48 @@ "core": [ { "vuid": "VUID-vkCmdNextSubpass-None-00909", - "text": " The current subpass index must be less than the number of subpasses in the render pass minus one" + "text": "The current subpass index must be less than the number of subpasses in the render pass minus one", + "page": "vkspec" }, { "vuid": "VUID-vkCmdNextSubpass-None-02349", - "text": " This command must not be recorded when transform feedback is active" + "text": "This command must not be recorded when transform feedback is active", + "page": "vkspec" }, { "vuid": "VUID-vkCmdNextSubpass-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdNextSubpass-contents-parameter", - "text": " contents must be a valid VkSubpassContents value" + "text": "contents must be a valid VkSubpassContents value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdNextSubpass-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdNextSubpass-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdNextSubpass-renderpass", - "text": " This command must only be called inside of a render pass instance" + "text": "This command must only be called inside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdNextSubpass-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdNextSubpass-bufferlevel", - "text": " commandBuffer must be a primary VkCommandBuffer" + "text": "commandBuffer must be a primary VkCommandBuffer", + "page": "vkspec" } ] }, @@ -9874,43 +12398,53 @@ "core": [ { "vuid": "VUID-vkCmdNextSubpass2-None-03102", - "text": " The current subpass index must be less than the number of subpasses in the render pass minus one" + "text": "The current subpass index must be less than the number of subpasses in the render pass minus one", + "page": "vkspec" }, { "vuid": "VUID-vkCmdNextSubpass2-None-02350", - "text": " This command must not be recorded when transform feedback is active" + "text": "This command must not be recorded when transform feedback is active", + "page": "vkspec" }, { "vuid": "VUID-vkCmdNextSubpass2-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdNextSubpass2-pSubpassBeginInfo-parameter", - "text": " pSubpassBeginInfo must be a valid pointer to a valid VkSubpassBeginInfo structure" + "text": "pSubpassBeginInfo must be a valid pointer to a valid VkSubpassBeginInfo structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdNextSubpass2-pSubpassEndInfo-parameter", - "text": " pSubpassEndInfo must be a valid pointer to a valid VkSubpassEndInfo structure" + "text": "pSubpassEndInfo must be a valid pointer to a valid VkSubpassEndInfo structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdNextSubpass2-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdNextSubpass2-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdNextSubpass2-renderpass", - "text": " This command must only be called inside of a render pass instance" + "text": "This command must only be called inside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdNextSubpass2-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdNextSubpass2-bufferlevel", - "text": " commandBuffer must be a primary VkCommandBuffer" + "text": "commandBuffer must be a primary VkCommandBuffer", + "page": "vkspec" } ] }, @@ -9918,43 +12452,53 @@ "core": [ { "vuid": "VUID-vkCmdEndRenderPass-None-00910", - "text": " The current subpass index must be equal to the number of subpasses in the render pass minus one" + "text": "The current subpass index must be equal to the number of subpasses in the render pass minus one", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndRenderPass-None-02351", - "text": " This command must not be recorded when transform feedback is active" + "text": "This command must not be recorded when transform feedback is active", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndRenderPass-None-06170", - "text": " The current render pass instance must not have been begun with vkCmdBeginRendering" + "text": "The current render pass instance must not have been begun with vkCmdBeginRendering", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndRenderPass-None-07004", - "text": " If vkCmdBeginQuery* was called within a subpass of the render pass, the corresponding vkCmdEndQuery* must have been called subsequently within the same subpass" + "text": "If vkCmdBeginQuery* was called within a subpass of the render pass, the corresponding vkCmdEndQuery* must have been called subsequently within the same subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndRenderPass-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndRenderPass-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndRenderPass-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndRenderPass-renderpass", - "text": " This command must only be called inside of a render pass instance" + "text": "This command must only be called inside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndRenderPass-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndRenderPass-bufferlevel", - "text": " commandBuffer must be a primary VkCommandBuffer" + "text": "commandBuffer must be a primary VkCommandBuffer", + "page": "vkspec" } ] }, @@ -9962,47 +12506,58 @@ "core": [ { "vuid": "VUID-vkCmdEndRenderPass2-None-03103", - "text": " The current subpass index must be equal to the number of subpasses in the render pass minus one" + "text": "The current subpass index must be equal to the number of subpasses in the render pass minus one", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndRenderPass2-None-02352", - "text": " This command must not be recorded when transform feedback is active" + "text": "This command must not be recorded when transform feedback is active", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndRenderPass2-None-06171", - "text": " The current render pass instance must not have been begun with vkCmdBeginRendering" + "text": "The current render pass instance must not have been begun with vkCmdBeginRendering", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndRenderPass2-None-07005", - "text": " If vkCmdBeginQuery* was called within a subpass of the render pass, the corresponding vkCmdEndQuery* must have been called subsequently within the same subpass" + "text": "If vkCmdBeginQuery* was called within a subpass of the render pass, the corresponding vkCmdEndQuery* must have been called subsequently within the same subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndRenderPass2-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndRenderPass2-pSubpassEndInfo-parameter", - "text": " pSubpassEndInfo must be a valid pointer to a valid VkSubpassEndInfo structure" + "text": "pSubpassEndInfo must be a valid pointer to a valid VkSubpassEndInfo structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndRenderPass2-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndRenderPass2-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndRenderPass2-renderpass", - "text": " This command must only be called inside of a render pass instance" + "text": "This command must only be called inside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndRenderPass2-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndRenderPass2-bufferlevel", - "text": " commandBuffer must be a primary VkCommandBuffer" + "text": "commandBuffer must be a primary VkCommandBuffer", + "page": "vkspec" } ] }, @@ -10010,15 +12565,18 @@ "core": [ { "vuid": "VUID-VkSubpassEndInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SUBPASS_END_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_SUBPASS_END_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassEndInfo-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkSubpassFragmentDensityMapOffsetEndInfoQCOM" + "text": "pNext must be NULL or a pointer to a valid instance of VkSubpassFragmentDensityMapOffsetEndInfoQCOM", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassEndInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" } ] }, @@ -10026,55 +12584,68 @@ "core": [ { "vuid": "VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-fragmentDensityMapOffsets-06503", - "text": " If the fragmentDensityMapOffsets feature is not enabled or fragment density map is not enabled in the render pass, fragmentDensityOffsetCount must equal 0" + "text": "If the fragmentDensityMapOffsets feature is not enabled or fragment density map is not enabled in the render pass, fragmentDensityOffsetCount must equal 0", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-fragmentDensityMapAttachment-06504", - "text": " If VkSubpassDescription::fragmentDensityMapAttachment is not is not VK_ATTACHMENT_UNUSED and was not created with VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM, fragmentDensityOffsetCount must equal 0" + "text": "If VkSubpassDescription::fragmentDensityMapAttachment is not is not VK_ATTACHMENT_UNUSED and was not created with VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM, fragmentDensityOffsetCount must equal 0", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-pDepthStencilAttachment-06505", - "text": " If VkSubpassDescription::pDepthStencilAttachment is not is not VK_ATTACHMENT_UNUSED and was not created with VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM, fragmentDensityOffsetCount must equal 0" + "text": "If VkSubpassDescription::pDepthStencilAttachment is not is not VK_ATTACHMENT_UNUSED and was not created with VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM, fragmentDensityOffsetCount must equal 0", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-pInputAttachments-06506", - "text": " If any element of VkSubpassDescription::pInputAttachments is not is not VK_ATTACHMENT_UNUSED and was not created with VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM, fragmentDensityOffsetCount must equal 0" + "text": "If any element of VkSubpassDescription::pInputAttachments is not is not VK_ATTACHMENT_UNUSED and was not created with VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM, fragmentDensityOffsetCount must equal 0", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-pColorAttachments-06507", - "text": " If any element of VkSubpassDescription::pColorAttachments is not is not VK_ATTACHMENT_UNUSED and was not created with VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM, fragmentDensityOffsetCount must equal 0" + "text": "If any element of VkSubpassDescription::pColorAttachments is not is not VK_ATTACHMENT_UNUSED and was not created with VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM, fragmentDensityOffsetCount must equal 0", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-pResolveAttachments-06508", - "text": " If any element of VkSubpassDescription::pResolveAttachments is not is not VK_ATTACHMENT_UNUSED and was not created with VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM, fragmentDensityOffsetCount must equal 0" + "text": "If any element of VkSubpassDescription::pResolveAttachments is not is not VK_ATTACHMENT_UNUSED and was not created with VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM, fragmentDensityOffsetCount must equal 0", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-pPreserveAttachments-06509", - "text": " If any element of VkSubpassDescription::pPreserveAttachments is not is not VK_ATTACHMENT_UNUSED and was not created with VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM, fragmentDensityOffsetCount must equal 0" + "text": "If any element of VkSubpassDescription::pPreserveAttachments is not is not VK_ATTACHMENT_UNUSED and was not created with VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM, fragmentDensityOffsetCount must equal 0", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-fragmentDensityOffsetCount-06510", - "text": " If fragmentDensityOffsetCount is not 0 and multiview is enabled for the render pass, fragmentDensityOffsetCount must equal the layerCount that was specified in creating the fragment density map attachment view" + "text": "If fragmentDensityOffsetCount is not 0 and multiview is enabled for the render pass, fragmentDensityOffsetCount must equal the layerCount that was specified in creating the fragment density map attachment view", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-fragmentDensityOffsetCount-06511", - "text": " If fragmentDensityOffsetCount is not 0 and multiview is not enabled for the render pass, fragmentDensityOffsetCount must equal 1" + "text": "If fragmentDensityOffsetCount is not 0 and multiview is not enabled for the render pass, fragmentDensityOffsetCount must equal 1", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-x-06512", - "text": " The x component of each element of pFragmentDensityOffsets must be an integer multiple of fragmentDensityOffsetGranularity.width" + "text": "The x component of each element of pFragmentDensityOffsets must be an integer multiple of fragmentDensityOffsetGranularity.width", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-y-06513", - "text": " The y component of each element of pFragmentDensityOffsets must be an integer multiple of fragmentDensityOffsetGranularity.height" + "text": "The y component of each element of pFragmentDensityOffsets must be an integer multiple of fragmentDensityOffsetGranularity.height", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM" + "text": "sType must be VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-pFragmentDensityOffsets-parameter", - "text": " If fragmentDensityOffsetCount is not 0, pFragmentDensityOffsets must be a valid pointer to an array of fragmentDensityOffsetCount VkOffset2D structures" + "text": "If fragmentDensityOffsetCount is not 0, pFragmentDensityOffsets must be a valid pointer to an array of fragmentDensityOffsetCount VkOffset2D structures", + "page": "vkspec" } ] }, @@ -10082,7 +12653,8 @@ "core": [ { "vuid": "VUID-VkRenderPassCreationControlEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT", + "page": "vkspec" } ] }, @@ -10090,11 +12662,13 @@ "core": [ { "vuid": "VUID-VkRenderPassCreationFeedbackCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassCreationFeedbackCreateInfoEXT-pRenderPassFeedback-parameter", - "text": " pRenderPassFeedback must be a valid pointer to a VkRenderPassCreationFeedbackInfoEXT structure" + "text": "pRenderPassFeedback must be a valid pointer to a VkRenderPassCreationFeedbackInfoEXT structure", + "page": "vkspec" } ] }, @@ -10102,11 +12676,13 @@ "core": [ { "vuid": "VUID-VkRenderPassSubpassFeedbackCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkRenderPassSubpassFeedbackCreateInfoEXT-pSubpassFeedback-parameter", - "text": " pSubpassFeedback must be a valid pointer to a VkRenderPassSubpassFeedbackInfoEXT structure" + "text": "pSubpassFeedback must be a valid pointer to a VkRenderPassSubpassFeedbackInfoEXT structure", + "page": "vkspec" } ] }, @@ -10114,79 +12690,98 @@ "core": [ { "vuid": "VUID-vkCreateShadersEXT-None-08400", - "text": " The shaderObject feature must be enabled" + "text": "The shaderObject feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCreateShadersEXT-pCreateInfos-08401", - "text": " If createInfoCount is 1, there must be no element of pCreateInfos whose flags member includes VK_SHADER_CREATE_LINK_STAGE_BIT_EXT" + "text": "If createInfoCount is 1, there must be no element of pCreateInfos whose flags member includes VK_SHADER_CREATE_LINK_STAGE_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCreateShadersEXT-pCreateInfos-08402", - "text": " If the flags member of any element of pCreateInfos includes VK_SHADER_CREATE_LINK_STAGE_BIT_EXT, the flags member of all other elements of pCreateInfos whose stage is VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, VK_SHADER_STAGE_GEOMETRY_BIT, or VK_SHADER_STAGE_FRAGMENT_BIT must also include VK_SHADER_CREATE_LINK_STAGE_BIT_EXT" + "text": "If the flags member of any element of pCreateInfos includes VK_SHADER_CREATE_LINK_STAGE_BIT_EXT, the flags member of all other elements of pCreateInfos whose stage is VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, VK_SHADER_STAGE_GEOMETRY_BIT, or VK_SHADER_STAGE_FRAGMENT_BIT must also include VK_SHADER_CREATE_LINK_STAGE_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCreateShadersEXT-pCreateInfos-08403", - "text": " If the flags member of any element of pCreateInfos includes VK_SHADER_CREATE_LINK_STAGE_BIT_EXT, the flags member of all other elements of pCreateInfos whose stage is VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT must also include VK_SHADER_CREATE_LINK_STAGE_BIT_EXT" + "text": "If the flags member of any element of pCreateInfos includes VK_SHADER_CREATE_LINK_STAGE_BIT_EXT, the flags member of all other elements of pCreateInfos whose stage is VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT must also include VK_SHADER_CREATE_LINK_STAGE_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCreateShadersEXT-pCreateInfos-08404", - "text": " If the flags member of any element of pCreateInfos whose stage is VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT includes VK_SHADER_CREATE_LINK_STAGE_BIT_EXT, there must be no member of pCreateInfos whose stage is VK_SHADER_STAGE_VERTEX_BIT and whose flags member includes VK_SHADER_CREATE_LINK_STAGE_BIT_EXT" + "text": "If the flags member of any element of pCreateInfos whose stage is VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT includes VK_SHADER_CREATE_LINK_STAGE_BIT_EXT, there must be no member of pCreateInfos whose stage is VK_SHADER_STAGE_VERTEX_BIT and whose flags member includes VK_SHADER_CREATE_LINK_STAGE_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCreateShadersEXT-pCreateInfos-08405", - "text": " If there is any element of pCreateInfos whose stage is VK_SHADER_STAGE_MESH_BIT_EXT and whose flags member includes both VK_SHADER_CREATE_LINK_STAGE_BIT_EXT and VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT, there must be no element of pCreateInfos whose stage is VK_SHADER_STAGE_TASK_BIT_EXT and whose flags member includes VK_SHADER_CREATE_LINK_STAGE_BIT_EXT" + "text": "If there is any element of pCreateInfos whose stage is VK_SHADER_STAGE_MESH_BIT_EXT and whose flags member includes both VK_SHADER_CREATE_LINK_STAGE_BIT_EXT and VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT, there must be no element of pCreateInfos whose stage is VK_SHADER_STAGE_TASK_BIT_EXT and whose flags member includes VK_SHADER_CREATE_LINK_STAGE_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCreateShadersEXT-pCreateInfos-08409", - "text": " For each element of pCreateInfos whose flags member includes VK_SHADER_CREATE_LINK_STAGE_BIT_EXT, if there is any other element of pCreateInfos whose stage is logically later than the stage of the former and whose flags member also includes VK_SHADER_CREATE_LINK_STAGE_BIT_EXT, the nextStage of the former must be equal to the stage of the element with the logically earliest stage following the stage of the former whose flags member also includes VK_SHADER_CREATE_LINK_STAGE_BIT_EXT" + "text": "For each element of pCreateInfos whose flags member includes VK_SHADER_CREATE_LINK_STAGE_BIT_EXT, if there is any other element of pCreateInfos whose stage is logically later than the stage of the former and whose flags member also includes VK_SHADER_CREATE_LINK_STAGE_BIT_EXT, the nextStage of the former must be equal to the stage of the element with the logically earliest stage following the stage of the former whose flags member also includes VK_SHADER_CREATE_LINK_STAGE_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCreateShadersEXT-pCreateInfos-08410", - "text": " The stage member of each element of pCreateInfos whose flags member includes VK_SHADER_CREATE_LINK_STAGE_BIT_EXT must be unique" + "text": "The stage member of each element of pCreateInfos whose flags member includes VK_SHADER_CREATE_LINK_STAGE_BIT_EXT must be unique", + "page": "vkspec" }, { "vuid": "VUID-vkCreateShadersEXT-pCreateInfos-08411", - "text": " The codeType member of all elements of pCreateInfos whose flags member includes VK_SHADER_CREATE_LINK_STAGE_BIT_EXT must be the same" + "text": "The codeType member of all elements of pCreateInfos whose flags member includes VK_SHADER_CREATE_LINK_STAGE_BIT_EXT must be the same", + "page": "vkspec" }, { "vuid": "VUID-vkCreateShadersEXT-pCreateInfos-08867", - "text": " If pCreateInfos contains elements with both VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT and VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, both elements' flags include VK_SHADER_CREATE_LINK_STAGE_BIT_EXT, both elements' codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and the VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT stage’s pCode contains an OpExecutionMode instruction specifying the type of subdivision, it must match the subdivision type specified in the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage" + "text": "If pCreateInfos contains elements with both VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT and VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, both elements' flags include VK_SHADER_CREATE_LINK_STAGE_BIT_EXT, both elements' codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and the VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT stage’s pCode contains an OpExecutionMode instruction specifying the type of subdivision, it must match the subdivision type specified in the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage", + "page": "vkspec" }, { "vuid": "VUID-vkCreateShadersEXT-pCreateInfos-08868", - "text": " If pCreateInfos contains elements with both VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT and VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, both elements' flags include VK_SHADER_CREATE_LINK_STAGE_BIT_EXT, both elements' codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and the VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT stage’s pCode contains an OpExecutionMode instruction specifying the orientation of triangles, it must match the triangle orientation specified in the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage" + "text": "If pCreateInfos contains elements with both VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT and VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, both elements' flags include VK_SHADER_CREATE_LINK_STAGE_BIT_EXT, both elements' codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and the VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT stage’s pCode contains an OpExecutionMode instruction specifying the orientation of triangles, it must match the triangle orientation specified in the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage", + "page": "vkspec" }, { "vuid": "VUID-vkCreateShadersEXT-pCreateInfos-08869", - "text": " If pCreateInfos contains elements with both VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT and VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, both elements' flags include VK_SHADER_CREATE_LINK_STAGE_BIT_EXT, both elements' codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and the VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT stage’s pCode contains an OpExecutionMode instruction specifying PointMode, the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage must also contain an OpExecutionMode instruction specifying PointMode" + "text": "If pCreateInfos contains elements with both VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT and VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, both elements' flags include VK_SHADER_CREATE_LINK_STAGE_BIT_EXT, both elements' codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and the VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT stage’s pCode contains an OpExecutionMode instruction specifying PointMode, the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage must also contain an OpExecutionMode instruction specifying PointMode", + "page": "vkspec" }, { "vuid": "VUID-vkCreateShadersEXT-pCreateInfos-08870", - "text": " If pCreateInfos contains elements with both VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT and VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, both elements' flags include VK_SHADER_CREATE_LINK_STAGE_BIT_EXT, both elements' codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and the VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT stage’s pCode contains an OpExecutionMode instruction specifying the spacing of segments on the edges of tessellated primitives, it must match the segment spacing specified in the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage" + "text": "If pCreateInfos contains elements with both VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT and VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, both elements' flags include VK_SHADER_CREATE_LINK_STAGE_BIT_EXT, both elements' codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and the VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT stage’s pCode contains an OpExecutionMode instruction specifying the spacing of segments on the edges of tessellated primitives, it must match the segment spacing specified in the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage", + "page": "vkspec" }, { "vuid": "VUID-vkCreateShadersEXT-pCreateInfos-08871", - "text": " If pCreateInfos contains elements with both VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT and VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, both elements' flags include VK_SHADER_CREATE_LINK_STAGE_BIT_EXT, both elements' codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and the VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT stage’s pCode contains an OpExecutionMode instruction specifying the output patch size, it must match the output patch size specified in the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage" + "text": "If pCreateInfos contains elements with both VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT and VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, both elements' flags include VK_SHADER_CREATE_LINK_STAGE_BIT_EXT, both elements' codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and the VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT stage’s pCode contains an OpExecutionMode instruction specifying the output patch size, it must match the output patch size specified in the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage", + "page": "vkspec" }, { "vuid": "VUID-vkCreateShadersEXT-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkCreateShadersEXT-pCreateInfos-parameter", - "text": " pCreateInfos must be a valid pointer to an array of createInfoCount valid VkShaderCreateInfoEXT structures" + "text": "pCreateInfos must be a valid pointer to an array of createInfoCount valid VkShaderCreateInfoEXT structures", + "page": "vkspec" }, { "vuid": "VUID-vkCreateShadersEXT-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateShadersEXT-pShaders-parameter", - "text": " pShaders must be a valid pointer to an array of createInfoCount VkShaderEXT handles" + "text": "pShaders must be a valid pointer to an array of createInfoCount VkShaderEXT handles", + "page": "vkspec" }, { "vuid": "VUID-vkCreateShadersEXT-createInfoCount-arraylength", - "text": " createInfoCount must be greater than 0" + "text": "createInfoCount must be greater than 0", + "page": "vkspec" } ] }, @@ -10194,271 +12789,338 @@ "core": [ { "vuid": "VUID-VkShaderCreateInfoEXT-codeSize-08735", - "text": " If pname:codeType is ename:VK_SHADER_CODE_TYPE_SPIRV_EXT, codeSize must be a multiple of 4" + "text": "If codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, codeSize must be a multiple of 4", + "page": "vkspec" }, { "vuid": "VUID-VkShaderCreateInfoEXT-pCode-08736", - "text": " If pname:codeType is ename:VK_SHADER_CODE_TYPE_SPIRV_EXT, pCode must point to valid SPIR-V code, formatted and packed as described by the Khronos SPIR-V Specification" + "text": "If codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, pCode must point to valid SPIR-V code, formatted and packed as described by the Khronos SPIR-V Specification", + "page": "vkspec" }, { "vuid": "VUID-VkShaderCreateInfoEXT-pCode-08737", - "text": " If pname:codeType is ename:VK_SHADER_CODE_TYPE_SPIRV_EXT, pCode must adhere to the validation rules described by the Validation Rules within a Module section of the SPIR-V Environment appendix" + "text": "If codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, pCode must adhere to the validation rules described by the Validation Rules within a Module section of the SPIR-V Environment appendix", + "page": "vkspec" }, { "vuid": "VUID-VkShaderCreateInfoEXT-pCode-08738", - "text": " If pname:codeType is ename:VK_SHADER_CODE_TYPE_SPIRV_EXT, pCode must declare the Shader capability for SPIR-V code" + "text": "If codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, pCode must declare the Shader capability for SPIR-V code", + "page": "vkspec" }, { "vuid": "VUID-VkShaderCreateInfoEXT-pCode-08739", - "text": " If pname:codeType is ename:VK_SHADER_CODE_TYPE_SPIRV_EXT, pCode must not declare any capability that is not supported by the API, as described by the Capabilities section of the SPIR-V Environment appendix" + "text": "If codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, pCode must not declare any capability that is not supported by the API, as described by the Capabilities section of the SPIR-V Environment appendix", + "page": "vkspec" }, { "vuid": "VUID-VkShaderCreateInfoEXT-pCode-08740", - "text": " If pname:codeType is ename:VK_SHADER_CODE_TYPE_SPIRV_EXT, and pCode declares any of the capabilities listed in the SPIR-V Environment appendix, one of the corresponding requirements must be satisfied" + "text": "If codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and pCode declares any of the capabilities listed in the SPIR-V Environment appendix, one of the corresponding requirements must be satisfied", + "page": "vkspec" }, { "vuid": "VUID-VkShaderCreateInfoEXT-pCode-08741", - "text": " If pname:codeType is ename:VK_SHADER_CODE_TYPE_SPIRV_EXT, pCode must not declare any SPIR-V extension that is not supported by the API, as described by the Extension section of the SPIR-V Environment appendix" + "text": "If codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, pCode must not declare any SPIR-V extension that is not supported by the API, as described by the Extension section of the SPIR-V Environment appendix", + "page": "vkspec" }, { "vuid": "VUID-VkShaderCreateInfoEXT-pCode-08742", - "text": " If pname:codeType is ename:VK_SHADER_CODE_TYPE_SPIRV_EXT, and pCode declares any of the SPIR-V extensions listed in the SPIR-V Environment appendix, one of the corresponding requirements must be satisfied" + "text": "If codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and pCode declares any of the SPIR-V extensions listed in the SPIR-V Environment appendix, one of the corresponding requirements must be satisfied", + "page": "vkspec" }, { "vuid": "VUID-VkShaderCreateInfoEXT-flags-08412", - "text": " If stage is not VK_SHADER_STAGE_TASK_BIT_EXT, VK_SHADER_STAGE_MESH_BIT_EXT, VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, VK_SHADER_STAGE_GEOMETRY_BIT, or VK_SHADER_STAGE_FRAGMENT_BIT, flags must not include VK_SHADER_CREATE_LINK_STAGE_BIT_EXT" + "text": "If stage is not VK_SHADER_STAGE_TASK_BIT_EXT, VK_SHADER_STAGE_MESH_BIT_EXT, VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, VK_SHADER_STAGE_GEOMETRY_BIT, or VK_SHADER_STAGE_FRAGMENT_BIT, flags must not include VK_SHADER_CREATE_LINK_STAGE_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkShaderCreateInfoEXT-flags-08486", - "text": " If stage is not VK_SHADER_STAGE_FRAGMENT_BIT, flags must not include VK_SHADER_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXT" + "text": "If stage is not VK_SHADER_STAGE_FRAGMENT_BIT, flags must not include VK_SHADER_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkShaderCreateInfoEXT-flags-08487", - "text": " If the attachmentFragmentShadingRate feature is not enabled, flags must not include VK_SHADER_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXT" + "text": "If the attachmentFragmentShadingRate feature is not enabled, flags must not include VK_SHADER_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkShaderCreateInfoEXT-flags-08488", - "text": " If stage is not VK_SHADER_STAGE_FRAGMENT_BIT, flags must not include VK_SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT" + "text": "If stage is not VK_SHADER_STAGE_FRAGMENT_BIT, flags must not include VK_SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkShaderCreateInfoEXT-flags-08489", - "text": " If the fragmentDensityMap feature is not enabled, flags must not include VK_SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT" + "text": "If the fragmentDensityMap feature is not enabled, flags must not include VK_SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkShaderCreateInfoEXT-flags-08992", - "text": " If flags includes VK_SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT, stage must be one of VK_SHADER_STAGE_MESH_BIT_EXT, VK_SHADER_STAGE_TASK_BIT_EXT, or VK_SHADER_STAGE_COMPUTE_BIT" + "text": "If flags includes VK_SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT, stage must be one of VK_SHADER_STAGE_MESH_BIT_EXT, VK_SHADER_STAGE_TASK_BIT_EXT, or VK_SHADER_STAGE_COMPUTE_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkShaderCreateInfoEXT-flags-08485", - "text": " If stage is not VK_SHADER_STAGE_COMPUTE_BIT, flags must not include VK_SHADER_CREATE_DISPATCH_BASE_BIT_EXT" + "text": "If stage is not VK_SHADER_STAGE_COMPUTE_BIT, flags must not include VK_SHADER_CREATE_DISPATCH_BASE_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkShaderCreateInfoEXT-flags-08414", - "text": " If stage is not VK_SHADER_STAGE_MESH_BIT_EXT, flags must not include VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT" + "text": "If stage is not VK_SHADER_STAGE_MESH_BIT_EXT, flags must not include VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkShaderCreateInfoEXT-flags-08416", - "text": " If flags includes both VK_SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT and VK_SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT, the local workgroup size in the X dimension of the shader must be a multiple of maxSubgroupSize" + "text": "If flags includes both VK_SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT and VK_SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT, the local workgroup size in the X dimension of the shader must be a multiple of maxSubgroupSize", + "page": "vkspec" }, { "vuid": "VUID-VkShaderCreateInfoEXT-flags-08417", - "text": " If flags includes VK_SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT but not VK_SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT and no VkShaderRequiredSubgroupSizeCreateInfoEXT structure is included in the pNext chain, the local workgroup size in the X dimension of the shader must be a multiple of subgroupSize" + "text": "If flags includes VK_SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT but not VK_SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT and no VkShaderRequiredSubgroupSizeCreateInfoEXT structure is included in the pNext chain, the local workgroup size in the X dimension of the shader must be a multiple of subgroupSize", + "page": "vkspec" }, { "vuid": "VUID-VkShaderCreateInfoEXT-stage-08418", - "text": " stage must not be VK_SHADER_STAGE_ALL_GRAPHICS or VK_SHADER_STAGE_ALL" + "text": "stage must not be VK_SHADER_STAGE_ALL_GRAPHICS or VK_SHADER_STAGE_ALL", + "page": "vkspec" }, { "vuid": "VUID-VkShaderCreateInfoEXT-stage-08419", - "text": " If the tessellationShader feature is not enabled, stage must not be VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT or VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT" + "text": "If the tessellationShader feature is not enabled, stage must not be VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT or VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkShaderCreateInfoEXT-stage-08420", - "text": " If the geometryShader feature is not enabled, stage must not be VK_SHADER_STAGE_GEOMETRY_BIT" + "text": "If the geometryShader feature is not enabled, stage must not be VK_SHADER_STAGE_GEOMETRY_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkShaderCreateInfoEXT-stage-08421", - "text": " If the taskShader feature is not enabled, stage must not be VK_SHADER_STAGE_TASK_BIT_EXT" + "text": "If the taskShader feature is not enabled, stage must not be VK_SHADER_STAGE_TASK_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkShaderCreateInfoEXT-stage-08422", - "text": " If the meshShader feature is not enabled, stage must not be VK_SHADER_STAGE_MESH_BIT_EXT" + "text": "If the meshShader feature is not enabled, stage must not be VK_SHADER_STAGE_MESH_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkShaderCreateInfoEXT-stage-08425", - "text": " stage must not be VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI" + "text": "stage must not be VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI", + "page": "vkspec" }, { "vuid": "VUID-VkShaderCreateInfoEXT-stage-08426", - "text": " stage must not be VK_SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI" + "text": "stage must not be VK_SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI", + "page": "vkspec" }, { "vuid": "VUID-VkShaderCreateInfoEXT-nextStage-08427", - "text": " If stage is VK_SHADER_STAGE_VERTEX_BIT, nextStage must not include any bits other than VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_GEOMETRY_BIT, and VK_SHADER_STAGE_FRAGMENT_BIT" + "text": "If stage is VK_SHADER_STAGE_VERTEX_BIT, nextStage must not include any bits other than VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_GEOMETRY_BIT, and VK_SHADER_STAGE_FRAGMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkShaderCreateInfoEXT-nextStage-08428", - "text": " If the tessellationShader feature is not enabled, nextStage must not include VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT or VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT" + "text": "If the tessellationShader feature is not enabled, nextStage must not include VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT or VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkShaderCreateInfoEXT-nextStage-08429", - "text": " If the geometryShader feature is not enabled, nextStage must not include VK_SHADER_STAGE_GEOMETRY_BIT" + "text": "If the geometryShader feature is not enabled, nextStage must not include VK_SHADER_STAGE_GEOMETRY_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkShaderCreateInfoEXT-nextStage-08430", - "text": " If stage is VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, nextStage must not include any bits other than VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT" + "text": "If stage is VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, nextStage must not include any bits other than VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkShaderCreateInfoEXT-nextStage-08431", - "text": " If stage is VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, nextStage must not include any bits other than VK_SHADER_STAGE_GEOMETRY_BIT and VK_SHADER_STAGE_FRAGMENT_BIT" + "text": "If stage is VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, nextStage must not include any bits other than VK_SHADER_STAGE_GEOMETRY_BIT and VK_SHADER_STAGE_FRAGMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkShaderCreateInfoEXT-nextStage-08433", - "text": " If stage is VK_SHADER_STAGE_GEOMETRY_BIT, nextStage must not include any bits other than VK_SHADER_STAGE_FRAGMENT_BIT" + "text": "If stage is VK_SHADER_STAGE_GEOMETRY_BIT, nextStage must not include any bits other than VK_SHADER_STAGE_FRAGMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkShaderCreateInfoEXT-nextStage-08434", - "text": " If stage is VK_SHADER_STAGE_FRAGMENT_BIT or VK_SHADER_STAGE_COMPUTE_BIT, nextStage must be 0" + "text": "If stage is VK_SHADER_STAGE_FRAGMENT_BIT or VK_SHADER_STAGE_COMPUTE_BIT, nextStage must be 0", + "page": "vkspec" }, { "vuid": "VUID-VkShaderCreateInfoEXT-nextStage-08435", - "text": " If stage is VK_SHADER_STAGE_TASK_BIT_EXT, nextStage must not include any bits other than VK_SHADER_STAGE_MESH_BIT_EXT" + "text": "If stage is VK_SHADER_STAGE_TASK_BIT_EXT, nextStage must not include any bits other than VK_SHADER_STAGE_MESH_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkShaderCreateInfoEXT-nextStage-08436", - "text": " If stage is VK_SHADER_STAGE_MESH_BIT_EXT, nextStage must not include any bits other than VK_SHADER_STAGE_FRAGMENT_BIT" + "text": "If stage is VK_SHADER_STAGE_MESH_BIT_EXT, nextStage must not include any bits other than VK_SHADER_STAGE_FRAGMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkShaderCreateInfoEXT-pName-08440", - "text": " If codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, pName must be the name of an OpEntryPoint in pCode with an execution model that matches stage" + "text": "If codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, pName must be the name of an OpEntryPoint in pCode with an execution model that matches stage", + "page": "vkspec" }, { "vuid": "VUID-VkShaderCreateInfoEXT-pCode-08492", - "text": " If codeType is VK_SHADER_CODE_TYPE_BINARY_EXT, pCode must be aligned to 16 bytes" + "text": "If codeType is VK_SHADER_CODE_TYPE_BINARY_EXT, pCode must be aligned to 16 bytes", + "page": "vkspec" }, { "vuid": "VUID-VkShaderCreateInfoEXT-pCode-08493", - "text": " If codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, pCode must be aligned to 4 bytes" + "text": "If codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, pCode must be aligned to 4 bytes", + "page": "vkspec" }, { "vuid": "VUID-VkShaderCreateInfoEXT-pCode-08448", - "text": " If codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and the identified entry point includes any variable in its interface that is declared with the ClipDistance BuiltIn decoration, that variable must not have an array size greater than VkPhysicalDeviceLimits::maxClipDistances" + "text": "If codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and the identified entry point includes any variable in its interface that is declared with the ClipDistance BuiltIn decoration, that variable must not have an array size greater than VkPhysicalDeviceLimits::maxClipDistances", + "page": "vkspec" }, { "vuid": "VUID-VkShaderCreateInfoEXT-pCode-08449", - "text": " If codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and the identified entry point includes any variable in its interface that is declared with the CullDistance BuiltIn decoration, that variable must not have an array size greater than VkPhysicalDeviceLimits::maxCullDistances" + "text": "If codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and the identified entry point includes any variable in its interface that is declared with the CullDistance BuiltIn decoration, that variable must not have an array size greater than VkPhysicalDeviceLimits::maxCullDistances", + "page": "vkspec" }, { "vuid": "VUID-VkShaderCreateInfoEXT-pCode-08450", - "text": " If codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and the identified entry point includes any variables in its interface that are declared with the ClipDistance or CullDistance BuiltIn decoration, those variables must not have array sizes which sum to more than VkPhysicalDeviceLimits::maxCombinedClipAndCullDistances" + "text": "If codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and the identified entry point includes any variables in its interface that are declared with the ClipDistance or CullDistance BuiltIn decoration, those variables must not have array sizes which sum to more than VkPhysicalDeviceLimits::maxCombinedClipAndCullDistances", + "page": "vkspec" }, { "vuid": "VUID-VkShaderCreateInfoEXT-pCode-08451", - "text": " If codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and the identified entry point includes any variable in its interface that is declared with the SampleMask BuiltIn decoration, that variable must not have an array size greater than VkPhysicalDeviceLimits::maxSampleMaskWords" + "text": "If codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and the identified entry point includes any variable in its interface that is declared with the SampleMask BuiltIn decoration, that variable must not have an array size greater than VkPhysicalDeviceLimits::maxSampleMaskWords", + "page": "vkspec" }, { "vuid": "VUID-VkShaderCreateInfoEXT-pCode-08452", - "text": " If codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and stage is VK_SHADER_STAGE_VERTEX_BIT, the identified entry point must not include any input variable in its interface that is decorated with CullDistance" + "text": "If codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and stage is VK_SHADER_STAGE_VERTEX_BIT, the identified entry point must not include any input variable in its interface that is decorated with CullDistance", + "page": "vkspec" }, { "vuid": "VUID-VkShaderCreateInfoEXT-pCode-08453", - "text": " If codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and stage is VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT or VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, and the identified entry point has an OpExecutionMode instruction specifying a patch size with OutputVertices, the patch size must be greater than 0 and less than or equal to VkPhysicalDeviceLimits::maxTessellationPatchSize" + "text": "If codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and stage is VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT or VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, and the identified entry point has an OpExecutionMode instruction specifying a patch size with OutputVertices, the patch size must be greater than 0 and less than or equal to VkPhysicalDeviceLimits::maxTessellationPatchSize", + "page": "vkspec" }, { "vuid": "VUID-VkShaderCreateInfoEXT-pCode-08454", - "text": " If codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and stage is VK_SHADER_STAGE_GEOMETRY_BIT, the identified entry point must have an OpExecutionMode instruction specifying a maximum output vertex count that is greater than 0 and less than or equal to VkPhysicalDeviceLimits::maxGeometryOutputVertices" + "text": "If codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and stage is VK_SHADER_STAGE_GEOMETRY_BIT, the identified entry point must have an OpExecutionMode instruction specifying a maximum output vertex count that is greater than 0 and less than or equal to VkPhysicalDeviceLimits::maxGeometryOutputVertices", + "page": "vkspec" }, { "vuid": "VUID-VkShaderCreateInfoEXT-pCode-08455", - "text": " If codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and stage is VK_SHADER_STAGE_GEOMETRY_BIT, the identified entry point must have an OpExecutionMode instruction specifying an invocation count that is greater than 0 and less than or equal to VkPhysicalDeviceLimits::maxGeometryShaderInvocations" + "text": "If codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and stage is VK_SHADER_STAGE_GEOMETRY_BIT, the identified entry point must have an OpExecutionMode instruction specifying an invocation count that is greater than 0 and less than or equal to VkPhysicalDeviceLimits::maxGeometryShaderInvocations", + "page": "vkspec" }, { "vuid": "VUID-VkShaderCreateInfoEXT-pCode-08456", - "text": " If codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and stage is a pre-rasterization shader stage, and the identified entry point writes to Layer for any primitive, it must write the same value to Layer for all vertices of a given primitive" + "text": "If codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and stage is a pre-rasterization shader stage, and the identified entry point writes to Layer for any primitive, it must write the same value to Layer for all vertices of a given primitive", + "page": "vkspec" }, { "vuid": "VUID-VkShaderCreateInfoEXT-pCode-08457", - "text": " If codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and stage is a pre-rasterization shader stage, and the identified entry point writes to ViewportIndex for any primitive, it must write the same value to ViewportIndex for all vertices of a given primitive" + "text": "If codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and stage is a pre-rasterization shader stage, and the identified entry point writes to ViewportIndex for any primitive, it must write the same value to ViewportIndex for all vertices of a given primitive", + "page": "vkspec" }, { "vuid": "VUID-VkShaderCreateInfoEXT-pCode-08458", - "text": " If codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and stage is VK_SHADER_STAGE_FRAGMENT_BIT, the identified entry point must not include any output variables in its interface decorated with CullDistance" + "text": "If codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and stage is VK_SHADER_STAGE_FRAGMENT_BIT, the identified entry point must not include any output variables in its interface decorated with CullDistance", + "page": "vkspec" }, { "vuid": "VUID-VkShaderCreateInfoEXT-pCode-08459", - "text": " If codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and stage is VK_SHADER_STAGE_FRAGMENT_BIT, and the identified entry point writes to FragDepth in any execution path, all execution paths that are not exclusive to helper invocations must either discard the fragment, or write or initialize the value of FragDepth" + "text": "If codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and stage is VK_SHADER_STAGE_FRAGMENT_BIT, and the identified entry point writes to FragDepth in any execution path, all execution paths that are not exclusive to helper invocations must either discard the fragment, or write or initialize the value of FragDepth", + "page": "vkspec" }, { "vuid": "VUID-VkShaderCreateInfoEXT-pCode-08460", - "text": " If codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, the shader code in pCode must be valid as described by the Khronos SPIR-V Specification after applying the specializations provided in pSpecializationInfo, if any, and then converting all specialization constants into fixed constants" + "text": "If codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, the shader code in pCode must be valid as described by the Khronos SPIR-V Specification after applying the specializations provided in pSpecializationInfo, if any, and then converting all specialization constants into fixed constants", + "page": "vkspec" }, { "vuid": "VUID-VkShaderCreateInfoEXT-codeType-08872", - "text": " If codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and stage is VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, pCode must contain an OpExecutionMode instruction specifying the type of subdivision" + "text": "If codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and stage is VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, pCode must contain an OpExecutionMode instruction specifying the type of subdivision", + "page": "vkspec" }, { "vuid": "VUID-VkShaderCreateInfoEXT-codeType-08873", - "text": " If codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and stage is VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, pCode must contain an OpExecutionMode instruction specifying the orientation of triangles generated by the tessellator" + "text": "If codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and stage is VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, pCode must contain an OpExecutionMode instruction specifying the orientation of triangles generated by the tessellator", + "page": "vkspec" }, { "vuid": "VUID-VkShaderCreateInfoEXT-codeType-08874", - "text": " If codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and stage is VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, pCode must contain an OpExecutionMode instruction specifying the spacing of segments on the edges of tessellated primitives" + "text": "If codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and stage is VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, pCode must contain an OpExecutionMode instruction specifying the spacing of segments on the edges of tessellated primitives", + "page": "vkspec" }, { "vuid": "VUID-VkShaderCreateInfoEXT-codeType-08875", - "text": " If codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and stage is VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, pCode must contain an OpExecutionMode instruction specifying the output patch size" + "text": "If codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and stage is VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, pCode must contain an OpExecutionMode instruction specifying the output patch size", + "page": "vkspec" }, { "vuid": "VUID-VkShaderCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SHADER_CREATE_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_SHADER_CREATE_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkShaderCreateInfoEXT-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkPipelineShaderStageRequiredSubgroupSizeCreateInfo" + "text": "pNext must be NULL or a pointer to a valid instance of VkPipelineShaderStageRequiredSubgroupSizeCreateInfo", + "page": "vkspec" }, { "vuid": "VUID-VkShaderCreateInfoEXT-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" }, { "vuid": "VUID-VkShaderCreateInfoEXT-flags-parameter", - "text": " flags must be a valid combination of VkShaderCreateFlagBitsEXT values" + "text": "flags must be a valid combination of VkShaderCreateFlagBitsEXT values", + "page": "vkspec" }, { "vuid": "VUID-VkShaderCreateInfoEXT-stage-parameter", - "text": " stage must be a valid VkShaderStageFlagBits value" + "text": "stage must be a valid VkShaderStageFlagBits value", + "page": "vkspec" }, { "vuid": "VUID-VkShaderCreateInfoEXT-nextStage-parameter", - "text": " nextStage must be a valid combination of VkShaderStageFlagBits values" + "text": "nextStage must be a valid combination of VkShaderStageFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkShaderCreateInfoEXT-codeType-parameter", - "text": " codeType must be a valid VkShaderCodeTypeEXT value" + "text": "codeType must be a valid VkShaderCodeTypeEXT value", + "page": "vkspec" }, { "vuid": "VUID-VkShaderCreateInfoEXT-pCode-parameter", - "text": " pCode must be a valid pointer to an array of codeSize bytes" + "text": "pCode must be a valid pointer to an array of codeSize bytes", + "page": "vkspec" }, { "vuid": "VUID-VkShaderCreateInfoEXT-pName-parameter", - "text": " If pName is not NULL, pName must be a null-terminated UTF-8 string" + "text": "If pName is not NULL, pName must be a null-terminated UTF-8 string", + "page": "vkspec" }, { "vuid": "VUID-VkShaderCreateInfoEXT-pSetLayouts-parameter", - "text": " If setLayoutCount is not 0, and pSetLayouts is not NULL, pSetLayouts must be a valid pointer to an array of setLayoutCount valid VkDescriptorSetLayout handles" + "text": "If setLayoutCount is not 0, and pSetLayouts is not NULL, pSetLayouts must be a valid pointer to an array of setLayoutCount valid VkDescriptorSetLayout handles", + "page": "vkspec" }, { "vuid": "VUID-VkShaderCreateInfoEXT-pPushConstantRanges-parameter", - "text": " If pushConstantRangeCount is not 0, and pPushConstantRanges is not NULL, pPushConstantRanges must be a valid pointer to an array of pushConstantRangeCount valid VkPushConstantRange structures" + "text": "If pushConstantRangeCount is not 0, and pPushConstantRanges is not NULL, pPushConstantRanges must be a valid pointer to an array of pushConstantRangeCount valid VkPushConstantRange structures", + "page": "vkspec" }, { "vuid": "VUID-VkShaderCreateInfoEXT-pSpecializationInfo-parameter", - "text": " If pSpecializationInfo is not NULL, pSpecializationInfo must be a valid pointer to a valid VkSpecializationInfo structure" + "text": "If pSpecializationInfo is not NULL, pSpecializationInfo must be a valid pointer to a valid VkSpecializationInfo structure", + "page": "vkspec" }, { "vuid": "VUID-VkShaderCreateInfoEXT-codeSize-arraylength", - "text": " codeSize must be greater than 0" + "text": "codeSize must be greater than 0", + "page": "vkspec" } ] }, @@ -10466,31 +13128,38 @@ "core": [ { "vuid": "VUID-vkGetShaderBinaryDataEXT-None-08461", - "text": " The shaderObject feature must be enabled" + "text": "The shaderObject feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkGetShaderBinaryDataEXT-None-08499", - "text": " If pData is not NULL, it must be aligned to 16 bytes" + "text": "If pData is not NULL, it must be aligned to 16 bytes", + "page": "vkspec" }, { "vuid": "VUID-vkGetShaderBinaryDataEXT-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetShaderBinaryDataEXT-shader-parameter", - "text": " shader must be a valid VkShaderEXT handle" + "text": "shader must be a valid VkShaderEXT handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetShaderBinaryDataEXT-pDataSize-parameter", - "text": " pDataSize must be a valid pointer to a size_t value" + "text": "pDataSize must be a valid pointer to a size_t value", + "page": "vkspec" }, { "vuid": "VUID-vkGetShaderBinaryDataEXT-pData-parameter", - "text": " If the value referenced by pDataSize is not 0, and pData is not NULL, pData must be a valid pointer to an array of pDataSize bytes" + "text": "If the value referenced by pDataSize is not 0, and pData is not NULL, pData must be a valid pointer to an array of pDataSize bytes", + "page": "vkspec" }, { "vuid": "VUID-vkGetShaderBinaryDataEXT-shader-parent", - "text": " shader must have been created, allocated, or retrieved from device" + "text": "shader must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -10498,99 +13167,123 @@ "core": [ { "vuid": "VUID-vkCmdBindShadersEXT-None-08462", - "text": " The shaderObject feature must be enabled" + "text": "The shaderObject feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindShadersEXT-pStages-08463", - "text": " Every element of pStages must be unique" + "text": "Every element of pStages must be unique", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindShadersEXT-pStages-08464", - "text": " pStages must not contain VK_SHADER_STAGE_ALL_GRAPHICS or VK_SHADER_STAGE_ALL" + "text": "pStages must not contain VK_SHADER_STAGE_ALL_GRAPHICS or VK_SHADER_STAGE_ALL", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindShadersEXT-pStages-08465", - "text": " pStages must not contain VK_SHADER_STAGE_RAYGEN_BIT_KHR, VK_SHADER_STAGE_ANY_HIT_BIT_KHR, VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR, VK_SHADER_STAGE_MISS_BIT_KHR, VK_SHADER_STAGE_INTERSECTION_BIT_KHR, or VK_SHADER_STAGE_CALLABLE_BIT_KHR" + "text": "pStages must not contain VK_SHADER_STAGE_RAYGEN_BIT_KHR, VK_SHADER_STAGE_ANY_HIT_BIT_KHR, VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR, VK_SHADER_STAGE_MISS_BIT_KHR, VK_SHADER_STAGE_INTERSECTION_BIT_KHR, or VK_SHADER_STAGE_CALLABLE_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindShadersEXT-pStages-08467", - "text": " pStages must not contain VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI" + "text": "pStages must not contain VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindShadersEXT-pStages-08468", - "text": " pStages must not contain VK_SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI" + "text": "pStages must not contain VK_SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindShadersEXT-pShaders-08469", - "text": " For each element of pStages, if pShaders is not NULL, and the element of the pShaders array with the same index is not VK_NULL_HANDLE, it must have been created with a stage equal to the corresponding element of pStages" + "text": "For each element of pStages, if pShaders is not NULL, and the element of the pShaders array with the same index is not VK_NULL_HANDLE, it must have been created with a stage equal to the corresponding element of pStages", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindShadersEXT-pShaders-08470", - "text": " If pStages contains both VK_SHADER_STAGE_TASK_BIT_EXT and VK_SHADER_STAGE_VERTEX_BIT, and pShaders is not NULL, and the same index in pShaders as VK_SHADER_STAGE_TASK_BIT_EXT in pStages is not VK_NULL_HANDLE, the same index in pShaders as VK_SHADER_STAGE_VERTEX_BIT in pStages must be VK_NULL_HANDLE" + "text": "If pStages contains both VK_SHADER_STAGE_TASK_BIT_EXT and VK_SHADER_STAGE_VERTEX_BIT, and pShaders is not NULL, and the same index in pShaders as VK_SHADER_STAGE_TASK_BIT_EXT in pStages is not VK_NULL_HANDLE, the same index in pShaders as VK_SHADER_STAGE_VERTEX_BIT in pStages must be VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindShadersEXT-pShaders-08471", - "text": " If pStages contains both VK_SHADER_STAGE_MESH_BIT_EXT and VK_SHADER_STAGE_VERTEX_BIT, and pShaders is not NULL, and the same index in pShaders as VK_SHADER_STAGE_MESH_BIT_EXT in pStages is not VK_NULL_HANDLE, the same index in pShaders as VK_SHADER_STAGE_VERTEX_BIT in pStages must be VK_NULL_HANDLE" + "text": "If pStages contains both VK_SHADER_STAGE_MESH_BIT_EXT and VK_SHADER_STAGE_VERTEX_BIT, and pShaders is not NULL, and the same index in pShaders as VK_SHADER_STAGE_MESH_BIT_EXT in pStages is not VK_NULL_HANDLE, the same index in pShaders as VK_SHADER_STAGE_VERTEX_BIT in pStages must be VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindShadersEXT-pShaders-08474", - "text": " If the tessellationShader feature is not enabled, and pStages contains VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT or VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, and pShaders is not NULL, the same index or indices in pShaders must be VK_NULL_HANDLE" + "text": "If the tessellationShader feature is not enabled, and pStages contains VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT or VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, and pShaders is not NULL, the same index or indices in pShaders must be VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindShadersEXT-pShaders-08475", - "text": " If the geometryShader feature is not enabled, and pStages contains VK_SHADER_STAGE_GEOMETRY_BIT, and pShaders is not NULL, the same index in pShaders must be VK_NULL_HANDLE" + "text": "If the geometryShader feature is not enabled, and pStages contains VK_SHADER_STAGE_GEOMETRY_BIT, and pShaders is not NULL, the same index in pShaders must be VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindShadersEXT-pShaders-08490", - "text": " If the taskShader feature is not enabled, and pStages contains VK_SHADER_STAGE_TASK_BIT_EXT, and pShaders is not NULL, the same index in pShaders must be VK_NULL_HANDLE" + "text": "If the taskShader feature is not enabled, and pStages contains VK_SHADER_STAGE_TASK_BIT_EXT, and pShaders is not NULL, the same index in pShaders must be VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindShadersEXT-pShaders-08491", - "text": " If the meshShader feature is not enabled, and pStages contains VK_SHADER_STAGE_MESH_BIT_EXT, and pShaders is not NULL, the same index in pShaders must be VK_NULL_HANDLE" + "text": "If the meshShader feature is not enabled, and pStages contains VK_SHADER_STAGE_MESH_BIT_EXT, and pShaders is not NULL, the same index in pShaders must be VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindShadersEXT-pShaders-08476", - "text": " If pStages contains VK_SHADER_STAGE_COMPUTE_BIT, the VkCommandPool that commandBuffer was allocated from must support compute operations" + "text": "If pStages contains VK_SHADER_STAGE_COMPUTE_BIT, the VkCommandPool that commandBuffer was allocated from must support compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindShadersEXT-pShaders-08477", - "text": " If pStages contains VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, VK_SHADER_STAGE_GEOMETRY_BIT, or VK_SHADER_STAGE_FRAGMENT_BIT, the VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "If pStages contains VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, VK_SHADER_STAGE_GEOMETRY_BIT, or VK_SHADER_STAGE_FRAGMENT_BIT, the VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindShadersEXT-pShaders-08478", - "text": " If pStages contains VK_SHADER_STAGE_MESH_BIT_EXT or VK_SHADER_STAGE_TASK_BIT_EXT, the VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "If pStages contains VK_SHADER_STAGE_MESH_BIT_EXT or VK_SHADER_STAGE_TASK_BIT_EXT, the VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindShadersEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindShadersEXT-pStages-parameter", - "text": " pStages must be a valid pointer to an array of stageCount valid VkShaderStageFlagBits values" + "text": "pStages must be a valid pointer to an array of stageCount valid VkShaderStageFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindShadersEXT-pShaders-parameter", - "text": " If pShaders is not NULL, pShaders must be a valid pointer to an array of stageCount valid or VK_NULL_HANDLE VkShaderEXT handles" + "text": "If pShaders is not NULL, pShaders must be a valid pointer to an array of stageCount valid or VK_NULL_HANDLE VkShaderEXT handles", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindShadersEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindShadersEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindShadersEXT-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindShadersEXT-stageCount-arraylength", - "text": " stageCount must be greater than 0" + "text": "stageCount must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindShadersEXT-commonparent", - "text": " Both of commandBuffer, and the elements of pShaders that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of commandBuffer, and the elements of pShaders that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -10598,35 +13291,43 @@ "core": [ { "vuid": "VUID-vkDestroyShaderEXT-None-08481", - "text": " The shaderObject feature must be enabled" + "text": "The shaderObject feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyShaderEXT-shader-08482", - "text": " All submitted commands that refer to shader must have completed execution" + "text": "All submitted commands that refer to shader must have completed execution", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyShaderEXT-pAllocator-08483", - "text": " If VkAllocationCallbacks were provided when shader was created, a compatible set of callbacks must be provided here" + "text": "If VkAllocationCallbacks were provided when shader was created, a compatible set of callbacks must be provided here", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyShaderEXT-pAllocator-08484", - "text": " If no VkAllocationCallbacks were provided when shader was created, pAllocator must be NULL" + "text": "If no VkAllocationCallbacks were provided when shader was created, pAllocator must be NULL", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyShaderEXT-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyShaderEXT-shader-parameter", - "text": " shader must be a valid VkShaderEXT handle" + "text": "shader must be a valid VkShaderEXT handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyShaderEXT-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyShaderEXT-shader-parent", - "text": " shader must have been created, allocated, or retrieved from device" + "text": "shader must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -10634,23 +13335,28 @@ "core": [ { "vuid": "VUID-vkCreateShaderModule-pCreateInfo-06904", - "text": " If pCreateInfo is not NULL, pCreateInfo->pNext must be NULL or a pointer to a VkShaderModuleValidationCacheCreateInfoEXT structure" + "text": "If pCreateInfo is not NULL, pCreateInfo->pNext must be NULL or a pointer to a VkShaderModuleValidationCacheCreateInfoEXT structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateShaderModule-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkCreateShaderModule-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkShaderModuleCreateInfo structure" + "text": "pCreateInfo must be a valid pointer to a valid VkShaderModuleCreateInfo structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateShaderModule-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateShaderModule-pShaderModule-parameter", - "text": " pShaderModule must be a valid pointer to a VkShaderModule handle" + "text": "pShaderModule must be a valid pointer to a VkShaderModule handle", + "page": "vkspec" } ] }, @@ -10658,59 +13364,73 @@ "core": [ { "vuid": "VUID-VkShaderModuleCreateInfo-codeSize-08735", - "text": " If pCode is a pointer to SPIR-V code, codeSize must be a multiple of 4" + "text": "If pCode is a pointer to SPIR-V code, codeSize must be a multiple of 4", + "page": "vkspec" }, { "vuid": "VUID-VkShaderModuleCreateInfo-pCode-08736", - "text": " If pCode is a pointer to SPIR-V code, pCode must point to valid SPIR-V code, formatted and packed as described by the Khronos SPIR-V Specification" + "text": "If pCode is a pointer to SPIR-V code, pCode must point to valid SPIR-V code, formatted and packed as described by the Khronos SPIR-V Specification", + "page": "vkspec" }, { "vuid": "VUID-VkShaderModuleCreateInfo-pCode-08737", - "text": " If pCode is a pointer to SPIR-V code, pCode must adhere to the validation rules described by the Validation Rules within a Module section of the SPIR-V Environment appendix" + "text": "If pCode is a pointer to SPIR-V code, pCode must adhere to the validation rules described by the Validation Rules within a Module section of the SPIR-V Environment appendix", + "page": "vkspec" }, { "vuid": "VUID-VkShaderModuleCreateInfo-pCode-08738", - "text": " If pCode is a pointer to SPIR-V code, pCode must declare the Shader capability for SPIR-V code" + "text": "If pCode is a pointer to SPIR-V code, pCode must declare the Shader capability for SPIR-V code", + "page": "vkspec" }, { "vuid": "VUID-VkShaderModuleCreateInfo-pCode-08739", - "text": " If pCode is a pointer to SPIR-V code, pCode must not declare any capability that is not supported by the API, as described by the Capabilities section of the SPIR-V Environment appendix" + "text": "If pCode is a pointer to SPIR-V code, pCode must not declare any capability that is not supported by the API, as described by the Capabilities section of the SPIR-V Environment appendix", + "page": "vkspec" }, { "vuid": "VUID-VkShaderModuleCreateInfo-pCode-08740", - "text": " If pCode is a pointer to SPIR-V code, and pCode declares any of the capabilities listed in the SPIR-V Environment appendix, one of the corresponding requirements must be satisfied" + "text": "If pCode is a pointer to SPIR-V code, and pCode declares any of the capabilities listed in the SPIR-V Environment appendix, one of the corresponding requirements must be satisfied", + "page": "vkspec" }, { "vuid": "VUID-VkShaderModuleCreateInfo-pCode-08741", - "text": " If pCode is a pointer to SPIR-V code, pCode must not declare any SPIR-V extension that is not supported by the API, as described by the Extension section of the SPIR-V Environment appendix" + "text": "If pCode is a pointer to SPIR-V code, pCode must not declare any SPIR-V extension that is not supported by the API, as described by the Extension section of the SPIR-V Environment appendix", + "page": "vkspec" }, { "vuid": "VUID-VkShaderModuleCreateInfo-pCode-08742", - "text": " If pCode is a pointer to SPIR-V code, and pCode declares any of the SPIR-V extensions listed in the SPIR-V Environment appendix, one of the corresponding requirements must be satisfied" + "text": "If pCode is a pointer to SPIR-V code, and pCode declares any of the SPIR-V extensions listed in the SPIR-V Environment appendix, one of the corresponding requirements must be satisfied", + "page": "vkspec" }, { "vuid": "VUID-VkShaderModuleCreateInfo-pCode-07912", - "text": " If the VK_NV_glsl_shader extension is not enabled, pCode must be a pointer to SPIR-V code" + "text": "If the VK_NV_glsl_shader extension is not enabled, pCode must be a pointer to SPIR-V code", + "page": "vkspec" }, { "vuid": "VUID-VkShaderModuleCreateInfo-pCode-01379", - "text": " If pCode is a pointer to GLSL code, it must be valid GLSL code written to the GL_KHR_vulkan_glsl GLSL extension specification" + "text": "If pCode is a pointer to GLSL code, it must be valid GLSL code written to the GL_KHR_vulkan_glsl GLSL extension specification", + "page": "vkspec" }, { "vuid": "VUID-VkShaderModuleCreateInfo-codeSize-01085", - "text": " codeSize must be greater than 0" + "text": "codeSize must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-VkShaderModuleCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkShaderModuleCreateInfo-flags-zerobitmask", - "text": " flags must be 0" + "text": "flags must be 0", + "page": "vkspec" }, { "vuid": "VUID-VkShaderModuleCreateInfo-pCode-parameter", - "text": " pCode must be a valid pointer to an array of \\(\\textrm{codeSize} \\over 4\\) uint32_t values" + "text": "pCode must be a valid pointer to an array of \\(\\textrm{codeSize} \\over 4\\) uint32_t values", + "page": "vkspec" } ] }, @@ -10718,11 +13438,13 @@ "core": [ { "vuid": "VUID-VkShaderModuleValidationCacheCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkShaderModuleValidationCacheCreateInfoEXT-validationCache-parameter", - "text": " validationCache must be a valid VkValidationCacheEXT handle" + "text": "validationCache must be a valid VkValidationCacheEXT handle", + "page": "vkspec" } ] }, @@ -10730,27 +13452,33 @@ "core": [ { "vuid": "VUID-vkDestroyShaderModule-shaderModule-01092", - "text": " If VkAllocationCallbacks were provided when shaderModule was created, a compatible set of callbacks must be provided here" + "text": "If VkAllocationCallbacks were provided when shaderModule was created, a compatible set of callbacks must be provided here", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyShaderModule-shaderModule-01093", - "text": " If no VkAllocationCallbacks were provided when shaderModule was created, pAllocator must be NULL" + "text": "If no VkAllocationCallbacks were provided when shaderModule was created, pAllocator must be NULL", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyShaderModule-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyShaderModule-shaderModule-parameter", - "text": " If shaderModule is not VK_NULL_HANDLE, shaderModule must be a valid VkShaderModule handle" + "text": "If shaderModule is not VK_NULL_HANDLE, shaderModule must be a valid VkShaderModule handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyShaderModule-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyShaderModule-shaderModule-parent", - "text": " If shaderModule is a valid handle, it must have been created, allocated, or retrieved from device" + "text": "If shaderModule is a valid handle, it must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -10758,23 +13486,28 @@ "core": [ { "vuid": "VUID-vkGetShaderModuleIdentifierEXT-shaderModuleIdentifier-06884", - "text": " shaderModuleIdentifier feature must be enabled" + "text": "shaderModuleIdentifier feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkGetShaderModuleIdentifierEXT-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetShaderModuleIdentifierEXT-shaderModule-parameter", - "text": " shaderModule must be a valid VkShaderModule handle" + "text": "shaderModule must be a valid VkShaderModule handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetShaderModuleIdentifierEXT-pIdentifier-parameter", - "text": " pIdentifier must be a valid pointer to a VkShaderModuleIdentifierEXT structure" + "text": "pIdentifier must be a valid pointer to a VkShaderModuleIdentifierEXT structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetShaderModuleIdentifierEXT-shaderModule-parent", - "text": " shaderModule must have been created, allocated, or retrieved from device" + "text": "shaderModule must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -10782,19 +13515,23 @@ "core": [ { "vuid": "VUID-vkGetShaderModuleCreateInfoIdentifierEXT-shaderModuleIdentifier-06885", - "text": " shaderModuleIdentifier feature must be enabled" + "text": "shaderModuleIdentifier feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkGetShaderModuleCreateInfoIdentifierEXT-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetShaderModuleCreateInfoIdentifierEXT-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkShaderModuleCreateInfo structure" + "text": "pCreateInfo must be a valid pointer to a valid VkShaderModuleCreateInfo structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetShaderModuleCreateInfoIdentifierEXT-pIdentifier-parameter", - "text": " pIdentifier must be a valid pointer to a VkShaderModuleIdentifierEXT structure" + "text": "pIdentifier must be a valid pointer to a VkShaderModuleIdentifierEXT structure", + "page": "vkspec" } ] }, @@ -10802,11 +13539,13 @@ "core": [ { "vuid": "VUID-VkShaderModuleIdentifierEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkShaderModuleIdentifierEXT-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" } ] }, @@ -10814,27 +13553,33 @@ "core": [ { "vuid": "VUID-vkCmdSetPatchControlPointsEXT-None-08574", - "text": " Either the extendedDynamicState2PatchControlPoints feature or the shaderObject feature or both must be enabled" + "text": "Either the extendedDynamicState2PatchControlPoints feature or the shaderObject feature or both must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetPatchControlPointsEXT-patchControlPoints-04874", - "text": " patchControlPoints must be greater than zero and less than or equal to VkPhysicalDeviceLimits::maxTessellationPatchSize" + "text": "patchControlPoints must be greater than zero and less than or equal to VkPhysicalDeviceLimits::maxTessellationPatchSize", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetPatchControlPointsEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetPatchControlPointsEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetPatchControlPointsEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetPatchControlPointsEXT-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -10842,15 +13587,18 @@ "core": [ { "vuid": "VUID-vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": "physicalDevice must be a valid VkPhysicalDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR-pPropertyCount-parameter", - "text": " pPropertyCount must be a valid pointer to a uint32_t value" + "text": "pPropertyCount must be a valid pointer to a uint32_t value", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR-pProperties-parameter", - "text": " If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkCooperativeMatrixPropertiesKHR structures" + "text": "If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkCooperativeMatrixPropertiesKHR structures", + "page": "vkspec" } ] }, @@ -10858,15 +13606,18 @@ "core": [ { "vuid": "VUID-vkGetPhysicalDeviceCooperativeMatrixPropertiesNV-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": "physicalDevice must be a valid VkPhysicalDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceCooperativeMatrixPropertiesNV-pPropertyCount-parameter", - "text": " pPropertyCount must be a valid pointer to a uint32_t value" + "text": "pPropertyCount must be a valid pointer to a uint32_t value", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceCooperativeMatrixPropertiesNV-pProperties-parameter", - "text": " If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkCooperativeMatrixPropertiesNV structures" + "text": "If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkCooperativeMatrixPropertiesNV structures", + "page": "vkspec" } ] }, @@ -10874,31 +13625,38 @@ "core": [ { "vuid": "VUID-VkCooperativeMatrixPropertiesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkCooperativeMatrixPropertiesKHR-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkCooperativeMatrixPropertiesKHR-AType-parameter", - "text": " AType must be a valid VkComponentTypeKHR value" + "text": "AType must be a valid VkComponentTypeKHR value", + "page": "vkspec" }, { "vuid": "VUID-VkCooperativeMatrixPropertiesKHR-BType-parameter", - "text": " BType must be a valid VkComponentTypeKHR value" + "text": "BType must be a valid VkComponentTypeKHR value", + "page": "vkspec" }, { "vuid": "VUID-VkCooperativeMatrixPropertiesKHR-CType-parameter", - "text": " CType must be a valid VkComponentTypeKHR value" + "text": "CType must be a valid VkComponentTypeKHR value", + "page": "vkspec" }, { "vuid": "VUID-VkCooperativeMatrixPropertiesKHR-ResultType-parameter", - "text": " ResultType must be a valid VkComponentTypeKHR value" + "text": "ResultType must be a valid VkComponentTypeKHR value", + "page": "vkspec" }, { "vuid": "VUID-VkCooperativeMatrixPropertiesKHR-scope-parameter", - "text": " scope must be a valid VkScopeKHR value" + "text": "scope must be a valid VkScopeKHR value", + "page": "vkspec" } ] }, @@ -10906,31 +13664,38 @@ "core": [ { "vuid": "VUID-VkCooperativeMatrixPropertiesNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV" + "text": "sType must be VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV", + "page": "vkspec" }, { "vuid": "VUID-VkCooperativeMatrixPropertiesNV-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkCooperativeMatrixPropertiesNV-AType-parameter", - "text": " AType must be a valid VkComponentTypeNV value" + "text": "AType must be a valid VkComponentTypeNV value", + "page": "vkspec" }, { "vuid": "VUID-VkCooperativeMatrixPropertiesNV-BType-parameter", - "text": " BType must be a valid VkComponentTypeNV value" + "text": "BType must be a valid VkComponentTypeNV value", + "page": "vkspec" }, { "vuid": "VUID-VkCooperativeMatrixPropertiesNV-CType-parameter", - "text": " CType must be a valid VkComponentTypeNV value" + "text": "CType must be a valid VkComponentTypeNV value", + "page": "vkspec" }, { "vuid": "VUID-VkCooperativeMatrixPropertiesNV-DType-parameter", - "text": " DType must be a valid VkComponentTypeNV value" + "text": "DType must be a valid VkComponentTypeNV value", + "page": "vkspec" }, { "vuid": "VUID-VkCooperativeMatrixPropertiesNV-scope-parameter", - "text": " scope must be a valid VkScopeNV value" + "text": "scope must be a valid VkScopeNV value", + "page": "vkspec" } ] }, @@ -10938,19 +13703,23 @@ "core": [ { "vuid": "VUID-vkCreateValidationCacheEXT-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkCreateValidationCacheEXT-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkValidationCacheCreateInfoEXT structure" + "text": "pCreateInfo must be a valid pointer to a valid VkValidationCacheCreateInfoEXT structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateValidationCacheEXT-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateValidationCacheEXT-pValidationCache-parameter", - "text": " pValidationCache must be a valid pointer to a VkValidationCacheEXT handle" + "text": "pValidationCache must be a valid pointer to a VkValidationCacheEXT handle", + "page": "vkspec" } ] }, @@ -10958,27 +13727,33 @@ "core": [ { "vuid": "VUID-VkValidationCacheCreateInfoEXT-initialDataSize-01534", - "text": " If initialDataSize is not 0, it must be equal to the size of pInitialData, as returned by vkGetValidationCacheDataEXT when pInitialData was originally retrieved" + "text": "If initialDataSize is not 0, it must be equal to the size of pInitialData, as returned by vkGetValidationCacheDataEXT when pInitialData was originally retrieved", + "page": "vkspec" }, { "vuid": "VUID-VkValidationCacheCreateInfoEXT-initialDataSize-01535", - "text": " If initialDataSize is not 0, pInitialData must have been retrieved from a previous call to vkGetValidationCacheDataEXT" + "text": "If initialDataSize is not 0, pInitialData must have been retrieved from a previous call to vkGetValidationCacheDataEXT", + "page": "vkspec" }, { "vuid": "VUID-VkValidationCacheCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkValidationCacheCreateInfoEXT-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkValidationCacheCreateInfoEXT-flags-zerobitmask", - "text": " flags must be 0" + "text": "flags must be 0", + "page": "vkspec" }, { "vuid": "VUID-VkValidationCacheCreateInfoEXT-pInitialData-parameter", - "text": " If initialDataSize is not 0, pInitialData must be a valid pointer to an array of initialDataSize bytes" + "text": "If initialDataSize is not 0, pInitialData must be a valid pointer to an array of initialDataSize bytes", + "page": "vkspec" } ] }, @@ -10986,31 +13761,38 @@ "core": [ { "vuid": "VUID-vkMergeValidationCachesEXT-dstCache-01536", - "text": " dstCache must not appear in the list of source caches" + "text": "dstCache must not appear in the list of source caches", + "page": "vkspec" }, { "vuid": "VUID-vkMergeValidationCachesEXT-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkMergeValidationCachesEXT-dstCache-parameter", - "text": " dstCache must be a valid VkValidationCacheEXT handle" + "text": "dstCache must be a valid VkValidationCacheEXT handle", + "page": "vkspec" }, { "vuid": "VUID-vkMergeValidationCachesEXT-pSrcCaches-parameter", - "text": " pSrcCaches must be a valid pointer to an array of srcCacheCount valid VkValidationCacheEXT handles" + "text": "pSrcCaches must be a valid pointer to an array of srcCacheCount valid VkValidationCacheEXT handles", + "page": "vkspec" }, { "vuid": "VUID-vkMergeValidationCachesEXT-srcCacheCount-arraylength", - "text": " srcCacheCount must be greater than 0" + "text": "srcCacheCount must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-vkMergeValidationCachesEXT-dstCache-parent", - "text": " dstCache must have been created, allocated, or retrieved from device" + "text": "dstCache must have been created, allocated, or retrieved from device", + "page": "vkspec" }, { "vuid": "VUID-vkMergeValidationCachesEXT-pSrcCaches-parent", - "text": " Each element of pSrcCaches must have been created, allocated, or retrieved from device" + "text": "Each element of pSrcCaches must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -11018,23 +13800,28 @@ "core": [ { "vuid": "VUID-vkGetValidationCacheDataEXT-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetValidationCacheDataEXT-validationCache-parameter", - "text": " validationCache must be a valid VkValidationCacheEXT handle" + "text": "validationCache must be a valid VkValidationCacheEXT handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetValidationCacheDataEXT-pDataSize-parameter", - "text": " pDataSize must be a valid pointer to a size_t value" + "text": "pDataSize must be a valid pointer to a size_t value", + "page": "vkspec" }, { "vuid": "VUID-vkGetValidationCacheDataEXT-pData-parameter", - "text": " If the value referenced by pDataSize is not 0, and pData is not NULL, pData must be a valid pointer to an array of pDataSize bytes" + "text": "If the value referenced by pDataSize is not 0, and pData is not NULL, pData must be a valid pointer to an array of pDataSize bytes", + "page": "vkspec" }, { "vuid": "VUID-vkGetValidationCacheDataEXT-validationCache-parent", - "text": " validationCache must have been created, allocated, or retrieved from device" + "text": "validationCache must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -11042,27 +13829,33 @@ "core": [ { "vuid": "VUID-vkDestroyValidationCacheEXT-validationCache-01537", - "text": " If VkAllocationCallbacks were provided when validationCache was created, a compatible set of callbacks must be provided here" + "text": "If VkAllocationCallbacks were provided when validationCache was created, a compatible set of callbacks must be provided here", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyValidationCacheEXT-validationCache-01538", - "text": " If no VkAllocationCallbacks were provided when validationCache was created, pAllocator must be NULL" + "text": "If no VkAllocationCallbacks were provided when validationCache was created, pAllocator must be NULL", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyValidationCacheEXT-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyValidationCacheEXT-validationCache-parameter", - "text": " If validationCache is not VK_NULL_HANDLE, validationCache must be a valid VkValidationCacheEXT handle" + "text": "If validationCache is not VK_NULL_HANDLE, validationCache must be a valid VkValidationCacheEXT handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyValidationCacheEXT-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyValidationCacheEXT-validationCache-parent", - "text": " If validationCache is a valid handle, it must have been created, allocated, or retrieved from device" + "text": "If validationCache is a valid handle, it must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -11070,43 +13863,53 @@ "core": [ { "vuid": "VUID-vkCreateComputePipelines-flags-00695", - "text": " If the flags member of any element of pCreateInfos contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and the basePipelineIndex member of that same element is not -1, basePipelineIndex must be less than the index into pCreateInfos that corresponds to that element" + "text": "If the flags member of any element of pCreateInfos contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and the basePipelineIndex member of that same element is not -1, basePipelineIndex must be less than the index into pCreateInfos that corresponds to that element", + "page": "vkspec" }, { "vuid": "VUID-vkCreateComputePipelines-flags-00696", - "text": " If the flags member of any element of pCreateInfos contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, the base pipeline must have been created with the VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT flag set" + "text": "If the flags member of any element of pCreateInfos contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, the base pipeline must have been created with the VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT flag set", + "page": "vkspec" }, { "vuid": "VUID-vkCreateComputePipelines-pipelineCache-02873", - "text": " If pipelineCache was created with VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT, host access to pipelineCache must be externally synchronized" + "text": "If pipelineCache was created with VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT, host access to pipelineCache must be externally synchronized", + "page": "vkspec" }, { "vuid": "VUID-vkCreateComputePipelines-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkCreateComputePipelines-pipelineCache-parameter", - "text": " If pipelineCache is not VK_NULL_HANDLE, pipelineCache must be a valid VkPipelineCache handle" + "text": "If pipelineCache is not VK_NULL_HANDLE, pipelineCache must be a valid VkPipelineCache handle", + "page": "vkspec" }, { "vuid": "VUID-vkCreateComputePipelines-pCreateInfos-parameter", - "text": " pCreateInfos must be a valid pointer to an array of createInfoCount valid VkComputePipelineCreateInfo structures" + "text": "pCreateInfos must be a valid pointer to an array of createInfoCount valid VkComputePipelineCreateInfo structures", + "page": "vkspec" }, { "vuid": "VUID-vkCreateComputePipelines-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateComputePipelines-pPipelines-parameter", - "text": " pPipelines must be a valid pointer to an array of createInfoCount VkPipeline handles" + "text": "pPipelines must be a valid pointer to an array of createInfoCount VkPipeline handles", + "page": "vkspec" }, { "vuid": "VUID-vkCreateComputePipelines-createInfoCount-arraylength", - "text": " createInfoCount must be greater than 0" + "text": "createInfoCount must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-vkCreateComputePipelines-pipelineCache-parent", - "text": " If pipelineCache is a valid handle, it must have been created, allocated, or retrieved from device" + "text": "If pipelineCache is a valid handle, it must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -11114,135 +13917,168 @@ "core": [ { "vuid": "VUID-VkComputePipelineCreateInfo-flags-07984", - "text": " If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineIndex is -1, basePipelineHandle must be a valid handle to a compute VkPipeline" + "text": "If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineIndex is -1, basePipelineHandle must be a valid compute VkPipeline handle", + "page": "vkspec" }, { "vuid": "VUID-VkComputePipelineCreateInfo-flags-07985", - "text": " If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineHandle is VK_NULL_HANDLE, basePipelineIndex must be a valid index into the calling command’s pCreateInfos parameter" + "text": "If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineHandle is VK_NULL_HANDLE, basePipelineIndex must be a valid index into the calling command’s pCreateInfos parameter", + "page": "vkspec" }, { "vuid": "VUID-VkComputePipelineCreateInfo-flags-07986", - "text": " If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, basePipelineIndex must be -1 or basePipelineHandle must be VK_NULL_HANDLE" + "text": "If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, basePipelineIndex must be -1 or basePipelineHandle must be VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-VkComputePipelineCreateInfo-layout-07987", - "text": " If a push constant block is declared in a shader, a push constant range in layout must match both the shader stage and range" + "text": "If a push constant block is declared in a shader, a push constant range in layout must match both the shader stage and range", + "page": "vkspec" }, { "vuid": "VUID-VkComputePipelineCreateInfo-layout-07988", - "text": " If a resource variables is declared in a shader, a descriptor slot in layout must match the shader stage" + "text": "If a resource variables is declared in a shader, a descriptor slot in layout must match the shader stage", + "page": "vkspec" }, { "vuid": "VUID-VkComputePipelineCreateInfo-layout-07990", - "text": " If a resource variables is declared in a shader, and the descriptor type is not VK_DESCRIPTOR_TYPE_MUTABLE_EXT, a descriptor slot in layout must match the descriptor type" + "text": "If a resource variables is declared in a shader, and the descriptor type is not VK_DESCRIPTOR_TYPE_MUTABLE_EXT, a descriptor slot in layout must match the descriptor type", + "page": "vkspec" }, { "vuid": "VUID-VkComputePipelineCreateInfo-layout-07991", - "text": " If a resource variables is declared in a shader as an array, a descriptor slot in layout must match the descriptor count" + "text": "If a resource variables is declared in a shader as an array, a descriptor slot in layout must match the descriptor count", + "page": "vkspec" }, { "vuid": "VUID-VkComputePipelineCreateInfo-flags-03365", - "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR" + "text": "flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkComputePipelineCreateInfo-flags-03366", - "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR" + "text": "flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkComputePipelineCreateInfo-flags-03367", - "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR" + "text": "flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkComputePipelineCreateInfo-flags-03368", - "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR" + "text": "flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkComputePipelineCreateInfo-flags-03369", - "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR" + "text": "flags must not include VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkComputePipelineCreateInfo-flags-03370", - "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR" + "text": "flags must not include VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkComputePipelineCreateInfo-flags-03576", - "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR" + "text": "flags must not include VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkComputePipelineCreateInfo-flags-04945", - "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV" + "text": "flags must not include VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV", + "page": "vkspec" }, { "vuid": "VUID-VkComputePipelineCreateInfo-flags-09007", - "text": " If flags includes VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV, then the VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV::deviceGeneratedComputePipelines feature must be enabled" + "text": "If flags includes VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV, then the VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV::deviceGeneratedComputePipelines feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-VkComputePipelineCreateInfo-flags-09008", - "text": " If flags includes VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV, then the pNext chain must include a pointer to a valid instance of VkComputePipelineIndirectBufferInfoNV specifying the address where the pipeline’s metadata will be saved" + "text": "If flags includes VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV, then the pNext chain must include a pointer to a valid instance of VkComputePipelineIndirectBufferInfoNV specifying the address where the pipeline’s metadata will be saved", + "page": "vkspec" }, { "vuid": "VUID-VkComputePipelineCreateInfo-pipelineCreationCacheControl-02875", - "text": " If the pipelineCreationCacheControl feature is not enabled, flags must not include VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT or VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT" + "text": "If the pipelineCreationCacheControl feature is not enabled, flags must not include VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT or VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkComputePipelineCreateInfo-stage-00701", - "text": " The stage member of stage must be VK_SHADER_STAGE_COMPUTE_BIT" + "text": "The stage member of stage must be VK_SHADER_STAGE_COMPUTE_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkComputePipelineCreateInfo-stage-00702", - "text": " The shader code for the entry point identified by stage and the rest of the state identified by this structure must adhere to the pipeline linking rules described in the Shader Interfaces chapter" + "text": "The shader code for the entry point identified by stage and the rest of the state identified by this structure must adhere to the pipeline linking rules described in the Shader Interfaces chapter", + "page": "vkspec" }, { "vuid": "VUID-VkComputePipelineCreateInfo-layout-01687", - "text": " The number of resources in layout accessible to the compute shader stage must be less than or equal to VkPhysicalDeviceLimits::maxPerStageResources" + "text": "The number of resources in layout accessible to the compute shader stage must be less than or equal to VkPhysicalDeviceLimits::maxPerStageResources", + "page": "vkspec" }, { "vuid": "VUID-VkComputePipelineCreateInfo-shaderEnqueue-09177", - "text": " If shaderEnqueue is not enabled, flags must not include VK_PIPELINE_CREATE_LIBRARY_BIT_KHR" + "text": "If shaderEnqueue is not enabled, flags must not include VK_PIPELINE_CREATE_LIBRARY_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkComputePipelineCreateInfo-flags-09178", - "text": " If flags does not include VK_PIPELINE_CREATE_LIBRARY_BIT_KHR, the shader specified by stage must not declare the ShaderEnqueueAMDX capability" + "text": "If flags does not include VK_PIPELINE_CREATE_LIBRARY_BIT_KHR, the shader specified by stage must not declare the ShaderEnqueueAMDX capability", + "page": "vkspec" }, { "vuid": "VUID-VkComputePipelineCreateInfo-pipelineStageCreationFeedbackCount-06566", - "text": " If VkPipelineCreationFeedbackCreateInfo::pipelineStageCreationFeedbackCount is not 0, it must be 1" + "text": "If VkPipelineCreationFeedbackCreateInfo::pipelineStageCreationFeedbackCount is not 0, it must be 1", + "page": "vkspec" }, { "vuid": "VUID-VkComputePipelineCreateInfo-flags-07367", - "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT" + "text": "flags must not include VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkComputePipelineCreateInfo-flags-07996", - "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV" + "text": "flags must not include VK_PIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV", + "page": "vkspec" }, { "vuid": "VUID-VkComputePipelineCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkComputePipelineCreateInfo-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 VkPipelineCompilerControlCreateInfoAMD, VkPipelineCreateFlags2CreateInfoKHR, VkPipelineCreationFeedbackCreateInfo, VkPipelineRobustnessCreateInfoEXT, or VkSubpassShadingPipelineCreateInfoHUAWEI" + "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 VkPipelineCompilerControlCreateInfoAMD, VkPipelineCreateFlags2CreateInfoKHR, VkPipelineCreationFeedbackCreateInfo, VkPipelineRobustnessCreateInfoEXT, or VkSubpassShadingPipelineCreateInfoHUAWEI", + "page": "vkspec" }, { "vuid": "VUID-VkComputePipelineCreateInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" }, { "vuid": "VUID-VkComputePipelineCreateInfo-flags-parameter", - "text": " flags must be a valid combination of VkPipelineCreateFlagBits values" + "text": "flags must be a valid combination of VkPipelineCreateFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkComputePipelineCreateInfo-stage-parameter", - "text": " stage must be a valid VkPipelineShaderStageCreateInfo structure" + "text": "stage must be a valid VkPipelineShaderStageCreateInfo structure", + "page": "vkspec" }, { "vuid": "VUID-VkComputePipelineCreateInfo-layout-parameter", - "text": " layout must be a valid VkPipelineLayout handle" + "text": "layout must be a valid VkPipelineLayout handle", + "page": "vkspec" }, { "vuid": "VUID-VkComputePipelineCreateInfo-commonparent", - "text": " Both of basePipelineHandle, and layout that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of basePipelineHandle, and layout that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -11250,175 +14086,208 @@ "core": [ { "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-00704", - "text": " If the geometryShader feature is not enabled, stage must not be VK_SHADER_STAGE_GEOMETRY_BIT" + "text": "If the geometryShader feature is not enabled, stage must not be VK_SHADER_STAGE_GEOMETRY_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-00705", - "text": " If the tessellationShader feature is not enabled, stage must not be VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT or VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT" + "text": "If the tessellationShader feature is not enabled, stage must not be VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT or VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-02091", - "text": " If the meshShaders feature is not enabled, stage must not be VK_SHADER_STAGE_MESH_BIT_EXT" + "text": "If the meshShaders feature is not enabled, stage must not be VK_SHADER_STAGE_MESH_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-02092", - "text": " If the taskShaders feature is not enabled, stage must not be VK_SHADER_STAGE_TASK_BIT_EXT" + "text": "If the taskShaders feature is not enabled, stage must not be VK_SHADER_STAGE_TASK_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineShaderStageCreateInfo-clustercullingShader-07813", - "text": " If the clustercullingShader feature is not enabled, stage must not be VK_SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI" + "text": "If the clustercullingShader feature is not enabled, stage must not be VK_SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-00706", - "text": " stage must not be VK_SHADER_STAGE_ALL_GRAPHICS, or VK_SHADER_STAGE_ALL" + "text": "stage must not be VK_SHADER_STAGE_ALL_GRAPHICS, or VK_SHADER_STAGE_ALL", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineShaderStageCreateInfo-pName-00707", - "text": " pName must be the name of an OpEntryPoint in module with an execution model that matches stage" + "text": "pName must be the name of an OpEntryPoint in module with an execution model that matches stage", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineShaderStageCreateInfo-maxClipDistances-00708", - "text": " If the identified entry point includes any variable in its interface that is declared with the ClipDistance BuiltIn decoration, that variable must not have an array size greater than VkPhysicalDeviceLimits::maxClipDistances" + "text": "If the identified entry point includes any variable in its interface that is declared with the ClipDistance BuiltIn decoration, that variable must not have an array size greater than VkPhysicalDeviceLimits::maxClipDistances", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineShaderStageCreateInfo-maxCullDistances-00709", - "text": " If the identified entry point includes any variable in its interface that is declared with the CullDistance BuiltIn decoration, that variable must not have an array size greater than VkPhysicalDeviceLimits::maxCullDistances" + "text": "If the identified entry point includes any variable in its interface that is declared with the CullDistance BuiltIn decoration, that variable must not have an array size greater than VkPhysicalDeviceLimits::maxCullDistances", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineShaderStageCreateInfo-maxCombinedClipAndCullDistances-00710", - "text": " If the identified entry point includes any variables in its interface that are declared with the ClipDistance or CullDistance BuiltIn decoration, those variables must not have array sizes which sum to more than VkPhysicalDeviceLimits::maxCombinedClipAndCullDistances" + "text": "If the identified entry point includes any variables in its interface that are declared with the ClipDistance or CullDistance BuiltIn decoration, those variables must not have array sizes which sum to more than VkPhysicalDeviceLimits::maxCombinedClipAndCullDistances", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineShaderStageCreateInfo-maxSampleMaskWords-00711", - "text": " If the identified entry point includes any variable in its interface that is declared with the SampleMask BuiltIn decoration, that variable must not have an array size greater than VkPhysicalDeviceLimits::maxSampleMaskWords" - }, - { - "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-00712", - "text": " If stage is VK_SHADER_STAGE_VERTEX_BIT, the identified entry point must not include any input variable in its interface that is decorated with CullDistance" + "text": "If the identified entry point includes any variable in its interface that is declared with the SampleMask BuiltIn decoration, that variable must not have an array size greater than VkPhysicalDeviceLimits::maxSampleMaskWords", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-00713", - "text": " If stage is VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT or VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, and the identified entry point has an OpExecutionMode instruction specifying a patch size with OutputVertices, the patch size must be greater than 0 and less than or equal to VkPhysicalDeviceLimits::maxTessellationPatchSize" + "text": "If stage is VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT or VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, and the identified entry point has an OpExecutionMode instruction specifying a patch size with OutputVertices, the patch size must be greater than 0 and less than or equal to VkPhysicalDeviceLimits::maxTessellationPatchSize", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-00714", - "text": " If stage is VK_SHADER_STAGE_GEOMETRY_BIT, the identified entry point must have an OpExecutionMode instruction specifying a maximum output vertex count that is greater than 0 and less than or equal to VkPhysicalDeviceLimits::maxGeometryOutputVertices" + "text": "If stage is VK_SHADER_STAGE_GEOMETRY_BIT, the identified entry point must have an OpExecutionMode instruction specifying a maximum output vertex count that is greater than 0 and less than or equal to VkPhysicalDeviceLimits::maxGeometryOutputVertices", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-00715", - "text": " If stage is VK_SHADER_STAGE_GEOMETRY_BIT, the identified entry point must have an OpExecutionMode instruction specifying an invocation count that is greater than 0 and less than or equal to VkPhysicalDeviceLimits::maxGeometryShaderInvocations" + "text": "If stage is VK_SHADER_STAGE_GEOMETRY_BIT, the identified entry point must have an OpExecutionMode instruction specifying an invocation count that is greater than 0 and less than or equal to VkPhysicalDeviceLimits::maxGeometryShaderInvocations", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-02596", - "text": " If stage is either VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, or VK_SHADER_STAGE_GEOMETRY_BIT, and the identified entry point writes to Layer for any primitive, it must write the same value to Layer for all vertices of a given primitive" + "text": "If stage is either VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, or VK_SHADER_STAGE_GEOMETRY_BIT, and the identified entry point writes to Layer for any primitive, it must write the same value to Layer for all vertices of a given primitive", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-02597", - "text": " If stage is either VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, or VK_SHADER_STAGE_GEOMETRY_BIT, and the identified entry point writes to ViewportIndex for any primitive, it must write the same value to ViewportIndex for all vertices of a given primitive" - }, - { - "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-00718", - "text": " If stage is VK_SHADER_STAGE_FRAGMENT_BIT, the identified entry point must not include any output variables in its interface decorated with CullDistance" + "text": "If stage is either VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, or VK_SHADER_STAGE_GEOMETRY_BIT, and the identified entry point writes to ViewportIndex for any primitive, it must write the same value to ViewportIndex for all vertices of a given primitive", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-06685", - "text": " If stage is VK_SHADER_STAGE_FRAGMENT_BIT, and the identified entry point writes to FragDepth in any execution path, all execution paths that are not exclusive to helper invocations must either discard the fragment, or write or initialize the value of FragDepth" + "text": "If stage is VK_SHADER_STAGE_FRAGMENT_BIT, and the identified entry point writes to FragDepth in any execution path, all execution paths that are not exclusive to helper invocations must either discard the fragment, or write or initialize the value of FragDepth", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-06686", - "text": " If stage is VK_SHADER_STAGE_FRAGMENT_BIT, and the identified entry point writes to FragStencilRefEXT in any execution path, all execution paths that are not exclusive to helper invocations must either discard the fragment, or write or initialize the value of FragStencilRefEXT" + "text": "If stage is VK_SHADER_STAGE_FRAGMENT_BIT, and the identified entry point writes to FragStencilRefEXT in any execution path, all execution paths that are not exclusive to helper invocations must either discard the fragment, or write or initialize the value of FragStencilRefEXT", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineShaderStageCreateInfo-flags-02784", - "text": " If flags has the VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT flag set, the subgroupSizeControl feature must be enabled" + "text": "If flags has the VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT flag set, the subgroupSizeControl feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineShaderStageCreateInfo-flags-02785", - "text": " If flags has the VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT flag set, the computeFullSubgroups feature must be enabled" + "text": "If flags has the VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT flag set, the computeFullSubgroups feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineShaderStageCreateInfo-flags-08988", - "text": " If flags includes VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT, stage must be one of VK_SHADER_STAGE_MESH_BIT_EXT, VK_SHADER_STAGE_TASK_BIT_EXT, or VK_SHADER_STAGE_COMPUTE_BIT" + "text": "If flags includes VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT, stage must be one of VK_SHADER_STAGE_MESH_BIT_EXT, VK_SHADER_STAGE_TASK_BIT_EXT, or VK_SHADER_STAGE_COMPUTE_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineShaderStageCreateInfo-pNext-02754", - "text": " If a VkPipelineShaderStageRequiredSubgroupSizeCreateInfo structure is included in the pNext chain, flags must not have the VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT flag set" + "text": "If a VkPipelineShaderStageRequiredSubgroupSizeCreateInfo structure is included in the pNext chain, flags must not have the VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT flag set", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineShaderStageCreateInfo-pNext-02755", - "text": " If a VkPipelineShaderStageRequiredSubgroupSizeCreateInfo structure is included in the pNext chain, the subgroupSizeControl feature must be enabled, and stage must be a valid bit specified in requiredSubgroupSizeStages" + "text": "If a VkPipelineShaderStageRequiredSubgroupSizeCreateInfo structure is included in the pNext chain, the subgroupSizeControl feature must be enabled, and stage must be a valid bit specified in requiredSubgroupSizeStages", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineShaderStageCreateInfo-pNext-02756", - "text": " If a VkPipelineShaderStageRequiredSubgroupSizeCreateInfo structure is included in the pNext chain and stage is VK_SHADER_STAGE_COMPUTE_BIT, VK_SHADER_STAGE_MESH_BIT_EXT, or VK_SHADER_STAGE_TASK_BIT_EXT, the local workgroup size of the shader must be less than or equal to the product of VkPipelineShaderStageRequiredSubgroupSizeCreateInfo::requiredSubgroupSize and maxComputeWorkgroupSubgroups" + "text": "If a VkPipelineShaderStageRequiredSubgroupSizeCreateInfo structure is included in the pNext chain and stage is VK_SHADER_STAGE_COMPUTE_BIT, VK_SHADER_STAGE_MESH_BIT_EXT, or VK_SHADER_STAGE_TASK_BIT_EXT, the local workgroup size of the shader must be less than or equal to the product of VkPipelineShaderStageRequiredSubgroupSizeCreateInfo::requiredSubgroupSize and maxComputeWorkgroupSubgroups", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineShaderStageCreateInfo-pNext-02757", - "text": " If a VkPipelineShaderStageRequiredSubgroupSizeCreateInfo structure is included in the pNext chain, and flags has the VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT flag set, the local workgroup size in the X dimension of the pipeline must be a multiple of VkPipelineShaderStageRequiredSubgroupSizeCreateInfo::requiredSubgroupSize" + "text": "If a VkPipelineShaderStageRequiredSubgroupSizeCreateInfo structure is included in the pNext chain, and flags has the VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT flag set, the local workgroup size in the X dimension of the pipeline must be a multiple of VkPipelineShaderStageRequiredSubgroupSizeCreateInfo::requiredSubgroupSize", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineShaderStageCreateInfo-flags-02758", - "text": " If flags has both the VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT and VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT flags set, the local workgroup size in the X dimension of the pipeline must be a multiple of maxSubgroupSize" + "text": "If flags has both the VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT and VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT flags set, the local workgroup size in the X dimension of the pipeline must be a multiple of maxSubgroupSize", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineShaderStageCreateInfo-flags-02759", - "text": " If flags has the VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT flag set and flags does not have the VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT flag set and no VkPipelineShaderStageRequiredSubgroupSizeCreateInfo structure is included in the pNext chain, the local workgroup size in the X dimension of the pipeline must be a multiple of subgroupSize" + "text": "If flags has the VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT flag set and flags does not have the VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT flag set and no VkPipelineShaderStageRequiredSubgroupSizeCreateInfo structure is included in the pNext chain, the local workgroup size in the X dimension of the pipeline must be a multiple of subgroupSize", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineShaderStageCreateInfo-module-08987", - "text": " If module uses the OpTypeCooperativeMatrixKHR instruction with a Scope equal to Subgroup, then the local workgroup size in the X dimension of the pipeline must be a multiple of subgroupSize." - }, - { - "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-06844", - "text": " If a shader module identifier is specified for this stage, a VkShaderModuleCreateInfo structure must not be present in the pNext chain" - }, - { - "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-06845", - "text": " If a shader module identifier is not specified for this stage, module must be a valid VkShaderModule or there must be a valid VkShaderModuleCreateInfo structure in the pNext chain" + "text": "If module uses the OpTypeCooperativeMatrixKHR instruction with a Scope equal to Subgroup, then the local workgroup size in the X dimension of the pipeline must be a multiple of subgroupSize.", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-08771", - "text": " If a shader module identifier is not specified for this stage, and neither the maintenance5 nor graphicsPipelineLibrary feature are enabled, module must be a valid VkShaderModule" + "text": "If a shader module identifier is not specified for this stage, module must be a valid VkShaderModule if none of the following features are enabled:", + "page": "vkspec" + }, + { + "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-06845", + "text": "If a shader module identifier is not specified for this stage, module must be a valid VkShaderModule, or there must be a valid VkShaderModuleCreateInfo structure in the pNext chain", + "page": "vkspec" + }, + { + "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-06844", + "text": "If a shader module identifier is specified for this stage, a VkShaderModuleCreateInfo structure must not be present in the pNext chain", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-06848", - "text": " If a shader module identifier is specified for this stage, module must be VK_NULL_HANDLE" + "text": "If a shader module identifier is specified for this stage, module must be VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineShaderStageCreateInfo-pSpecializationInfo-06849", - "text": " If a shader module identifier is not specified, the shader code used by the pipeline must be valid as described by the Khronos SPIR-V Specification after applying the specializations provided in pSpecializationInfo, if any, and then converting all specialization constants into fixed constants" + "text": "If a shader module identifier is not specified, the shader code used by the pipeline must be valid as described by the Khronos SPIR-V Specification after applying the specializations provided in pSpecializationInfo, if any, and then converting all specialization constants into fixed constants", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineShaderStageCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineShaderStageCreateInfo-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 VkDebugUtilsObjectNameInfoEXT, VkPipelineRobustnessCreateInfoEXT, VkPipelineShaderStageModuleIdentifierCreateInfoEXT, VkPipelineShaderStageNodeCreateInfoAMDX, VkPipelineShaderStageRequiredSubgroupSizeCreateInfo, VkShaderModuleCreateInfo, or VkShaderModuleValidationCacheCreateInfoEXT" + "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 VkDebugUtilsObjectNameInfoEXT, VkPipelineRobustnessCreateInfoEXT, VkPipelineShaderStageModuleIdentifierCreateInfoEXT, VkPipelineShaderStageNodeCreateInfoAMDX, VkPipelineShaderStageRequiredSubgroupSizeCreateInfo, VkShaderModuleCreateInfo, or VkShaderModuleValidationCacheCreateInfoEXT", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineShaderStageCreateInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineShaderStageCreateInfo-flags-parameter", - "text": " flags must be a valid combination of VkPipelineShaderStageCreateFlagBits values" + "text": "flags must be a valid combination of VkPipelineShaderStageCreateFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-parameter", - "text": " stage must be a valid VkShaderStageFlagBits value" + "text": "stage must be a valid VkShaderStageFlagBits value", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineShaderStageCreateInfo-module-parameter", - "text": " If module is not VK_NULL_HANDLE, module must be a valid VkShaderModule handle" + "text": "If module is not VK_NULL_HANDLE, module must be a valid VkShaderModule handle", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineShaderStageCreateInfo-pName-parameter", - "text": " pName must be a null-terminated UTF-8 string" + "text": "pName must be a null-terminated UTF-8 string", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineShaderStageCreateInfo-pSpecializationInfo-parameter", - "text": " If pSpecializationInfo is not NULL, pSpecializationInfo must be a valid pointer to a valid VkSpecializationInfo structure" + "text": "If pSpecializationInfo is not NULL, pSpecializationInfo must be a valid pointer to a valid VkSpecializationInfo structure", + "page": "vkspec" } ] }, @@ -11426,19 +14295,23 @@ "core": [ { "vuid": "VUID-VkPipelineShaderStageRequiredSubgroupSizeCreateInfo-requiredSubgroupSize-02760", - "text": " requiredSubgroupSize must be a power-of-two integer" + "text": "requiredSubgroupSize must be a power-of-two integer", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineShaderStageRequiredSubgroupSizeCreateInfo-requiredSubgroupSize-02761", - "text": " requiredSubgroupSize must be greater or equal to minSubgroupSize" + "text": "requiredSubgroupSize must be greater or equal to minSubgroupSize", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineShaderStageRequiredSubgroupSizeCreateInfo-requiredSubgroupSize-02762", - "text": " requiredSubgroupSize must be less than or equal to maxSubgroupSize" + "text": "requiredSubgroupSize must be less than or equal to maxSubgroupSize", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineShaderStageRequiredSubgroupSizeCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO", + "page": "vkspec" } ] }, @@ -11446,11 +14319,13 @@ "core": [ { "vuid": "VUID-VkSubpassShadingPipelineCreateInfoHUAWEI-subpass-04946", - "text": " subpass must be created with VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI bind point" + "text": "subpass must be created with VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI bind point", + "page": "vkspec" }, { "vuid": "VUID-VkSubpassShadingPipelineCreateInfoHUAWEI-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI" + "text": "sType must be VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI", + "page": "vkspec" } ] }, @@ -11458,19 +14333,23 @@ "core": [ { "vuid": "VUID-vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI-renderpass-parameter", - "text": " renderpass must be a valid VkRenderPass handle" + "text": "renderpass must be a valid VkRenderPass handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI-pMaxWorkgroupSize-parameter", - "text": " pMaxWorkgroupSize must be a valid pointer to a VkExtent2D structure" + "text": "pMaxWorkgroupSize must be a valid pointer to a VkExtent2D structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI-renderpass-parent", - "text": " renderpass must have been created, allocated, or retrieved from device" + "text": "renderpass must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -11478,59 +14357,73 @@ "core": [ { "vuid": "VUID-VkPipelineRobustnessCreateInfoEXT-pipelineRobustness-06926", - "text": " If the pipelineRobustness feature is not enabled, storageBuffers must be VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT" + "text": "If the pipelineRobustness feature is not enabled, storageBuffers must be VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineRobustnessCreateInfoEXT-pipelineRobustness-06927", - "text": " If the pipelineRobustness feature is not enabled, uniformBuffers must be VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT" + "text": "If the pipelineRobustness feature is not enabled, uniformBuffers must be VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineRobustnessCreateInfoEXT-pipelineRobustness-06928", - "text": " If the pipelineRobustness feature is not enabled, vertexInputs must be VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT" + "text": "If the pipelineRobustness feature is not enabled, vertexInputs must be VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineRobustnessCreateInfoEXT-pipelineRobustness-06929", - "text": " If the pipelineRobustness feature is not enabled, images must be VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT" + "text": "If the pipelineRobustness feature is not enabled, images must be VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineRobustnessCreateInfoEXT-robustImageAccess-06930", - "text": " If the robustImageAccess feature is not supported, images must not be VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT" + "text": "If the robustImageAccess feature is not supported, images must not be VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineRobustnessCreateInfoEXT-robustBufferAccess2-06931", - "text": " If the robustBufferAccess2 feature is not supported, storageBuffers must not be VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT" + "text": "If the robustBufferAccess2 feature is not supported, storageBuffers must not be VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineRobustnessCreateInfoEXT-robustBufferAccess2-06932", - "text": " If the robustBufferAccess2 feature is not supported, uniformBuffers must not be VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT" + "text": "If the robustBufferAccess2 feature is not supported, uniformBuffers must not be VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineRobustnessCreateInfoEXT-robustBufferAccess2-06933", - "text": " If the robustBufferAccess2 feature is not supported, vertexInputs must not be VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT" + "text": "If the robustBufferAccess2 feature is not supported, vertexInputs must not be VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineRobustnessCreateInfoEXT-robustImageAccess2-06934", - "text": " If the robustImageAccess2 feature is not supported, images must not be VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT" + "text": "If the robustImageAccess2 feature is not supported, images must not be VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineRobustnessCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineRobustnessCreateInfoEXT-storageBuffers-parameter", - "text": " storageBuffers must be a valid VkPipelineRobustnessBufferBehaviorEXT value" + "text": "storageBuffers must be a valid VkPipelineRobustnessBufferBehaviorEXT value", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineRobustnessCreateInfoEXT-uniformBuffers-parameter", - "text": " uniformBuffers must be a valid VkPipelineRobustnessBufferBehaviorEXT value" + "text": "uniformBuffers must be a valid VkPipelineRobustnessBufferBehaviorEXT value", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineRobustnessCreateInfoEXT-vertexInputs-parameter", - "text": " vertexInputs must be a valid VkPipelineRobustnessBufferBehaviorEXT value" + "text": "vertexInputs must be a valid VkPipelineRobustnessBufferBehaviorEXT value", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineRobustnessCreateInfoEXT-images-parameter", - "text": " images must be a valid VkPipelineRobustnessImageBehaviorEXT value" + "text": "images must be a valid VkPipelineRobustnessImageBehaviorEXT value", + "page": "vkspec" } ] }, @@ -11538,23 +14431,28 @@ "core": [ { "vuid": "VUID-VkPipelineShaderStageModuleIdentifierCreateInfoEXT-pNext-06850", - "text": " If this structure is included in a pNext chain and identifierSize is not equal to 0, the shaderModuleIdentifier feature must be enabled" + "text": "If this structure is included in a pNext chain and identifierSize is not equal to 0, the shaderModuleIdentifier feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineShaderStageModuleIdentifierCreateInfoEXT-pNext-06851", - "text": " If this struct is included in a pNext chain of VkPipelineShaderStageCreateInfo and identifierSize is not equal to 0, the pipeline must be created with the VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT flag set" + "text": "If this struct is included in a pNext chain of VkPipelineShaderStageCreateInfo and identifierSize is not equal to 0, the pipeline must be created with the VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT flag set", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineShaderStageModuleIdentifierCreateInfoEXT-identifierSize-06852", - "text": " identifierSize must be less-or-equal to VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT" + "text": "identifierSize must be less-or-equal to VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineShaderStageModuleIdentifierCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineShaderStageModuleIdentifierCreateInfoEXT-pIdentifier-parameter", - "text": " If identifierSize is not 0, pIdentifier must be a valid pointer to an array of identifierSize uint8_t values" + "text": "If identifierSize is not 0, pIdentifier must be a valid pointer to an array of identifierSize uint8_t values", + "page": "vkspec" } ] }, @@ -11562,47 +14460,58 @@ "core": [ { "vuid": "VUID-VkComputePipelineIndirectBufferInfoNV-deviceGeneratedComputePipelines-09009", - "text": " The VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV::deviceGeneratedComputePipelines feature must be enabled" + "text": "The VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV::deviceGeneratedComputePipelines feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-VkComputePipelineIndirectBufferInfoNV-flags-09010", - "text": " The pipeline creation flags in VkComputePipelineCreateInfo::flags must include VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV" + "text": "The pipeline creation flags in VkComputePipelineCreateInfo::flags must include VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV", + "page": "vkspec" }, { "vuid": "VUID-VkComputePipelineIndirectBufferInfoNV-deviceAddress-09011", - "text": " deviceAddress must be aligned to the VkMemoryRequirements2::alignment, as returned by vkGetPipelineIndirectMemoryRequirementsNV" + "text": "deviceAddress must be aligned to the VkMemoryRequirements2::alignment, as returned by vkGetPipelineIndirectMemoryRequirementsNV", + "page": "vkspec" }, { "vuid": "VUID-VkComputePipelineIndirectBufferInfoNV-deviceAddress-09012", - "text": " deviceAddress must have been allocated from a buffer that was created with usage VK_BUFFER_USAGE_TRANSFER_DST_BIT and VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT" + "text": "deviceAddress must have been allocated from a buffer that was created with usage VK_BUFFER_USAGE_TRANSFER_DST_BIT and VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkComputePipelineIndirectBufferInfoNV-size-09013", - "text": " size must be greater than or equal to the VkMemoryRequirements2::size, as returned by vkGetPipelineIndirectMemoryRequirementsNV" + "text": "size must be greater than or equal to the VkMemoryRequirements2::size, as returned by vkGetPipelineIndirectMemoryRequirementsNV", + "page": "vkspec" }, { "vuid": "VUID-VkComputePipelineIndirectBufferInfoNV-pipelineDeviceAddressCaptureReplay-09014", - "text": " If pipelineDeviceAddressCaptureReplay is non-zero then the VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV::deviceGeneratedComputeCaptureReplay feature must be enabled" + "text": "If pipelineDeviceAddressCaptureReplay is non-zero then the VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV::deviceGeneratedComputeCaptureReplay feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-VkComputePipelineIndirectBufferInfoNV-pipelineDeviceAddressCaptureReplay-09015", - "text": " If pipelineDeviceAddressCaptureReplay is non-zero then that address must have been allocated with flag VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT set" + "text": "If pipelineDeviceAddressCaptureReplay is non-zero then that address must have been allocated with flag VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT set", + "page": "vkspec" }, { "vuid": "VUID-VkComputePipelineIndirectBufferInfoNV-pipelineDeviceAddressCaptureReplay-09016", - "text": " If pipelineDeviceAddressCaptureReplay is non-zero, the pipeline must have been recreated for replay" + "text": "If pipelineDeviceAddressCaptureReplay is non-zero, the pipeline must have been recreated for replay", + "page": "vkspec" }, { "vuid": "VUID-VkComputePipelineIndirectBufferInfoNV-pipelineDeviceAddressCaptureReplay-09017", - "text": " pipelineDeviceAddressCaptureReplay must satisfy the alignment and size requirements similar to deviceAddress" + "text": "pipelineDeviceAddressCaptureReplay must satisfy the alignment and size requirements similar to deviceAddress", + "page": "vkspec" }, { "vuid": "VUID-VkComputePipelineIndirectBufferInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV" + "text": "sType must be VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV", + "page": "vkspec" }, { "vuid": "VUID-VkComputePipelineIndirectBufferInfoNV-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" } ] }, @@ -11610,51 +14519,63 @@ "core": [ { "vuid": "VUID-vkCmdUpdatePipelineIndirectBufferNV-pipelineBindPoint-09018", - "text": " pipelineBindPoint must be VK_PIPELINE_BIND_POINT_COMPUTE" + "text": "pipelineBindPoint must be VK_PIPELINE_BIND_POINT_COMPUTE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdUpdatePipelineIndirectBufferNV-pipeline-09019", - "text": " pipeline must have been created with VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV flag set" + "text": "pipeline must have been created with VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV flag set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdUpdatePipelineIndirectBufferNV-pipeline-09020", - "text": " pipeline must have been created with VkComputePipelineIndirectBufferInfoNV structure specifying a valid address where its metadata will be saved" + "text": "pipeline must have been created with VkComputePipelineIndirectBufferInfoNV structure specifying a valid address where its metadata will be saved", + "page": "vkspec" }, { "vuid": "VUID-vkCmdUpdatePipelineIndirectBufferNV-deviceGeneratedComputePipelines-09021", - "text": " The VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV::deviceGeneratedComputePipelines feature must be enabled" + "text": "The VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV::deviceGeneratedComputePipelines feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdUpdatePipelineIndirectBufferNV-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdUpdatePipelineIndirectBufferNV-pipelineBindPoint-parameter", - "text": " pipelineBindPoint must be a valid VkPipelineBindPoint value" + "text": "pipelineBindPoint must be a valid VkPipelineBindPoint value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdUpdatePipelineIndirectBufferNV-pipeline-parameter", - "text": " pipeline must be a valid VkPipeline handle" + "text": "pipeline must be a valid VkPipeline handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdUpdatePipelineIndirectBufferNV-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdUpdatePipelineIndirectBufferNV-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdUpdatePipelineIndirectBufferNV-renderpass", - "text": " This command must only be called outside of a render pass instance" + "text": "This command must only be called outside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdUpdatePipelineIndirectBufferNV-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdUpdatePipelineIndirectBufferNV-commonparent", - "text": " Both of commandBuffer, and pipeline must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of commandBuffer, and pipeline must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -11662,43 +14583,53 @@ "core": [ { "vuid": "VUID-vkCreateGraphicsPipelines-flags-00720", - "text": " If the flags member of any element of pCreateInfos contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and the basePipelineIndex member of that same element is not -1, basePipelineIndex must be less than the index into pCreateInfos that corresponds to that element" + "text": "If the flags member of any element of pCreateInfos contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and the basePipelineIndex member of that same element is not -1, basePipelineIndex must be less than the index into pCreateInfos that corresponds to that element", + "page": "vkspec" }, { "vuid": "VUID-vkCreateGraphicsPipelines-flags-00721", - "text": " If the flags member of any element of pCreateInfos contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, the base pipeline must have been created with the VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT flag set" + "text": "If the flags member of any element of pCreateInfos contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, the base pipeline must have been created with the VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT flag set", + "page": "vkspec" }, { "vuid": "VUID-vkCreateGraphicsPipelines-pipelineCache-02876", - "text": " If pipelineCache was created with VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT, host access to pipelineCache must be externally synchronized" + "text": "If pipelineCache was created with VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT, host access to pipelineCache must be externally synchronized", + "page": "vkspec" }, { "vuid": "VUID-vkCreateGraphicsPipelines-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkCreateGraphicsPipelines-pipelineCache-parameter", - "text": " If pipelineCache is not VK_NULL_HANDLE, pipelineCache must be a valid VkPipelineCache handle" + "text": "If pipelineCache is not VK_NULL_HANDLE, pipelineCache must be a valid VkPipelineCache handle", + "page": "vkspec" }, { "vuid": "VUID-vkCreateGraphicsPipelines-pCreateInfos-parameter", - "text": " pCreateInfos must be a valid pointer to an array of createInfoCount valid VkGraphicsPipelineCreateInfo structures" + "text": "pCreateInfos must be a valid pointer to an array of createInfoCount valid VkGraphicsPipelineCreateInfo structures", + "page": "vkspec" }, { "vuid": "VUID-vkCreateGraphicsPipelines-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateGraphicsPipelines-pPipelines-parameter", - "text": " pPipelines must be a valid pointer to an array of createInfoCount VkPipeline handles" + "text": "pPipelines must be a valid pointer to an array of createInfoCount VkPipeline handles", + "page": "vkspec" }, { "vuid": "VUID-vkCreateGraphicsPipelines-createInfoCount-arraylength", - "text": " createInfoCount must be greater than 0" + "text": "createInfoCount must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-vkCreateGraphicsPipelines-pipelineCache-parent", - "text": " If pipelineCache is a valid handle, it must have been created, allocated, or retrieved from device" + "text": "If pipelineCache is a valid handle, it must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -11706,1271 +14637,1658 @@ "core": [ { "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-07984", - "text": " If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineIndex is -1, basePipelineHandle must be a valid handle to a graphics VkPipeline" + "text": "If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineIndex is -1, basePipelineHandle must be a valid graphics VkPipeline handle", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-07985", - "text": " If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineHandle is VK_NULL_HANDLE, basePipelineIndex must be a valid index into the calling command’s pCreateInfos parameter" + "text": "If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineHandle is VK_NULL_HANDLE, basePipelineIndex must be a valid index into the calling command’s pCreateInfos parameter", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-07986", - "text": " If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, basePipelineIndex must be -1 or basePipelineHandle must be VK_NULL_HANDLE" + "text": "If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, basePipelineIndex must be -1 or basePipelineHandle must be VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-layout-07987", - "text": " If a push constant block is declared in a shader, a push constant range in layout must match both the shader stage and range" + "text": "If a push constant block is declared in a shader, a push constant range in layout must match both the shader stage and range", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-layout-07988", - "text": " If a resource variables is declared in a shader, a descriptor slot in layout must match the shader stage" + "text": "If a resource variables is declared in a shader, a descriptor slot in layout must match the shader stage", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-layout-07990", - "text": " If a resource variables is declared in a shader, and the descriptor type is not VK_DESCRIPTOR_TYPE_MUTABLE_EXT, a descriptor slot in layout must match the descriptor type" + "text": "If a resource variables is declared in a shader, and the descriptor type is not VK_DESCRIPTOR_TYPE_MUTABLE_EXT, a descriptor slot in layout must match the descriptor type", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-layout-07991", - "text": " If a resource variables is declared in a shader as an array, a descriptor slot in layout must match the descriptor count" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-02095", - "text": " If the pipeline requires pre-rasterization shader state the geometric shader stages provided in pStages must be either from the mesh shading pipeline (stage is VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT) or from the primitive shading pipeline (stage is VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, or VK_SHADER_STAGE_GEOMETRY_BIT)" + "text": "If a resource variables is declared in a shader as an array, a descriptor slot in layout must match the descriptor count", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-stage-02096", - "text": " If the pipeline requires pre-rasterization shader state the stage member of one element of pStages must be either VK_SHADER_STAGE_VERTEX_BIT or VK_SHADER_STAGE_MESH_BIT_EXT" + "text": "If the pipeline requires pre-rasterization shader state the stage member of one element of pStages must be VK_SHADER_STAGE_VERTEX_BIT or VK_SHADER_STAGE_MESH_BIT_EXT", + "page": "vkspec" + }, + { + "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-02095", + "text": "If the pipeline requires pre-rasterization shader state the geometric shader stages provided in pStages must be either from the mesh shading pipeline (stage is VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT) or from the primitive shading pipeline (stage is VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, or VK_SHADER_STAGE_GEOMETRY_BIT)", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-TaskNV-07063", - "text": " The shader stages for VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT must use either the TaskNV and MeshNV {ExecutionModel} or the TaskEXT and MeshEXT {ExecutionModel}, but must not use both" + "text": "The shader stages for VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT must use either the TaskNV and MeshNV Execution Model or the TaskEXT and MeshEXT Execution Model, but must not use both", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00729", - "text": " If the pipeline requires pre-rasterization shader state and pStages includes a tessellation control shader stage, it must include a tessellation evaluation shader stage" + "text": "If the pipeline requires pre-rasterization shader state and pStages includes a tessellation control shader stage, it must include a tessellation evaluation shader stage", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00730", - "text": " If the pipeline requires pre-rasterization shader state and pStages includes a tessellation evaluation shader stage, it must include a tessellation control shader stage" + "text": "If the pipeline requires pre-rasterization shader state and pStages includes a tessellation evaluation shader stage, it must include a tessellation control shader stage", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-09022", - "text": " If the pipeline requires pre-rasterization shader state and pStages includes a tessellation control shader stage, and the VK_EXT_extended_dynamic_state3 extension is not enabled or the VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT dynamic state is not set, pTessellationState must be a valid pointer to a valid VkPipelineTessellationStateCreateInfo structure" + "text": "If the pipeline requires pre-rasterization shader state and pStages includes a tessellation control shader stage, and the VK_EXT_extended_dynamic_state3 extension is not enabled or the VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT dynamic state is not set, pTessellationState must be a valid pointer to a valid VkPipelineTessellationStateCreateInfo structure", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pTessellationState-09023", - "text": " If pTessellationState is not NULL it must be a pointer to a valid VkPipelineTessellationStateCreateInfo structure" + "text": "If pTessellationState is not NULL it must be a pointer to a valid VkPipelineTessellationStateCreateInfo structure", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00732", - "text": " If the pipeline requires pre-rasterization shader state and pStages includes tessellation shader stages, the shader code of at least one stage must contain an OpExecutionMode instruction specifying the type of subdivision in the pipeline" + "text": "If the pipeline requires pre-rasterization shader state and pStages includes tessellation shader stages, the shader code of at least one stage must contain an OpExecutionMode instruction specifying the type of subdivision in the pipeline", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00733", - "text": " If the pipeline requires pre-rasterization shader state and pStages includes tessellation shader stages, and the shader code of both stages contain an OpExecutionMode instruction specifying the type of subdivision in the pipeline, they must both specify the same subdivision mode" + "text": "If the pipeline requires pre-rasterization shader state and pStages includes tessellation shader stages, and the shader code of both stages contain an OpExecutionMode instruction specifying the type of subdivision in the pipeline, they must both specify the same subdivision mode", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00734", - "text": " If the pipeline requires pre-rasterization shader state and pStages includes tessellation shader stages, the shader code of at least one stage must contain an OpExecutionMode instruction specifying the output patch size in the pipeline" + "text": "If the pipeline requires pre-rasterization shader state and pStages includes tessellation shader stages, the shader code of at least one stage must contain an OpExecutionMode instruction specifying the output patch size in the pipeline", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00735", - "text": " If the pipeline requires pre-rasterization shader state and pStages includes tessellation shader stages, and the shader code of both contain an OpExecutionMode instruction specifying the out patch size in the pipeline, they must both specify the same patch size" + "text": "If the pipeline requires pre-rasterization shader state and pStages includes tessellation shader stages, and the shader code of both contain an OpExecutionMode instruction specifying the out patch size in the pipeline, they must both specify the same patch size", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-08888", - "text": " If the pipeline is being created with pre-rasterization shader state and vertex input state and pStages includes tessellation shader stages, and either VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state is not enabled or dynamicPrimitiveTopologyUnrestricted is VK_FALSE, the topology member of pInputAssembly must be VK_PRIMITIVE_TOPOLOGY_PATCH_LIST" + "text": "If the pipeline is being created with pre-rasterization shader state and vertex input state and pStages includes tessellation shader stages, and either VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state is not enabled or dynamicPrimitiveTopologyUnrestricted is VK_FALSE, the topology member of pInputAssembly must be VK_PRIMITIVE_TOPOLOGY_PATCH_LIST", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-topology-08889", - "text": " If the pipeline is being created with pre-rasterization shader state and vertex input state and the topology member of pInputAssembly is VK_PRIMITIVE_TOPOLOGY_PATCH_LIST, and either VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state is not enabled or dynamicPrimitiveTopologyUnrestricted is VK_FALSE, then pStages must include tessellation shader stages" + "text": "If the pipeline is being created with pre-rasterization shader state and vertex input state and the topology member of pInputAssembly is VK_PRIMITIVE_TOPOLOGY_PATCH_LIST, and either VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state is not enabled or dynamicPrimitiveTopologyUnrestricted is VK_FALSE, then pStages must include tessellation shader stages", + "page": "vkspec" }, { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-topology-08808", - "text": " If the pipeline is being created with a Vertex {ExecutionModel} and no TessellationEvaluation or Geometry {ExecutionModel}, and the topology member of pInputAssembly is VK_PRIMITIVE_TOPOLOGY_POINT_LIST,and either VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state is not enabled or dynamicPrimitiveTopologyUnrestricted is VK_FALSE, a PointSize decorated variable must be written to if maintenance5 is not enabled" + "vuid": "VUID-VkGraphicsPipelineCreateInfo-TessellationEvaluation-07723", + "text": "If the pipeline is being created with a TessellationEvaluation Execution Model, no Geometry Execution Model, uses the PointMode Execution Mode, and shaderTessellationAndGeometryPointSize is enabled, a PointSize decorated variable must be written to if maintenance5 is not enabled", + "page": "vkspec" }, { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-shaderTessellationAndGeometryPointSize-08774", - "text": " If the pipeline is being created with a TessellationEvaluation {ExecutionModel}, no Geometry {ExecutionModel}, uses the PointMode {ExecutionMode}, and shaderTessellationAndGeometryPointSize is enabled, a PointSize decorated variable must be written to if maintenance5 is not enabled" + "vuid": "VUID-VkGraphicsPipelineCreateInfo-topology-08773", + "text": "If the pipeline is being created with a Vertex Execution Model and no TessellationEvaluation or Geometry Execution Model, and the topology member of pInputAssembly is VK_PRIMITIVE_TOPOLOGY_POINT_LIST, and either VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state is not enabled or dynamicPrimitiveTopologyUnrestricted is VK_FALSE, a PointSize decorated variable must be written to if maintenance5 is not enabled", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-maintenance5-08775", - "text": " If maintenance5 is enabled and a PointSize decorated variable is written to, all execution paths must write to a PointSize decorated variable" + "text": "If maintenance5 is enabled and a PointSize decorated variable is written to, all execution paths must write to a PointSize decorated variable", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-TessellationEvaluation-07724", - "text": " If the pipeline is being created with a TessellationEvaluation {ExecutionModel}, no Geometry {ExecutionModel}, uses the PointMode {ExecutionMode}, and shaderTessellationAndGeometryPointSize is not enabled, a PointSize decorated variable must not be written to" + "text": "If the pipeline is being created with a TessellationEvaluation Execution Model, no Geometry Execution Model, uses the PointMode Execution Mode, and shaderTessellationAndGeometryPointSize is not enabled, a PointSize decorated variable must not be written to", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-shaderTessellationAndGeometryPointSize-08776", - "text": " If the pipeline is being created with a Geometry {ExecutionModel}, uses the OutputPoints {ExecutionMode}, and shaderTessellationAndGeometryPointSize is enabled, a PointSize decorated variable must be written to for every vertex emitted if maintenance5 is not enabled" + "text": "If the pipeline is being created with a Geometry Execution Model, uses the OutputPoints Execution Mode, and shaderTessellationAndGeometryPointSize is enabled, a PointSize decorated variable must be written to for every vertex emitted if maintenance5 is not enabled", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-Geometry-07726", - "text": " If the pipeline is being created with a Geometry {ExecutionModel}, uses the OutputPoints {ExecutionMode}, and shaderTessellationAndGeometryPointSize is not enabled, a PointSize decorated variable must not be written to" + "text": "If the pipeline is being created with a Geometry Execution Model, uses the OutputPoints Execution Mode, and shaderTessellationAndGeometryPointSize is not enabled, a PointSize decorated variable must not be written to", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00738", - "text": " If the pipeline requires pre-rasterization shader state and pStages includes a geometry shader stage, and does not include any tessellation shader stages, its shader code must contain an OpExecutionMode instruction specifying an input primitive type that is compatible with the primitive topology specified in pInputAssembly" + "text": "If the pipeline requires pre-rasterization shader state and pStages includes a geometry shader stage, and does not include any tessellation shader stages, its shader code must contain an OpExecutionMode instruction specifying an input primitive type that is compatible with the primitive topology specified in pInputAssembly", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00739", - "text": " If the pipeline requires pre-rasterization shader state and pStages includes a geometry shader stage, and also includes tessellation shader stages, its shader code must contain an OpExecutionMode instruction specifying an input primitive type that is compatible with the primitive topology that is output by the tessellation stages" + "text": "If the pipeline requires pre-rasterization shader state and pStages includes a geometry shader stage, and also includes tessellation shader stages, its shader code must contain an OpExecutionMode instruction specifying an input primitive type that is compatible with the primitive topology that is output by the tessellation stages", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00740", - "text": " If the pipeline requires pre-rasterization shader state and fragment shader state, it includes both a fragment shader and a geometry shader, and the fragment shader code reads from an input variable that is decorated with PrimitiveId, then the geometry shader code must write to a matching output variable, decorated with PrimitiveId, in all execution paths" + "text": "If the pipeline requires pre-rasterization shader state and fragment shader state, it includes both a fragment shader and a geometry shader, and the fragment shader code reads from an input variable that is decorated with PrimitiveId, then the geometry shader code must write to a matching output variable, decorated with PrimitiveId, in all execution paths", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-PrimitiveId-06264", - "text": " If the pipeline requires pre-rasterization shader state, it includes a mesh shader and the fragment shader code reads from an input variable that is decorated with PrimitiveId, then the mesh shader code must write to a matching output variable, decorated with PrimitiveId, in all execution paths" + "text": "If the pipeline requires pre-rasterization shader state, it includes a mesh shader and the fragment shader code reads from an input variable that is decorated with PrimitiveId, then the mesh shader code must write to a matching output variable, decorated with PrimitiveId, in all execution paths", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06038", - "text": " If renderPass is not VK_NULL_HANDLE and the pipeline is being created with fragment shader state the fragment shader must not read from any input attachment that is defined as VK_ATTACHMENT_UNUSED in subpass" + "text": "If renderPass is not VK_NULL_HANDLE and the pipeline is being created with fragment shader state the fragment shader must not read from any input attachment that is defined as VK_ATTACHMENT_UNUSED in subpass", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00742", - "text": " If the pipeline requires pre-rasterization shader state and multiple pre-rasterization shader stages are included in pStages, the shader code for the entry points identified by those pStages and the rest of the state identified by this structure must adhere to the pipeline linking rules described in the Shader Interfaces chapter" + "text": "If the pipeline requires pre-rasterization shader state and multiple pre-rasterization shader stages are included in pStages, the shader code for the entry points identified by those pStages and the rest of the state identified by this structure must adhere to the pipeline linking rules described in the Shader Interfaces chapter", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-None-04889", - "text": " If the pipeline requires pre-rasterization shader state and fragment shader state, the fragment shader and last pre-rasterization shader stage and any relevant state must adhere to the pipeline linking rules described in the Shader Interfaces chapter" + "text": "If the pipeline requires pre-rasterization shader state and fragment shader state, the fragment shader and last pre-rasterization shader stage and any relevant state must adhere to the pipeline linking rules described in the Shader Interfaces chapter", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06041", - "text": " If renderPass is not VK_NULL_HANDLE, and the pipeline is being created with fragment output interface state, then for each color attachment in the subpass, if the potential format features of the format of the corresponding attachment description do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the blendEnable member of the corresponding element of the pAttachments member of pColorBlendState must be VK_FALSE" + "text": "If renderPass is not VK_NULL_HANDLE, and the pipeline is being created with fragment output interface state, then for each color attachment in the subpass, if the potential format features of the format of the corresponding attachment description do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the blendEnable member of the corresponding element of the pAttachments member of pColorBlendState must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-07609", - "text": " If renderPass is not VK_NULL_HANDLE, and the pipeline is being created with fragment output interface state, and the pColorBlendState pointer is not NULL, and the subpass uses color attachments, the attachmentCount member of pColorBlendState must be equal to the colorAttachmentCount used to create subpass" + "text": "If renderPass is not VK_NULL_HANDLE, and the pipeline is being created with fragment output interface state, and the pColorBlendState pointer is not NULL, and the subpass uses color attachments, the attachmentCount member of pColorBlendState must be equal to the colorAttachmentCount used to create subpass", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04130", - "text": " If the pipeline requires pre-rasterization shader state, and pViewportState->pViewports is not dynamic, then pViewportState->pViewports must be a valid pointer to an array of pViewportState->viewportCount valid VkViewport structures" + "text": "If the pipeline requires pre-rasterization shader state, and pViewportState->pViewports is not dynamic, then pViewportState->pViewports must be a valid pointer to an array of pViewportState->viewportCount valid VkViewport structures", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04131", - "text": " If the pipeline requires pre-rasterization shader state, and pViewportState->pScissors is not dynamic, then pViewportState->pScissors must be a valid pointer to an array of pViewportState->scissorCount VkRect2D structures" + "text": "If the pipeline requires pre-rasterization shader state, and pViewportState->pScissors is not dynamic, then pViewportState->pScissors must be a valid pointer to an array of pViewportState->scissorCount VkRect2D structures", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00749", - "text": " If the pipeline requires pre-rasterization shader state, and the wideLines feature is not enabled, and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_LINE_WIDTH, the lineWidth member of pRasterizationState must be 1.0" + "text": "If the pipeline requires pre-rasterization shader state, and the wideLines feature is not enabled, and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_LINE_WIDTH, the lineWidth member of pRasterizationState must be 1.0", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-rasterizerDiscardEnable-09024", - "text": " If the pipeline requires pre-rasterization shader state, and the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state is enabled or the rasterizerDiscardEnable member of pRasterizationState is VK_FALSE, and either the VK_EXT_extended_dynamic_state3 extension is not enabled, or either the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT or VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic states are not set, pViewportState must be a valid pointer to a valid VkPipelineViewportStateCreateInfo structure" + "text": "If the pipeline requires pre-rasterization shader state, and the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state is enabled or the rasterizerDiscardEnable member of pRasterizationState is VK_FALSE, and either the VK_EXT_extended_dynamic_state3 extension is not enabled, or either the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT or VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic states are not set, pViewportState must be a valid pointer to a valid VkPipelineViewportStateCreateInfo structure", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pViewportState-09025", - "text": " If pViewportState is not NULL it must be a valid pointer to a valid VkPipelineViewportStateCreateInfo structure" + "text": "If pViewportState is not NULL it must be a valid pointer to a valid VkPipelineViewportStateCreateInfo structure", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pViewportState-04892", - "text": " If the pipeline requires pre-rasterization shader state, and the graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled, pViewportState must be a valid pointer to a valid VkPipelineViewportStateCreateInfo structure" + "text": "If the pipeline requires pre-rasterization shader state, and the graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled, pViewportState must be a valid pointer to a valid VkPipelineViewportStateCreateInfo structure", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pMultisampleState-09026", - "text": " If the pipeline requires fragment output interface state, and the VK_EXT_extended_dynamic_state3 extension is not enabled or any of the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT, VK_DYNAMIC_STATE_SAMPLE_MASK_EXT, VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT, or VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic states is not set, pMultisampleState must be a valid pointer to a valid VkPipelineMultisampleStateCreateInfo structure" + "text": "If the pipeline requires fragment output interface state, and the VK_EXT_extended_dynamic_state3 extension is not enabled or any of the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT, VK_DYNAMIC_STATE_SAMPLE_MASK_EXT, or VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic states is not set, or alphaToOne is enabled on the device and VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT is not set, pMultisampleState must be a valid pointer to a valid VkPipelineMultisampleStateCreateInfo structure", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pMultisampleState-09027", - "text": " If pMultisampleState is not NULL is must be a valid pointer to a valid VkPipelineMultisampleStateCreateInfo structure" + "text": "If pMultisampleState is not NULL is must be a valid pointer to a valid VkPipelineMultisampleStateCreateInfo structure", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-alphaToCoverageEnable-08891", - "text": " If the pipeline is being created with fragment shader state, the VkPipelineMultisampleStateCreateInfo::alphaToCoverageEnable is not ignored and is VK_TRUE, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0" + "text": "If the pipeline is being created with fragment shader state, the VkPipelineMultisampleStateCreateInfo::alphaToCoverageEnable is not ignored and is VK_TRUE, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-09028", - "text": " If renderPass is not VK_NULL_HANDLE, the pipeline is being created with fragment shader state, and subpass uses a depth/stencil attachment, and the VK_EXT_extended_dynamic_state3 extension is not enabled or, any of the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE, VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE, VK_DYNAMIC_STATE_DEPTH_COMPARE_OP, VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE, VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE, VK_DYNAMIC_STATE_STENCIL_OP, or VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic states are not set, pDepthStencilState must be a valid pointer to a valid VkPipelineDepthStencilStateCreateInfo structure" + "text": "If renderPass is not VK_NULL_HANDLE, the pipeline is being created with fragment shader state, and subpass uses a depth/stencil attachment, and the VK_EXT_extended_dynamic_state3 extension is not enabled or, any of the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE, VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE, VK_DYNAMIC_STATE_DEPTH_COMPARE_OP, VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE, VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE, VK_DYNAMIC_STATE_STENCIL_OP, or VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic states are not set, pDepthStencilState must be a valid pointer to a valid VkPipelineDepthStencilStateCreateInfo structure", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDepthStencilState-09029", - "text": " If pDepthStencilState is not NULL it must be a valid pointer to a valid VkPipelineDepthStencilStateCreateInfo structure" + "text": "If pDepthStencilState is not NULL it must be a valid pointer to a valid VkPipelineDepthStencilStateCreateInfo structure", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-09030", - "text": " If renderPass is not VK_NULL_HANDLE, the pipeline is being created with fragment output interface state, and subpass uses color attachments, and VK_EXT_extended_dynamic_state3 extension is not enabled, or any of the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT, VK_DYNAMIC_STATE_LOGIC_OP_EXT, VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT, VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT, VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, or VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic states are not set, pColorBlendState must be a valid pointer to a valid VkPipelineColorBlendStateCreateInfo structure" + "text": "If renderPass is not VK_NULL_HANDLE, the pipeline is being created with fragment output interface state, and subpass uses color attachments, and VK_EXT_extended_dynamic_state3 extension is not enabled, or any of the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT, VK_DYNAMIC_STATE_LOGIC_OP_EXT, VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT, VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT, VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, or VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic states are not set, pColorBlendState must be a valid pointer to a valid VkPipelineColorBlendStateCreateInfo structure", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00754", - "text": " If the pipeline requires pre-rasterization shader state, the depthBiasClamp feature is not enabled, no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_DEPTH_BIAS, and the depthBiasEnable member of pRasterizationState is VK_TRUE, the depthBiasClamp member of pRasterizationState must be 0.0" + "text": "If the pipeline requires pre-rasterization shader state, the depthBiasClamp feature is not enabled, no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_DEPTH_BIAS, and the depthBiasEnable member of pRasterizationState is VK_TRUE, the depthBiasClamp member of pRasterizationState must be 0.0", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-02510", - "text": " If the pipeline requires fragment shader state, and the VK_EXT_depth_range_unrestricted extension is not enabled and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_DEPTH_BOUNDS, and the depthBoundsTestEnable member of pDepthStencilState is VK_TRUE, the minDepthBounds and maxDepthBounds members of pDepthStencilState must be between 0.0 and 1.0, inclusive" + "text": "If the pipeline requires fragment shader state, and the VK_EXT_depth_range_unrestricted extension is not enabled and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_DEPTH_BOUNDS, and the depthBoundsTestEnable member of pDepthStencilState is VK_TRUE, the minDepthBounds and maxDepthBounds members of pDepthStencilState must be between 0.0 and 1.0, inclusive", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07610", - "text": " If the pipeline requires fragment shader state or fragment output interface state, and rasterizationSamples and sampleLocationsInfo are not dynamic, and VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable included in the pNext chain of pMultisampleState is VK_TRUE, sampleLocationsInfo.sampleLocationGridSize.width must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples" + "text": "If the pipeline requires fragment shader state or fragment output interface state, and rasterizationSamples and sampleLocationsInfo are not dynamic, and VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable included in the pNext chain of pMultisampleState is VK_TRUE, sampleLocationsInfo.sampleLocationGridSize.width must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07611", - "text": " If the pipeline requires fragment shader state or fragment output interface state, and rasterizationSamples and sampleLocationsInfo are not dynamic, and VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable the included in the pNext chain of pMultisampleState is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT is used, sampleLocationsInfo.sampleLocationGridSize.height must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples" + "text": "If the pipeline requires fragment shader state or fragment output interface state, and rasterizationSamples and sampleLocationsInfo are not dynamic, and VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable the included in the pNext chain of pMultisampleState is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT is used, sampleLocationsInfo.sampleLocationGridSize.height must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07612", - "text": " If the pipeline requires fragment shader state or fragment output interface state, and rasterizationSamples and sampleLocationsInfo are not dynamic, and VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable included in the pNext chain of pMultisampleState is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT is used, sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples" + "text": "If the pipeline requires fragment shader state or fragment output interface state, and rasterizationSamples and sampleLocationsInfo are not dynamic, and VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable included in the pNext chain of pMultisampleState is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT is used, sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-sampleLocationsEnable-01524", - "text": " If the pipeline requires fragment shader state, and the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT structure included in the pNext chain of pMultisampleState is VK_TRUE, the fragment shader code must not statically use the extended instruction InterpolateAtSample" + "text": "If the pipeline requires fragment shader state, and the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT structure included in the pNext chain of pMultisampleState is VK_TRUE, the fragment shader code must not statically use the extended instruction InterpolateAtSample", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-multisampledRenderToSingleSampled-06853", - "text": " If the pipeline requires fragment output interface state, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature are enabled, rasterizationSamples is not dynamic, and if subpass uses color and/or depth/stencil attachments, then the rasterizationSamples member of pMultisampleState must be the same as the sample count for those subpass attachments" + "text": "If the pipeline requires fragment output interface state, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature are enabled, rasterizationSamples is not dynamic, and if subpass uses color and/or depth/stencil attachments, then the rasterizationSamples member of pMultisampleState must be the same as the sample count for those subpass attachments", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-subpass-01505", - "text": " If the pipeline requires fragment output interface state, and the VK_AMD_mixed_attachment_samples extension is enabled, rasterizationSamples is not dynamic, and if subpass uses color and/or depth/stencil attachments, then the rasterizationSamples member of pMultisampleState must equal the maximum of the sample counts of those subpass attachments" + "text": "If the pipeline requires fragment output interface state, and the VK_AMD_mixed_attachment_samples extension is enabled, rasterizationSamples is not dynamic, and if subpass uses color and/or depth/stencil attachments, then the rasterizationSamples member of pMultisampleState must equal the maximum of the sample counts of those subpass attachments", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06854", - "text": " If renderPass is not VK_NULL_HANDLE, the VK_EXT_multisampled_render_to_single_sampled extension is enabled, rasterizationSamples is not dynamic, and subpass has a VkMultisampledRenderToSingleSampledInfoEXT structure included in the VkSubpassDescription2::pNext chain with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the rasterizationSamples member of pMultisampleState must be equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples" + "text": "If renderPass is not VK_NULL_HANDLE, the VK_EXT_multisampled_render_to_single_sampled extension is enabled, rasterizationSamples is not dynamic, and subpass has a VkMultisampledRenderToSingleSampledInfoEXT structure included in the VkSubpassDescription2::pNext chain with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the rasterizationSamples member of pMultisampleState must be equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-subpass-01411", - "text": " If the pipeline requires fragment output interface state, the VK_NV_framebuffer_mixed_samples extension is enabled, rasterizationSamples is not dynamic, and if subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled, then the rasterizationSamples member of pMultisampleState must be the same as the sample count of the depth/stencil attachment" + "text": "If the pipeline requires fragment output interface state, the VK_NV_framebuffer_mixed_samples extension is enabled, rasterizationSamples is not dynamic, and if subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled, then the rasterizationSamples member of pMultisampleState must be the same as the sample count of the depth/stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-subpass-01412", - "text": " If the pipeline requires fragment output interface state, the VK_NV_framebuffer_mixed_samples extension is enabled, rasterizationSamples is not dynamic, and if subpass has any color attachments, then the rasterizationSamples member of pMultisampleState must be greater than or equal to the sample count for those subpass attachments" + "text": "If the pipeline requires fragment output interface state, the VK_NV_framebuffer_mixed_samples extension is enabled, rasterizationSamples is not dynamic, and if subpass has any color attachments, then the rasterizationSamples member of pMultisampleState must be greater than or equal to the sample count for those subpass attachments", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-coverageReductionMode-02722", - "text": " If the pipeline requires fragment output interface state, the VK_NV_coverage_reduction_mode extension is enabled, and rasterizationSamples is not dynamic, the coverage reduction mode specified by VkPipelineCoverageReductionStateCreateInfoNV::coverageReductionMode, the rasterizationSamples member of pMultisampleState and the sample counts for the color and depth/stencil attachments (if the subpass has them) must be a valid combination returned by vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV" + "text": "If the pipeline requires fragment output interface state, the VK_NV_coverage_reduction_mode extension is enabled, and rasterizationSamples is not dynamic, the coverage reduction mode specified by VkPipelineCoverageReductionStateCreateInfoNV::coverageReductionMode, the rasterizationSamples member of pMultisampleState and the sample counts for the color and depth/stencil attachments (if the subpass has them) must be a valid combination returned by vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-subpass-00758", - "text": " If the pipeline requires fragment output interface state, rasterizationSamples is not dynamic, and subpass does not use any color and/or depth/stencil attachments, then the rasterizationSamples member of pMultisampleState must follow the rules for a zero-attachment subpass" + "text": "If the pipeline requires fragment output interface state, rasterizationSamples is not dynamic, and subpass does not use any color and/or depth/stencil attachments, then the rasterizationSamples member of pMultisampleState must follow the rules for a zero-attachment subpass", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06046", - "text": " If renderPass is not VK_NULL_HANDLE, subpass must be a valid subpass within renderPass" + "text": "If renderPass is not VK_NULL_HANDLE, subpass must be a valid subpass within renderPass", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06047", - "text": " If renderPass is not VK_NULL_HANDLE, the pipeline is being created with pre-rasterization shader state, subpass viewMask is not 0, and multiviewTessellationShader is not enabled, then pStages must not include tessellation shaders" + "text": "If renderPass is not VK_NULL_HANDLE, the pipeline is being created with pre-rasterization shader state, subpass viewMask is not 0, and multiviewTessellationShader is not enabled, then pStages must not include tessellation shaders", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06048", - "text": " If renderPass is not VK_NULL_HANDLE, the pipeline is being created with pre-rasterization shader state, subpass viewMask is not 0, and multiviewGeometryShader is not enabled, then pStages must not include a geometry shader" + "text": "If renderPass is not VK_NULL_HANDLE, the pipeline is being created with pre-rasterization shader state, subpass viewMask is not 0, and multiviewGeometryShader is not enabled, then pStages must not include a geometry shader", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06049", - "text": " If renderPass is not VK_NULL_HANDLE, the pipeline is being created with pre-rasterization shader state, and subpass viewMask is not 0, all of the shaders in the pipeline must not write to the Layer built-in output" + "text": "If renderPass is not VK_NULL_HANDLE, the pipeline is being created with pre-rasterization shader state, and subpass viewMask is not 0, all of the shaders in the pipeline must not write to the Layer built-in output", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06050", - "text": " If renderPass is not VK_NULL_HANDLE and the pipeline is being created with pre-rasterization shader state, and subpass viewMask is not 0, then all of the shaders in the pipeline must not include variables decorated with the Layer built-in decoration in their interfaces" + "text": "If renderPass is not VK_NULL_HANDLE and the pipeline is being created with pre-rasterization shader state, and subpass viewMask is not 0, then all of the shaders in the pipeline must not include variables decorated with the Layer built-in decoration in their interfaces", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-07717", - "text": " If renderPass is not VK_NULL_HANDLE and the pipeline is being created with pre-rasterization shader state, and subpass viewMask is not 0, then all of the shaders in the pipeline must not include variables decorated with the ViewMask built-in decoration in their interfaces" + "text": "If renderPass is not VK_NULL_HANDLE and the pipeline is being created with pre-rasterization shader state, and subpass viewMask is not 0, then all of the shaders in the pipeline must not include variables decorated with the ViewMask built-in decoration in their interfaces", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-07064", - "text": " If renderPass is not VK_NULL_HANDLE, the pipeline is being created with pre-rasterization shader state, subpass viewMask is not 0, and multiviewMeshShader is not enabled, then pStages must not include a mesh shader" + "text": "If renderPass is not VK_NULL_HANDLE, the pipeline is being created with pre-rasterization shader state, subpass viewMask is not 0, and multiviewMeshShader is not enabled, then pStages must not include a mesh shader", + "page": "vkspec" }, { "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 flag", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-01565", - "text": " If the pipeline requires fragment shader state and an input attachment was referenced by an aspectMask at renderPass creation time, the fragment shader must only read from the aspects that were specified for that input attachment" + "text": "If the pipeline requires fragment shader state and an input attachment was referenced by an aspectMask at renderPass creation time, the fragment shader must only read from the aspects that were specified for that input attachment", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-layout-01688", - "text": " The number of resources in layout accessible to each shader stage that is used by the pipeline must be less than or equal to VkPhysicalDeviceLimits::maxPerStageResources" + "text": "The number of resources in layout accessible to each shader stage that is used by the pipeline must be less than or equal to VkPhysicalDeviceLimits::maxPerStageResources", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01715", - "text": " If the pipeline requires pre-rasterization shader state, and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV, and the viewportWScalingEnable member of a VkPipelineViewportWScalingStateCreateInfoNV structure, included in the pNext chain of pViewportState, is VK_TRUE, the pViewportWScalings member of the VkPipelineViewportWScalingStateCreateInfoNV must be a pointer to an array of VkPipelineViewportWScalingStateCreateInfoNV::viewportCount valid VkViewportWScalingNV structures" + "text": "If the pipeline requires pre-rasterization shader state, and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV, and the viewportWScalingEnable member of a VkPipelineViewportWScalingStateCreateInfoNV structure, included in the pNext chain of pViewportState, is VK_TRUE, the pViewportWScalings member of the VkPipelineViewportWScalingStateCreateInfoNV must be a pointer to an array of VkPipelineViewportWScalingStateCreateInfoNV::viewportCount valid VkViewportWScalingNV structures", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04056", - "text": " If the pipeline requires pre-rasterization shader state, and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV, and if pViewportState->pNext chain includes a VkPipelineViewportExclusiveScissorStateCreateInfoNV structure, and if its exclusiveScissorCount member is not 0, then its pExclusiveScissors member must be a valid pointer to an array of exclusiveScissorCount VkRect2D structures" + "text": "If the pipeline requires pre-rasterization shader state, and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV, and if pViewportState->pNext chain includes a VkPipelineViewportExclusiveScissorStateCreateInfoNV structure, and if its exclusiveScissorCount member is not 0, then its pExclusiveScissors member must be a valid pointer to an array of exclusiveScissorCount VkRect2D structures", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07854", - "text": " If VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV is included in the pDynamicStates array then the implementation must support at least specVersion 2 of the VK_NV_scissor_exclusive extension" + "text": "If VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV is included in the pDynamicStates array then the implementation must support at least specVersion 2 of the VK_NV_scissor_exclusive extension", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04057", - "text": " If the pipeline requires pre-rasterization shader state, and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV, and if pViewportState->pNext chain includes a VkPipelineViewportShadingRateImageStateCreateInfoNV structure, then its pShadingRatePalettes member must be a valid pointer to an array of viewportCount valid VkShadingRatePaletteNV structures" + "text": "If the pipeline requires pre-rasterization shader state, and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV, and if pViewportState->pNext chain includes a VkPipelineViewportShadingRateImageStateCreateInfoNV structure, then its pShadingRatePalettes member must be a valid pointer to an array of viewportCount valid VkShadingRatePaletteNV structures", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04058", - "text": " If the pipeline requires pre-rasterization shader state, and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT, and if pNext chain includes a VkPipelineDiscardRectangleStateCreateInfoEXT structure, and if its discardRectangleCount member is not 0, then its pDiscardRectangles member must be a valid pointer to an array of discardRectangleCount VkRect2D structures" + "text": "If the pipeline requires pre-rasterization shader state, and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT, and if pNext chain includes a VkPipelineDiscardRectangleStateCreateInfoEXT structure, and if its discardRectangleCount member is not 0, then its pDiscardRectangles member must be a valid pointer to an array of discardRectangleCount VkRect2D structures", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07855", - "text": " If VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT is included in the pDynamicStates array then the implementation must support at least specVersion 2 of the VK_EXT_discard_rectangles extension" + "text": "If VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT is included in the pDynamicStates array then the implementation must support at least specVersion 2 of the VK_EXT_discard_rectangles extension", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07856", - "text": " If VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT is included in the pDynamicStates array then the implementation must support at least specVersion 2 of the VK_EXT_discard_rectangles extension" + "text": "If VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT is included in the pDynamicStates array then the implementation must support at least specVersion 2 of the VK_EXT_discard_rectangles extension", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-02097", - "text": " If the pipeline requires vertex input state, and pVertexInputState is not dynamic, then pVertexInputState must be a valid pointer to a valid VkPipelineVertexInputStateCreateInfo structure" + "text": "If the pipeline requires vertex input state, and pVertexInputState is not dynamic, then pVertexInputState must be a valid pointer to a valid VkPipelineVertexInputStateCreateInfo structure", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-Input-07904", - "text": " If 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 {ExecutionModel} OpEntryPoint must contain a location in VkVertexInputAttributeDescription::location" + "text": "If 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": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-Input-08733", - "text": " If the pipeline requires vertex input state and pVertexInputState is not dynamic, then the numeric type associated with all Input variables of the corresponding Location in the Vertex {ExecutionModel} OpEntryPoint must be the same as VkVertexInputAttributeDescription::format" + "text": "If the pipeline requires vertex input state and pVertexInputState is not dynamic, then the numeric type associated with all Input variables of the corresponding Location in the Vertex Execution Model OpEntryPoint must be the same as VkVertexInputAttributeDescription::format", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pVertexInputState-08929", - "text": " If the pipeline is being created with vertex input state and pVertexInputState is not dynamic, and VkVertexInputAttributeDescription::format has a 64-bit component, then the scalar width associated with all Input variables of the corresponding Location in the Vertex {ExecutionModel} OpEntryPoint must be 64-bit" + "text": "If the pipeline is being created with vertex input state and pVertexInputState is not dynamic, and VkVertexInputAttributeDescription::format has a 64-bit component, then the scalar width associated with all Input variables of the corresponding Location in the Vertex Execution Model OpEntryPoint must be 64-bit", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pVertexInputState-08930", - "text": " If the pipeline is being created with vertex input state and pVertexInputState is not dynamic, and the scalar width associated with a Location decorated Input variable in the Vertex {ExecutionModel} OpEntryPoint is 64-bit, then the corresponding VkVertexInputAttributeDescription::format must have a 64-bit component" + "text": "If the pipeline is being created with vertex input state and pVertexInputState is not dynamic, and the scalar width associated with a Location decorated Input variable in the Vertex Execution Model OpEntryPoint is 64-bit, then the corresponding VkVertexInputAttributeDescription::format must have a 64-bit component", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pVertexInputState-09198", - "text": " If the pipeline is being created with vertex input state and pVertexInputState is not dynamic, and VkVertexInputAttributeDescription::format has a 64-bit component, then all Input variables at the corresponding Location in the Vertex {ExecutionModel} OpEntryPoint must not use components that are not present in the format" + "text": "If the pipeline is being created with vertex input state and pVertexInputState is not dynamic, and VkVertexInputAttributeDescription::format has a 64-bit component, then all Input variables at the corresponding Location in the Vertex Execution Model OpEntryPoint must not use components that are not present in the format", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-dynamicPrimitiveTopologyUnrestricted-09031", - "text": " If the pipeline requires vertex input state, and the VK_EXT_extended_dynamic_state3 extension is not enabled, or either VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE, or VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic states are not set, or dynamicPrimitiveTopologyUnrestricted is VK_FALSE, pInputAssemblyState must be a valid pointer to a valid VkPipelineInputAssemblyStateCreateInfo structure" + "text": "If the pipeline requires vertex input state, and the VK_EXT_extended_dynamic_state3 extension is not enabled, or either VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE, or VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic states are not set, or dynamicPrimitiveTopologyUnrestricted is VK_FALSE, pInputAssemblyState must be a valid pointer to a valid VkPipelineInputAssemblyStateCreateInfo structure", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pInputAssemblyState-09032", - "text": " If pInputAssemblyState is not NULL it must be a valid pointer to a valid VkPipelineInputAssemblyStateCreateInfo structure" + "text": "If pInputAssemblyState is not NULL it must be a valid pointer to a valid VkPipelineInputAssemblyStateCreateInfo structure", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-02317", - "text": " If the pipeline requires pre-rasterization shader state, the Xfb execution mode can be specified by no more than one shader stage in pStages" + "text": "If the pipeline requires pre-rasterization shader state, the Xfb execution mode can be specified by no more than one shader stage in pStages", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-02318", - "text": " If the pipeline requires pre-rasterization shader state, and any shader stage in pStages specifies Xfb execution mode it must be the last pre-rasterization shader stage" + "text": "If the pipeline requires pre-rasterization shader state, and any shader stage in pStages specifies Xfb execution mode it must be the last pre-rasterization shader stage", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-rasterizationStream-02319", - "text": " If the pipeline requires pre-rasterization shader state, and a VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream value other than zero is specified, all variables in the output interface of the entry point being compiled decorated with Position, PointSize, ClipDistance, or CullDistance must be decorated with identical Stream values that match the rasterizationStream" + "text": "If the pipeline requires pre-rasterization shader state, and a VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream value other than zero is specified, all variables in the output interface of the entry point being compiled decorated with Position, PointSize, ClipDistance, or CullDistance must be decorated with identical Stream values that match the rasterizationStream", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-rasterizationStream-02320", - "text": " If the pipeline requires pre-rasterization shader state, and VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream is zero, or not specified, all variables in the output interface of the entry point being compiled decorated with Position, PointSize, ClipDistance, or CullDistance must be decorated with a Stream value of zero, or must not specify the Stream decoration" + "text": "If the pipeline requires pre-rasterization shader state, and VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream is zero, or not specified, all variables in the output interface of the entry point being compiled decorated with Position, PointSize, ClipDistance, or CullDistance must be decorated with a Stream value of zero, or must not specify the Stream decoration", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-geometryStreams-02321", - "text": " If the pipeline requires pre-rasterization shader state, and the last pre-rasterization shader stage is a geometry shader, and that geometry shader uses the GeometryStreams capability, then VkPhysicalDeviceTransformFeedbackFeaturesEXT::geometryStreams feature must be enabled" + "text": "If the pipeline requires pre-rasterization shader state, and the last pre-rasterization shader stage is a geometry shader, and that geometry shader uses the GeometryStreams capability, then VkPhysicalDeviceTransformFeedbackFeaturesEXT::geometryStreams feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-None-02322", - "text": " If the pipeline requires pre-rasterization shader state, and there are any mesh shader stages in the pipeline there must not be any shader stage in the pipeline with a Xfb execution mode" + "text": "If the pipeline requires pre-rasterization shader state, and there are any mesh shader stages in the pipeline there must not be any shader stage in the pipeline with a Xfb execution mode", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-lineRasterizationMode-02766", - "text": " If the pipeline requires pre-rasterization shader state and at least one of fragment output interface state or fragment shader state, and pMultisampleState is not NULL, the lineRasterizationMode member of a VkPipelineRasterizationLineStateCreateInfoEXT structure included in the pNext chain of pRasterizationState is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT or VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the alphaToCoverageEnable, alphaToOneEnable, and sampleShadingEnable members of pMultisampleState must all be VK_FALSE" + "text": "If the pipeline requires pre-rasterization shader state and at least one of fragment output interface state or fragment shader state, and pMultisampleState is not NULL, the lineRasterizationMode member of a VkPipelineRasterizationLineStateCreateInfoEXT structure included in the pNext chain of pRasterizationState is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT or VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the alphaToCoverageEnable, alphaToOneEnable, and sampleShadingEnable members of pMultisampleState must all be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-stippledLineEnable-02767", - "text": " If the pipeline requires pre-rasterization shader state, the stippledLineEnable member of VkPipelineRasterizationLineStateCreateInfoEXT is VK_TRUE, and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_LINE_STIPPLE_EXT, then the lineStippleFactor member of VkPipelineRasterizationLineStateCreateInfoEXT must be in the range [1,256]" + "text": "If the pipeline requires pre-rasterization shader state, the stippledLineEnable member of VkPipelineRasterizationLineStateCreateInfoEXT is VK_TRUE, and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_LINE_STIPPLE_EXT, then the lineStippleFactor member of VkPipelineRasterizationLineStateCreateInfoEXT must be in the range [1,256]", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-03372", - "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR" + "text": "flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-03373", - "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR" + "text": "flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-03374", - "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR" + "text": "flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-03375", - "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR" + "text": "flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-03376", - "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR" + "text": "flags must not include VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-03377", - "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR" + "text": "flags must not include VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-03577", - "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR" + "text": "flags must not include VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-04947", - "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV" + "text": "flags must not include VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03378", - "text": " If the extendedDynamicState feature is not enabled, and the value of VkApplicationInfo::apiVersion used to create the VkInstance is less than Version 1.3 there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_CULL_MODE, VK_DYNAMIC_STATE_FRONT_FACE, VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY, VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT, VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT, VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE, VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE, VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE, VK_DYNAMIC_STATE_DEPTH_COMPARE_OP, VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE, VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE, or VK_DYNAMIC_STATE_STENCIL_OP" + "text": "If the extendedDynamicState feature is not enabled, and the value of VkApplicationInfo::apiVersion used to create the VkInstance is less than Version 1.3 there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_CULL_MODE, VK_DYNAMIC_STATE_FRONT_FACE, VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY, VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT, VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT, VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE, VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE, VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE, VK_DYNAMIC_STATE_DEPTH_COMPARE_OP, VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE, VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE, or VK_DYNAMIC_STATE_STENCIL_OP", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03379", - "text": " If the pipeline requires pre-rasterization shader state, and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT is included in the pDynamicStates array then viewportCount must be zero" + "text": "If the pipeline requires pre-rasterization shader state, and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT is included in the pDynamicStates array then viewportCount must be zero", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03380", - "text": " If the pipeline requires pre-rasterization shader state, and VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT is included in the pDynamicStates array then scissorCount must be zero" + "text": "If the pipeline requires pre-rasterization shader state, and VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT is included in the pDynamicStates array then scissorCount must be zero", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04132", - "text": " If the pipeline requires pre-rasterization shader state, and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT is included in the pDynamicStates array then VK_DYNAMIC_STATE_VIEWPORT must not be present" + "text": "If the pipeline requires pre-rasterization shader state, and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT is included in the pDynamicStates array then VK_DYNAMIC_STATE_VIEWPORT must not be present", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04133", - "text": " If the pipeline requires pre-rasterization shader state, and VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT is included in the pDynamicStates array then VK_DYNAMIC_STATE_SCISSOR must not be present" + "text": "If the pipeline requires pre-rasterization shader state, and VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT is included in the pDynamicStates array then VK_DYNAMIC_STATE_SCISSOR must not be present", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07065", - "text": " If the pipeline requires pre-rasterization shader state, and includes a mesh shader, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY, or VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE" + "text": "If the pipeline requires pre-rasterization shader state, and includes a mesh shader, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY, or VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04868", - "text": " If the extendedDynamicState2 feature is not enabled, and the value of VkApplicationInfo::apiVersion used to create the VkInstance is less than Version 1.3 there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE, VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE, or VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE" + "text": "If the extendedDynamicState2 feature is not enabled, and the value of VkApplicationInfo::apiVersion used to create the VkInstance is less than Version 1.3 there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE, VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE, or VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04869", - "text": " If the extendedDynamicState2LogicOp feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_LOGIC_OP_EXT" + "text": "If the extendedDynamicState2LogicOp feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_LOGIC_OP_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04870", - "text": " If the extendedDynamicState2PatchControlPoints feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT" + "text": "If the extendedDynamicState2PatchControlPoints feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07066", - "text": " If the pipeline requires pre-rasterization shader state, and includes a mesh shader, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE, or VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT" + "text": "If the pipeline requires pre-rasterization shader state, and includes a mesh shader, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE, or VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-02877", - "text": " If flags includes VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV, then the deviceGeneratedCommands feature must be enabled" + "text": "If flags includes VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV, then the deviceGeneratedCommands feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-02966", - "text": " If the pipeline requires pre-rasterization shader state and flags includes VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV, then all stages must not specify Xfb execution mode" + "text": "If the pipeline requires pre-rasterization shader state and flags includes VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV, then all stages must not specify Xfb execution mode", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-libraryCount-06648", - "text": " If the pipeline is not created with a complete set of state, or VkPipelineLibraryCreateInfoKHR::libraryCount is not 0, VkGraphicsPipelineShaderGroupsCreateInfoNV::groupCount and VkGraphicsPipelineShaderGroupsCreateInfoNV::pipelineCount must be 0" + "text": "If the pipeline is not created with a complete set of state, or VkPipelineLibraryCreateInfoKHR::libraryCount is not 0, VkGraphicsPipelineShaderGroupsCreateInfoNV::groupCount and VkGraphicsPipelineShaderGroupsCreateInfoNV::pipelineCount must be 0", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-libraryCount-06649", - "text": " If the pipeline is created with a complete set of state, and VkPipelineLibraryCreateInfoKHR::libraryCount is 0, and the pNext chain includes an instance of VkGraphicsPipelineShaderGroupsCreateInfoNV, VkGraphicsPipelineShaderGroupsCreateInfoNV::groupCount must be greater than 0" + "text": "If the pipeline is created with a complete set of state, and VkPipelineLibraryCreateInfoKHR::libraryCount is 0, and the pNext chain includes an instance of VkGraphicsPipelineShaderGroupsCreateInfoNV, VkGraphicsPipelineShaderGroupsCreateInfoNV::groupCount must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pipelineCreationCacheControl-02878", - "text": " If the pipelineCreationCacheControl feature is not enabled, flags must not include VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT or VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT" + "text": "If the pipelineCreationCacheControl feature is not enabled, flags must not include VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT or VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pipelineProtectedAccess-07368", - "text": " If the pipelineProtectedAccess feature is not enabled, flags must not include VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT or VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT" + "text": "If the pipelineProtectedAccess feature is not enabled, flags must not include VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT or VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-07369", - "text": " flags must not include both VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT and VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT" + "text": "flags must not include both VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT and VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04494", - "text": " If the pipeline requires pre-rasterization shader state or fragment shader state and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, VkPipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.width must be greater than or equal to 1" + "text": "If the pipeline requires pre-rasterization shader state or fragment shader state and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, VkPipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.width must be greater than or equal to 1", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04495", - "text": " If the pipeline requires pre-rasterization shader state or fragment shader state and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, VkPipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.height must be greater than or equal to 1" + "text": "If the pipeline requires pre-rasterization shader state or fragment shader state and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, VkPipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.height must be greater than or equal to 1", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04496", - "text": " If the pipeline requires pre-rasterization shader state or fragment shader state and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, VkPipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.width must be a power-of-two value" + "text": "If the pipeline requires pre-rasterization shader state or fragment shader state and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, VkPipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.width must be a power-of-two value", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04497", - "text": " If the pipeline requires pre-rasterization shader state or fragment shader state and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, VkPipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.height must be a power-of-two value" + "text": "If the pipeline requires pre-rasterization shader state or fragment shader state and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, VkPipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.height must be a power-of-two value", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04498", - "text": " If the pipeline requires pre-rasterization shader state or fragment shader state and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, VkPipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.width must be less than or equal to 4" + "text": "If the pipeline requires pre-rasterization shader state or fragment shader state and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, VkPipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.width must be less than or equal to 4", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04499", - "text": " If the pipeline requires pre-rasterization shader state or fragment shader state and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, VkPipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.height must be less than or equal to 4" + "text": "If the pipeline requires pre-rasterization shader state or fragment shader state and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, VkPipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.height must be less than or equal to 4", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04500", - "text": " If the pipeline requires pre-rasterization shader state or fragment shader state and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, and the pipelineFragmentShadingRate feature is not enabled, VkPipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.width and VkPipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.height must both be equal to 1" + "text": "If the pipeline requires pre-rasterization shader state or fragment shader state and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, and the pipelineFragmentShadingRate feature is not enabled, VkPipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.width and VkPipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.height must both be equal to 1", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-06567", - "text": " If the pipeline requires pre-rasterization shader state or fragment shader state and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, VkPipelineFragmentShadingRateStateCreateInfoKHR::combinerOps[0] must be a valid VkFragmentShadingRateCombinerOpKHR value" + "text": "If the pipeline requires pre-rasterization shader state or fragment shader state and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, VkPipelineFragmentShadingRateStateCreateInfoKHR::combinerOps[0] must be a valid VkFragmentShadingRateCombinerOpKHR value", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-06568", - "text": " If the pipeline requires pre-rasterization shader state or fragment shader state and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, VkPipelineFragmentShadingRateStateCreateInfoKHR::combinerOps[1] must be a valid VkFragmentShadingRateCombinerOpKHR value" + "text": "If the pipeline requires pre-rasterization shader state or fragment shader state and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, VkPipelineFragmentShadingRateStateCreateInfoKHR::combinerOps[1] must be a valid VkFragmentShadingRateCombinerOpKHR value", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04501", - "text": " If the pipeline requires pre-rasterization shader state or fragment shader state and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, and the primitiveFragmentShadingRate feature is not enabled, VkPipelineFragmentShadingRateStateCreateInfoKHR::combinerOps[0] must be VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR" + "text": "If the pipeline requires pre-rasterization shader state or fragment shader state and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, and the primitiveFragmentShadingRate feature is not enabled, VkPipelineFragmentShadingRateStateCreateInfoKHR::combinerOps[0] must be VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04502", - "text": " If the pipeline requires pre-rasterization shader state or fragment shader state and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, and the attachmentFragmentShadingRate feature is not enabled, VkPipelineFragmentShadingRateStateCreateInfoKHR::combinerOps[1] must be VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR" + "text": "If the pipeline requires pre-rasterization shader state or fragment shader state and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, and the attachmentFragmentShadingRate feature is not enabled, VkPipelineFragmentShadingRateStateCreateInfoKHR::combinerOps[1] must be VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-primitiveFragmentShadingRateWithMultipleViewports-04503", - "text": " If the pipeline requires pre-rasterization shader state and the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT is not included in pDynamicState->pDynamicStates, and VkPipelineViewportStateCreateInfo::viewportCount is greater than 1, entry points specified in pStages must not write to the PrimitiveShadingRateKHR built-in" + "text": "If the pipeline requires pre-rasterization shader state and the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT is not included in pDynamicState->pDynamicStates, and VkPipelineViewportStateCreateInfo::viewportCount is greater than 1, entry points specified in pStages must not write to the PrimitiveShadingRateKHR built-in", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-primitiveFragmentShadingRateWithMultipleViewports-04504", - "text": " If the pipeline requires pre-rasterization shader state and the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and entry points specified in pStages write to the ViewportIndex built-in, they must not also write to the PrimitiveShadingRateKHR built-in" + "text": "If the pipeline requires pre-rasterization shader state and the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and entry points specified in pStages write to the ViewportIndex built-in, they must not also write to the PrimitiveShadingRateKHR built-in", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-primitiveFragmentShadingRateWithMultipleViewports-04505", - "text": " If the pipeline requires pre-rasterization shader state and the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and entry points specified in pStages write to the ViewportMaskNV built-in, they must not also write to the PrimitiveShadingRateKHR built-in" + "text": "If the pipeline requires pre-rasterization shader state and the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and entry points specified in pStages write to the ViewportMaskNV built-in, they must not also write to the PrimitiveShadingRateKHR built-in", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-fragmentShadingRateNonTrivialCombinerOps-04506", - "text": " If the pipeline requires pre-rasterization shader state or fragment shader state, the fragmentShadingRateNonTrivialCombinerOps limit is not supported, and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, elements of VkPipelineFragmentShadingRateStateCreateInfoKHR::combinerOps must be VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR or VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR" + "text": "If the pipeline requires pre-rasterization shader state or fragment shader state, the fragmentShadingRateNonTrivialCombinerOps limit is not supported, and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, elements of VkPipelineFragmentShadingRateStateCreateInfoKHR::combinerOps must be VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR or VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-None-06569", - "text": " If the pipeline requires fragment shader state and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, VkPipelineFragmentShadingRateEnumStateCreateInfoNV::shadingRateType must be a valid VkFragmentShadingRateTypeNV value" + "text": "If the pipeline requires fragment shader state and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, VkPipelineFragmentShadingRateEnumStateCreateInfoNV::shadingRateType must be a valid VkFragmentShadingRateTypeNV value", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-06570", - "text": " If the pipeline requires fragment shader state and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, VkPipelineFragmentShadingRateEnumStateCreateInfoNV::shadingRate must be a valid VkFragmentShadingRateNV value" + "text": "If the pipeline requires fragment shader state and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, VkPipelineFragmentShadingRateEnumStateCreateInfoNV::shadingRate must be a valid VkFragmentShadingRateNV value", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-06571", - "text": " If the pipeline requires fragment shader state and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, VkPipelineFragmentShadingRateEnumStateCreateInfoNV::combinerOps[0] must be a valid VkFragmentShadingRateCombinerOpKHR value" + "text": "If the pipeline requires fragment shader state and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, VkPipelineFragmentShadingRateEnumStateCreateInfoNV::combinerOps[0] must be a valid VkFragmentShadingRateCombinerOpKHR value", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-06572", - "text": " If the pipeline requires fragment shader state and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, VkPipelineFragmentShadingRateEnumStateCreateInfoNV::combinerOps[1] must be a valid VkFragmentShadingRateCombinerOpKHR value" + "text": "If the pipeline requires fragment shader state and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, VkPipelineFragmentShadingRateEnumStateCreateInfoNV::combinerOps[1] must be a valid VkFragmentShadingRateCombinerOpKHR value", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04569", - "text": " If the pipeline requires fragment shader state and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, and the fragmentShadingRateEnums feature is not enabled, VkPipelineFragmentShadingRateEnumStateCreateInfoNV::shadingRateType must be equal to VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV" + "text": "If the pipeline requires fragment shader state and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, and the fragmentShadingRateEnums feature is not enabled, VkPipelineFragmentShadingRateEnumStateCreateInfoNV::shadingRateType must be equal to VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04570", - "text": " If the pipeline requires fragment shader state and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, and the pipelineFragmentShadingRate feature is not enabled, VkPipelineFragmentShadingRateEnumStateCreateInfoNV::shadingRate must be equal to VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV" + "text": "If the pipeline requires fragment shader state and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, and the pipelineFragmentShadingRate feature is not enabled, VkPipelineFragmentShadingRateEnumStateCreateInfoNV::shadingRate must be equal to VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04571", - "text": " If the pipeline requires fragment shader state and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, and the primitiveFragmentShadingRate feature is not enabled, VkPipelineFragmentShadingRateEnumStateCreateInfoNV::combinerOps[0] must be VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR" + "text": "If the pipeline requires fragment shader state and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, and the primitiveFragmentShadingRate feature is not enabled, VkPipelineFragmentShadingRateEnumStateCreateInfoNV::combinerOps[0] must be VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04572", - "text": " If the pipeline requires fragment shader state and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, and the attachmentFragmentShadingRate feature is not enabled, VkPipelineFragmentShadingRateEnumStateCreateInfoNV::combinerOps[1] must be VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR" + "text": "If the pipeline requires fragment shader state and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, and the attachmentFragmentShadingRate feature is not enabled, VkPipelineFragmentShadingRateEnumStateCreateInfoNV::combinerOps[1] must be VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-fragmentShadingRateNonTrivialCombinerOps-04573", - "text": " If the pipeline requires fragment shader state, and the fragmentShadingRateNonTrivialCombinerOps limit is not supported and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, elements of VkPipelineFragmentShadingRateEnumStateCreateInfoNV::combinerOps must be VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR or VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR" + "text": "If the pipeline requires fragment shader state, and the fragmentShadingRateNonTrivialCombinerOps limit is not supported and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, elements of VkPipelineFragmentShadingRateEnumStateCreateInfoNV::combinerOps must be VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR or VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-None-04574", - "text": " If the pipeline requires fragment shader state, and the supersampleFragmentShadingRates feature is not enabled, VkPipelineFragmentShadingRateEnumStateCreateInfoNV::shadingRate must not be equal to VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV, VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV, VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV, or VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV" + "text": "If the pipeline requires fragment shader state, and the supersampleFragmentShadingRates feature is not enabled, VkPipelineFragmentShadingRateEnumStateCreateInfoNV::shadingRate must not be equal to VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV, VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV, VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV, or VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-None-04575", - "text": " If the pipeline requires fragment shader state, and the noInvocationFragmentShadingRates feature is not enabled, VkPipelineFragmentShadingRateEnumStateCreateInfoNV::shadingRate must not be equal to VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV" + "text": "If the pipeline requires fragment shader state, and the noInvocationFragmentShadingRates feature is not enabled, VkPipelineFragmentShadingRateEnumStateCreateInfoNV::shadingRate must not be equal to VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03578", - "text": " All elements of the pDynamicStates member of pDynamicState must not be VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR" + "text": "All elements of the pDynamicStates member of pDynamicState must not be VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04807", - "text": " If the pipeline requires pre-rasterization shader state and the vertexInputDynamicState feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_VERTEX_INPUT_EXT" + "text": "If the pipeline requires pre-rasterization shader state and the vertexInputDynamicState feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_VERTEX_INPUT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07067", - "text": " If the pipeline requires pre-rasterization shader state, and includes a mesh shader, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_VERTEX_INPUT_EXT" + "text": "If the pipeline requires pre-rasterization shader state, and includes a mesh shader, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_VERTEX_INPUT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04800", - "text": " If the colorWriteEnable feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT" + "text": "If the colorWriteEnable feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-rasterizationSamples-04899", - "text": " If the pipeline requires fragment shader state, and the VK_QCOM_render_pass_shader_resolve extension is enabled, rasterizationSamples is not dynamic, and if subpass has any input attachments, and if the subpass description contains VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM, then the sample count of the input attachments must equal rasterizationSamples" + "text": "If the pipeline requires fragment shader state, and the VK_QCOM_render_pass_shader_resolve extension is enabled, rasterizationSamples is not dynamic, and if subpass has any input attachments, and if the subpass description contains VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM, then the sample count of the input attachments must equal rasterizationSamples", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-sampleShadingEnable-04900", - "text": " If the pipeline requires fragment shader state, and the VK_QCOM_render_pass_shader_resolve extension is enabled, and if the subpass description contains VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM, then sampleShadingEnable must be false" + "text": "If the pipeline requires fragment shader state, and the VK_QCOM_render_pass_shader_resolve extension is enabled, and if the subpass description contains VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM, then sampleShadingEnable must be false", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-04901", - "text": " If flags includes VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM, then the subpass must be the last subpass in a subpass dependency chain" + "text": "If flags includes VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM, then the subpass must be the last subpass in a subpass dependency chain", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-04902", - "text": " If flags includes VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM, and if pResolveAttachments is not NULL, then each resolve attachment must be VK_ATTACHMENT_UNUSED" + "text": "If flags includes VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM, and if pResolveAttachments is not NULL, then each resolve attachment must be VK_ATTACHMENT_UNUSED", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06575", - "text": " If the pipeline requires pre-rasterization shader state, fragment shader state, or fragment output interface state, renderPass must be VK_NULL_HANDLE or a valid render pass object" + "text": "If the pipeline requires pre-rasterization shader state, fragment shader state, or fragment output interface state, renderPass must be VK_NULL_HANDLE or a valid render pass object", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-dynamicRendering-06576", - "text": " If the dynamicRendering feature is not enabled and the pipeline requires pre-rasterization shader state, fragment shader state, or fragment output interface state, renderPass must not be VK_NULL_HANDLE" + "text": "If the dynamicRendering feature is not enabled and the pipeline requires pre-rasterization shader state, fragment shader state, or fragment output interface state, renderPass must not be VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-multiview-06577", - "text": " If the multiview feature is not enabled, the pipeline requires pre-rasterization shader state, fragment shader state, or fragment output interface state, and renderPass is VK_NULL_HANDLE, VkPipelineRenderingCreateInfo::viewMask must be 0" + "text": "If the multiview feature is not enabled, the pipeline requires pre-rasterization shader state, fragment shader state, or fragment output interface state, and renderPass is VK_NULL_HANDLE, VkPipelineRenderingCreateInfo::viewMask must be 0", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06578", - "text": " If the pipeline requires pre-rasterization shader state, fragment shader state, or fragment output interface state, and renderPass is VK_NULL_HANDLE, the index of the most significant bit in VkPipelineRenderingCreateInfo::viewMask must be less than maxMultiviewViewCount" + "text": "If the pipeline requires pre-rasterization shader state, fragment shader state, or fragment output interface state, and renderPass is VK_NULL_HANDLE, the index of the most significant bit in VkPipelineRenderingCreateInfo::viewMask must be less than maxMultiviewViewCount", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06579", - "text": " If the pipeline requires fragment output interface state, and renderPass is VK_NULL_HANDLE, and VkPipelineRenderingCreateInfo::colorAttachmentCount is not 0, VkPipelineRenderingCreateInfo::pColorAttachmentFormats must be a valid pointer to an array of colorAttachmentCount valid VkFormat values" + "text": "If the pipeline requires fragment output interface state, and renderPass is VK_NULL_HANDLE, and VkPipelineRenderingCreateInfo::colorAttachmentCount is not 0, VkPipelineRenderingCreateInfo::pColorAttachmentFormats must be a valid pointer to an array of colorAttachmentCount valid VkFormat values", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06580", - "text": " If the pipeline requires fragment output interface state, and renderPass is VK_NULL_HANDLE, each element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats must be a valid VkFormat value" + "text": "If the pipeline requires fragment output interface state, and renderPass is VK_NULL_HANDLE, each element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats must be a valid VkFormat value", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06582", - "text": " If the pipeline requires fragment output interface state, renderPass is VK_NULL_HANDLE, and any element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats is not VK_FORMAT_UNDEFINED, that format must be a format with potential format features that include VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT or VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV" + "text": "If the pipeline requires fragment output interface state, renderPass is VK_NULL_HANDLE, and any element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats is not VK_FORMAT_UNDEFINED, that format must be a format with potential format features that include VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT or VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06583", - "text": " If the pipeline requires fragment output interface state, and renderPass is VK_NULL_HANDLE, VkPipelineRenderingCreateInfo::depthAttachmentFormat must be a valid VkFormat value" + "text": "If the pipeline requires fragment output interface state, and renderPass is VK_NULL_HANDLE, VkPipelineRenderingCreateInfo::depthAttachmentFormat must be a valid VkFormat value", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06584", - "text": " If the pipeline requires fragment output interface state, and renderPass is VK_NULL_HANDLE, VkPipelineRenderingCreateInfo::stencilAttachmentFormat must be a valid VkFormat value" + "text": "If the pipeline requires fragment output interface state, and renderPass is VK_NULL_HANDLE, VkPipelineRenderingCreateInfo::stencilAttachmentFormat must be a valid VkFormat value", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06585", - "text": " If the pipeline requires fragment output interface state, renderPass is VK_NULL_HANDLE, and VkPipelineRenderingCreateInfo::depthAttachmentFormat is not VK_FORMAT_UNDEFINED, it must be a format with potential format features that include VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT" + "text": "If the pipeline requires fragment output interface state, renderPass is VK_NULL_HANDLE, and VkPipelineRenderingCreateInfo::depthAttachmentFormat is not VK_FORMAT_UNDEFINED, it must be a format with potential format features that include VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06586", - "text": " If the pipeline requires fragment output interface state, renderPass is VK_NULL_HANDLE, and VkPipelineRenderingCreateInfo::stencilAttachmentFormat is not VK_FORMAT_UNDEFINED, it must be a format with potential format features that include VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT" + "text": "If the pipeline requires fragment output interface state, renderPass is VK_NULL_HANDLE, and VkPipelineRenderingCreateInfo::stencilAttachmentFormat is not VK_FORMAT_UNDEFINED, it must be a format with potential format features that include VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06587", - "text": " If the pipeline requires fragment output interface state, renderPass is VK_NULL_HANDLE, and VkPipelineRenderingCreateInfo::depthAttachmentFormat is not VK_FORMAT_UNDEFINED, it must be a format that includes a depth component" + "text": "If the pipeline requires fragment output interface state, renderPass is VK_NULL_HANDLE, and VkPipelineRenderingCreateInfo::depthAttachmentFormat is not VK_FORMAT_UNDEFINED, it must be a format that includes a depth component", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06588", - "text": " If the pipeline requires fragment output interface state, renderPass is VK_NULL_HANDLE, and VkPipelineRenderingCreateInfo::stencilAttachmentFormat is not VK_FORMAT_UNDEFINED, it must be a format that includes a stencil component" + "text": "If the pipeline requires fragment output interface state, renderPass is VK_NULL_HANDLE, and VkPipelineRenderingCreateInfo::stencilAttachmentFormat is not VK_FORMAT_UNDEFINED, it must be a format that includes a stencil component", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06589", - "text": " If the pipeline requires fragment output interface state, renderPass is VK_NULL_HANDLE, VkPipelineRenderingCreateInfo::depthAttachmentFormat is not VK_FORMAT_UNDEFINED, and VkPipelineRenderingCreateInfo::stencilAttachmentFormat is not VK_FORMAT_UNDEFINED, depthAttachmentFormat must equal stencilAttachmentFormat" + "text": "If the pipeline requires fragment output interface state, renderPass is VK_NULL_HANDLE, VkPipelineRenderingCreateInfo::depthAttachmentFormat is not VK_FORMAT_UNDEFINED, and VkPipelineRenderingCreateInfo::stencilAttachmentFormat is not VK_FORMAT_UNDEFINED, depthAttachmentFormat must equal stencilAttachmentFormat", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-09033", - "text": " If renderPass is VK_NULL_HANDLE, the pipeline is being created with fragment shader state and fragment output interface state, and either of VkPipelineRenderingCreateInfo::depthAttachmentFormat or VkPipelineRenderingCreateInfo::stencilAttachmentFormat are not VK_FORMAT_UNDEFINED, and the VK_EXT_extended_dynamic_state3 extension is not enabled or any of the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE, VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE, VK_DYNAMIC_STATE_DEPTH_COMPARE_OP, VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE, VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE, VK_DYNAMIC_STATE_STENCIL_OP, or VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic states are not set, pDepthStencilState must be a valid pointer to a valid VkPipelineDepthStencilStateCreateInfo structure" + "text": "If renderPass is VK_NULL_HANDLE, the pipeline is being created with fragment shader state and fragment output interface state, and either of VkPipelineRenderingCreateInfo::depthAttachmentFormat or VkPipelineRenderingCreateInfo::stencilAttachmentFormat are not VK_FORMAT_UNDEFINED, and the VK_EXT_extended_dynamic_state3 extension is not enabled or any of the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE, VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE, VK_DYNAMIC_STATE_DEPTH_COMPARE_OP, VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE, VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE, VK_DYNAMIC_STATE_STENCIL_OP, or VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic states are not set, pDepthStencilState must be a valid pointer to a valid VkPipelineDepthStencilStateCreateInfo structure", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDepthStencilState-09034", - "text": " If pDepthStencilState is not NULL it must be a valid pointer to a valid VkPipelineDepthStencilStateCreateInfo structure" + "text": "If pDepthStencilState is not NULL it must be a valid pointer to a valid VkPipelineDepthStencilStateCreateInfo structure", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-09035", - "text": " If renderPass is VK_NULL_HANDLE and the pipeline is being created with fragment shader state but not fragment output interface state, and the VK_EXT_extended_dynamic_state3 extension is not enabled, or any of the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE, VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE, VK_DYNAMIC_STATE_DEPTH_COMPARE_OP, VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE, VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE, VK_DYNAMIC_STATE_STENCIL_OP, or VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic states are not set, pDepthStencilState must be a valid pointer to a valid VkPipelineDepthStencilStateCreateInfo structure" + "text": "If renderPass is VK_NULL_HANDLE and the pipeline is being created with fragment shader state but not fragment output interface state, and the VK_EXT_extended_dynamic_state3 extension is not enabled, or any of the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE, VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE, VK_DYNAMIC_STATE_DEPTH_COMPARE_OP, VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE, VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE, VK_DYNAMIC_STATE_STENCIL_OP, or VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic states are not set, pDepthStencilState must be a valid pointer to a valid VkPipelineDepthStencilStateCreateInfo structure", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDepthStencilState-09036", - "text": " If pDepthStencilState is not NULL it must be a valid pointer to a valid VkPipelineDepthStencilStateCreateInfo structure" + "text": "If pDepthStencilState is not NULL it must be a valid pointer to a valid VkPipelineDepthStencilStateCreateInfo structure", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-09037", - "text": " If renderPass is VK_NULL_HANDLE, the pipeline is being created with fragment output interface state, and VkPipelineRenderingCreateInfo::colorAttachmentCount is not equal to 0, and the VK_EXT_extended_dynamic_state3 extension is not enabled, or any of the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT, VK_DYNAMIC_STATE_LOGIC_OP_EXT, VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT, VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT, VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, or VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic states are not set, pColorBlendState must be a valid pointer to a valid VkPipelineColorBlendStateCreateInfo structure" + "text": "If renderPass is VK_NULL_HANDLE, the pipeline is being created with fragment output interface state, and VkPipelineRenderingCreateInfo::colorAttachmentCount is not equal to 0, and the VK_EXT_extended_dynamic_state3 extension is not enabled, or any of the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT, VK_DYNAMIC_STATE_LOGIC_OP_EXT, VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT, VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT, VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, or VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic states are not set, pColorBlendState must be a valid pointer to a valid VkPipelineColorBlendStateCreateInfo structure", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pColorBlendState-09038", - "text": " If pColorBlendState is not NULL it must be a valid pointer to a valid VkPipelineColorBlendStateCreateInfo structure" + "text": "If pColorBlendState is not NULL it must be a valid pointer to a valid VkPipelineColorBlendStateCreateInfo structure", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06055", - "text": " If renderPass is VK_NULL_HANDLE and the pipeline is being created with fragment output interface state, pColorBlendState->attachmentCount must be equal to VkPipelineRenderingCreateInfo::colorAttachmentCount" + "text": "If renderPass is VK_NULL_HANDLE, pColorBlendState is not dynamic, and the pipeline is being created with fragment output interface state, pColorBlendState->attachmentCount must be equal to VkPipelineRenderingCreateInfo::colorAttachmentCount", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06057", - "text": " If renderPass is VK_NULL_HANDLE, the pipeline is being created with pre-rasterization shader state, VkPipelineRenderingCreateInfo::viewMask is not 0, and the multiviewTessellationShader feature is not enabled, then pStages must not include tessellation shaders" + "text": "If renderPass is VK_NULL_HANDLE, the pipeline is being created with pre-rasterization shader state, VkPipelineRenderingCreateInfo::viewMask is not 0, and the multiviewTessellationShader feature is not enabled, then pStages must not include tessellation shaders", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06058", - "text": " If renderPass is VK_NULL_HANDLE, the pipeline is being created with pre-rasterization shader state, VkPipelineRenderingCreateInfo::viewMask is not 0, and the multiviewGeometryShader feature is not enabled, then pStages must not include a geometry shader" + "text": "If renderPass is VK_NULL_HANDLE, the pipeline is being created with pre-rasterization shader state, VkPipelineRenderingCreateInfo::viewMask is not 0, and the multiviewGeometryShader feature is not enabled, then pStages must not include a geometry shader", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-07718", - "text": " If renderPass is VK_NULL_HANDLE, the pipeline is being created with pre-rasterization shader state, and VkPipelineRenderingCreateInfo::viewMask is not 0, all of the shaders in the pipeline must not write to the Layer built-in output" + "text": "If renderPass is VK_NULL_HANDLE, the pipeline is being created with pre-rasterization shader state, and VkPipelineRenderingCreateInfo::viewMask is not 0, all of the shaders in the pipeline must not write to the Layer built-in output", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06059", - "text": " If renderPass is VK_NULL_HANDLE, the pipeline is being created with pre-rasterization shader state, and VkPipelineRenderingCreateInfo::viewMask is not 0, all of the shaders in the pipeline must not include variables decorated with the Layer built-in decoration in their interfaces" + "text": "If renderPass is VK_NULL_HANDLE, the pipeline is being created with pre-rasterization shader state, and VkPipelineRenderingCreateInfo::viewMask is not 0, all of the shaders in the pipeline must not include variables decorated with the Layer built-in decoration in their interfaces", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-07719", - "text": " If renderPass is VK_NULL_HANDLE, the pipeline is being created with pre-rasterization shader state, and VkPipelineRenderingCreateInfo::viewMask is not 0, all of the shaders in the pipeline must not include variables decorated with the ViewIndex built-in decoration in their interfaces" + "text": "If renderPass is VK_NULL_HANDLE, the pipeline is being created with pre-rasterization shader state, and VkPipelineRenderingCreateInfo::viewMask is not 0, all of the shaders in the pipeline must not include variables decorated with the ViewIndex built-in decoration in their interfaces", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-07720", - "text": " If renderPass is VK_NULL_HANDLE, the pipeline is being created with pre-rasterization shader state, and VkPipelineRenderingCreateInfo::viewMask is not 0, and multiviewMeshShader is not enabled, then pStages must not include a mesh shader" + "text": "If renderPass is VK_NULL_HANDLE, the pipeline is being created with pre-rasterization shader state, and VkPipelineRenderingCreateInfo::viewMask is not 0, and multiviewMeshShader is not enabled, then pStages must not include a mesh shader", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06061", - "text": " If the pipeline requires fragment shader state and renderPass is VK_NULL_HANDLE, fragment shaders in pStages must not include the InputAttachment capability" + "text": "If the pipeline requires fragment shader state and renderPass is VK_NULL_HANDLE, fragment shaders in pStages must not include the InputAttachment capability", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-08710", - "text": " If the pipeline requires fragment shader state and renderPass is not VK_NULL_HANDLE, fragment shaders in pStages must not include any of the TileImageColorReadAccessEXT, TileImageDepthReadAccessEXT, or TileImageStencilReadAccessEXT capabilities" + "text": "If the pipeline requires fragment shader state and renderPass is not VK_NULL_HANDLE, fragment shaders in pStages must not include any of the TileImageColorReadAccessEXT, TileImageDepthReadAccessEXT, or TileImageStencilReadAccessEXT capabilities", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06062", - "text": " If the pipeline requires fragment output interface state and renderPass is VK_NULL_HANDLE, for each color attachment format defined by the pColorAttachmentFormats member of VkPipelineRenderingCreateInfo, if its potential format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the blendEnable member of the corresponding element of the pAttachments member of pColorBlendState must be VK_FALSE" + "text": "If the pipeline requires fragment output interface state and renderPass is VK_NULL_HANDLE, for each color attachment format defined by the pColorAttachmentFormats member of VkPipelineRenderingCreateInfo, if its potential format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the blendEnable member of the corresponding element of the pAttachments member of pColorBlendState must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06063", - "text": " If the pipeline requires fragment output interface state and renderPass is VK_NULL_HANDLE, if the pNext chain includes VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV, the colorAttachmentCount member of that structure must be equal to the value of VkPipelineRenderingCreateInfo::colorAttachmentCount" + "text": "If the pipeline requires fragment output interface state and renderPass is VK_NULL_HANDLE, if the pNext chain includes VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV, the colorAttachmentCount member of that structure must be equal to the value of VkPipelineRenderingCreateInfo::colorAttachmentCount", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06591", - "text": " If pStages includes a fragment shader stage, and the fragment shader declares the EarlyFragmentTests execution mode, the flags member of VkPipelineDepthStencilStateCreateInfo must not include VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT or VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT" + "text": "If pStages includes a fragment shader stage, and the fragment shader declares the EarlyFragmentTests execution mode, the flags member of VkPipelineDepthStencilStateCreateInfo must not include VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT or VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06482", - "text": " If the pipeline requires fragment output interface state and the flags member of VkPipelineColorBlendStateCreateInfo includes VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT, renderpass must not be VK_NULL_HANDLE" + "text": "If the pipeline requires fragment output interface state and the flags member of VkPipelineColorBlendStateCreateInfo includes VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT, renderpass must not be VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06483", - "text": " If the pipeline requires fragment output interface state and the flags member of VkPipelineDepthStencilStateCreateInfo includes VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT or VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT, renderpass must not be VK_NULL_HANDLE" + "text": "If the pipeline requires fragment output interface state and the flags member of VkPipelineDepthStencilStateCreateInfo includes VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT or VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT, renderpass must not be VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pColorAttachmentSamples-06592", - "text": " If the fragment output interface state, elements of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV must be valid VkSampleCountFlagBits values" + "text": "If the fragment output interface state, elements of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV must be valid VkSampleCountFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-depthStencilAttachmentSamples-06593", - "text": " If the fragment output interface state and the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV is not 0, it must be a valid VkSampleCountFlagBits value" + "text": "If the fragment output interface state and the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV is not 0, it must be a valid VkSampleCountFlagBits value", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06484", - "text": " If the pipeline requires fragment output interface state and the flags member of VkPipelineColorBlendStateCreateInfo includes VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT subpass must have been created with VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT" + "text": "If the pipeline requires fragment output interface state and the flags member of VkPipelineColorBlendStateCreateInfo includes VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT subpass must have been created with VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06485", - "text": " If the pipeline requires fragment shader state and the flags member of VkPipelineDepthStencilStateCreateInfo includes VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT, subpass must have been created with VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT" + "text": "If the pipeline requires fragment shader state and the flags member of VkPipelineDepthStencilStateCreateInfo includes VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT, subpass must have been created with VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06486", - "text": " If the pipeline requires fragment shader state and the flags member of VkPipelineDepthStencilStateCreateInfo includes VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT, subpass must have been created with VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT" + "text": "If the pipeline requires fragment shader state and the flags member of VkPipelineDepthStencilStateCreateInfo includes VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT, subpass must have been created with VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pipelineStageCreationFeedbackCount-06594", - "text": " If VkPipelineCreationFeedbackCreateInfo::pipelineStageCreationFeedbackCount is not 0, it must be equal to stageCount" + "text": "If VkPipelineCreationFeedbackCreateInfo::pipelineStageCreationFeedbackCount is not 0, it must be equal to stageCount", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06595", - "text": " If renderPass is VK_NULL_HANDLE, the pipeline is being created with pre-rasterization shader state or fragment shader state, and VkMultiviewPerViewAttributesInfoNVX::perViewAttributesPositionXOnly is VK_TRUE then VkMultiviewPerViewAttributesInfoNVX::perViewAttributes must also be VK_TRUE" + "text": "If renderPass is VK_NULL_HANDLE, the pipeline is being created with pre-rasterization shader state or fragment shader state, and VkMultiviewPerViewAttributesInfoNVX::perViewAttributesPositionXOnly is VK_TRUE then VkMultiviewPerViewAttributesInfoNVX::perViewAttributes must also be VK_TRUE", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06596", - "text": " If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes only one of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes the other flag, the value of VkMultiviewPerViewAttributesInfoNVX::perViewAttributes specified in both this pipeline and the library must be equal" + "text": "If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes only one of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes the other flag, the value of VkMultiviewPerViewAttributesInfoNVX::perViewAttributes specified in both this pipeline and the library must be equal", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pLibraries-06597", - "text": " If one element of VkPipelineLibraryCreateInfoKHR::pLibraries includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT and another element includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, the value of VkMultiviewPerViewAttributesInfoNVX::perViewAttributes specified in both libraries must be equal" + "text": "If one element of VkPipelineLibraryCreateInfoKHR::pLibraries includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT and another element includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, the value of VkMultiviewPerViewAttributesInfoNVX::perViewAttributes specified in both libraries must be equal", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06598", - "text": " If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes only one of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes the other flag, the value of VkMultiviewPerViewAttributesInfoNVX::perViewAttributesPositionXOnly specified in both this pipeline and the library must be equal" + "text": "If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes only one of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes the other flag, the value of VkMultiviewPerViewAttributesInfoNVX::perViewAttributesPositionXOnly specified in both this pipeline and the library must be equal", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pLibraries-06599", - "text": " If one element of VkPipelineLibraryCreateInfoKHR::pLibraries includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT and another element includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, the value of VkMultiviewPerViewAttributesInfoNVX::perViewAttributesPositionXOnly specified in both libraries must be equal" + "text": "If one element of VkPipelineLibraryCreateInfoKHR::pLibraries includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT and another element includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, the value of VkMultiviewPerViewAttributesInfoNVX::perViewAttributesPositionXOnly specified in both libraries must be equal", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-06600", - "text": " If the pipeline requires pre-rasterization shader state or fragment shader state, pStages must be a valid pointer to an array of stageCount valid VkPipelineShaderStageCreateInfo structures" + "text": "If the pipeline requires pre-rasterization shader state or fragment shader state, pStages must be a valid pointer to an array of stageCount valid VkPipelineShaderStageCreateInfo structures", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pRasterizationState-09039", - "text": " If the VK_EXT_extended_dynamic_state3 extension is not enabled, or any of the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT, VK_DYNAMIC_STATE_SAMPLE_MASK_EXT, VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT, or VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic states are not set then pRasterizationState must be a valid pointer to a valid VkPipelineRasterizationStateCreateInfo structure" + "text": "If the VK_EXT_extended_dynamic_state3 extension is not enabled, or any of the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT, VK_DYNAMIC_STATE_SAMPLE_MASK_EXT, or VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic states are not set, or alphaToOne is enabled on the device and VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT is not set, then pMultisampleState must be a valid pointer to a valid VkPipelineMultisampleStateCreateInfo structure", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pRasterizationState-09040", - "text": " If pRasterizationState is not NULL it must be a valid pointer to a valid VkPipelineRasterizationStateCreateInfo structure" + "text": "If pRasterizationState is not NULL it must be a valid pointer to a valid VkPipelineRasterizationStateCreateInfo structure", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-layout-06602", - "text": " If the pipeline requires fragment shader state or pre-rasterization shader state, layout must be a valid VkPipelineLayout handle" + "text": "If the pipeline requires fragment shader state or pre-rasterization shader state, layout must be a valid VkPipelineLayout handle", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06603", - "text": " If pre-rasterization shader state, fragment shader state, or fragment output state, and renderPass is not VK_NULL_HANDLE, renderPass must be a valid VkRenderPass handle" + "text": "If pre-rasterization shader state, fragment shader state, or fragment output state, and renderPass is not VK_NULL_HANDLE, renderPass must be a valid VkRenderPass handle", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-stageCount-06604", - "text": " If the pipeline requires pre-rasterization shader state or fragment shader state, stageCount must be greater than 0" + "text": "If the pipeline requires pre-rasterization shader state or fragment shader state, stageCount must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-graphicsPipelineLibrary-06606", - "text": " If the graphicsPipelineLibrary feature is not enabled, flags must not include VK_PIPELINE_CREATE_LIBRARY_BIT_KHR" + "text": "If the graphicsPipelineLibrary feature is not enabled, flags must not include VK_PIPELINE_CREATE_LIBRARY_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06608", - "text": " If the pipeline defines, or includes as libraries, all the state subsets required for a complete graphics pipeline, flags must not include VK_PIPELINE_CREATE_LIBRARY_BIT_KHR" + "text": "If the pipeline defines, or includes as libraries, all the state subsets required for a complete graphics pipeline, flags must not include VK_PIPELINE_CREATE_LIBRARY_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06609", - "text": " If flags includes VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT, pipeline libraries included via VkPipelineLibraryCreateInfoKHR must have been created with VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT" + "text": "If flags includes VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT, pipeline libraries included via VkPipelineLibraryCreateInfoKHR must have been created with VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT", + "page": "vkspec" + }, + { + "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-09245", + "text": "If flags includes VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT, flags must also include VK_PIPELINE_CREATE_LIBRARY_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06610", - "text": " If flags includes VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT, pipeline libraries included via VkPipelineLibraryCreateInfoKHR must have been created with VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT" + "text": "If flags includes VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT, pipeline libraries included via VkPipelineLibraryCreateInfoKHR must have been created with VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pLibraries-06611", - "text": " Any pipeline libraries included via VkPipelineLibraryCreateInfoKHR::pLibraries must not include any state subset already defined by this structure or defined by any other pipeline library in VkPipelineLibraryCreateInfoKHR::pLibraries" + "text": "Any pipeline libraries included via VkPipelineLibraryCreateInfoKHR::pLibraries must not include any state subset already defined by this structure or defined by any other pipeline library in VkPipelineLibraryCreateInfoKHR::pLibraries", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06612", - "text": " If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes only one of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes the other flag, and layout was not created with VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT, then the layout used by this pipeline and the library must be identically defined" + "text": "If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes only one of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes the other flag, and layout was not created with VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT, then the layout used by this pipeline and the library must be identically defined", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pLibraries-06613", - "text": " If one element of VkPipelineLibraryCreateInfoKHR::pLibraries includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT and another element includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and the layout specified by either library was not created with VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT, then the layout used by each library must be identically defined" + "text": "If one element of VkPipelineLibraryCreateInfoKHR::pLibraries includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT and another element includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and the layout specified by either library was not created with VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT, then the layout used by each library must be identically defined", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06614", - "text": " If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes only one of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes the other subset, and layout was created with VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT, then the layout used by the library must also have been created with VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT" + "text": "If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes only one of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes the other subset, and layout was created with VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT, then the layout used by the library must also have been created with VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pLibraries-06615", - "text": " If one element of VkPipelineLibraryCreateInfoKHR::pLibraries includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT and another element includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and the layout specified by either library was created with VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT, then the layout used by both libraries must have been created with VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT" + "text": "If one element of VkPipelineLibraryCreateInfoKHR::pLibraries includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT and another element includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and the layout specified by either library was created with VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT, then the layout used by both libraries must have been created with VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06616", - "text": " If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes only one of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes the other subset, and layout was created with VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT, elements of the pSetLayouts array which layout was created with that are not VK_NULL_HANDLE must be identically defined to the element at the same index of pSetLayouts used to create the library’s layout" + "text": "If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes only one of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes the other subset, and layout was created with VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT, elements of the pSetLayouts array which layout was created with that are not VK_NULL_HANDLE must be identically defined to the element at the same index of pSetLayouts used to create the library’s layout", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pLibraries-06617", - "text": " If one element of VkPipelineLibraryCreateInfoKHR::pLibraries includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT and another element includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and the layout specified by either library was created with VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT, elements of the pSetLayouts array which either layout was created with that are not VK_NULL_HANDLE must be identically defined to the element at the same index of pSetLayouts used to create the other library’s layout" + "text": "If one element of VkPipelineLibraryCreateInfoKHR::pLibraries includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT and another element includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and the layout specified by either library was created with VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT, elements of the pSetLayouts array which either layout was created with that are not VK_NULL_HANDLE must be identically defined to the element at the same index of pSetLayouts used to create the other library’s layout", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06618", - "text": " If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes only one of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes the other flag, any descriptor set layout N specified by layout in both this pipeline and the library which include bindings accessed by shader stages in each must be identically defined" + "text": "If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes only one of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes the other flag, any descriptor set layout N specified by layout in both this pipeline and the library which include bindings accessed by shader stages in each must be identically defined", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pLibraries-06619", - "text": " If one element of VkPipelineLibraryCreateInfoKHR::pLibraries includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT and another element includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, any descriptor set layout N specified by layout in both libraries which include bindings accessed by shader stages in each must be identically defined" + "text": "If one element of VkPipelineLibraryCreateInfoKHR::pLibraries includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT and another element includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, any descriptor set layout N specified by layout in both libraries which include bindings accessed by shader stages in each must be identically defined", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06620", - "text": " If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes only one of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes the other flag, push constants specified in layout in both this pipeline and the library which are available to shader stages in each must be identically defined" + "text": "If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes only one of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes the other flag, push constants specified in layout in both this pipeline and the library which are available to shader stages in each must be identically defined", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pLibraries-06621", - "text": " If one element of VkPipelineLibraryCreateInfoKHR::pLibraries includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT and another element includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, push constants specified in layout in both this pipeline and the library which are available to shader stages in each must be identically defined" + "text": "If one element of VkPipelineLibraryCreateInfoKHR::pLibraries includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT and another element includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, push constants specified in layout in both this pipeline and the library which are available to shader stages in each must be identically defined", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06679", - "text": " If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes only one of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes the other subset, and any element of the pSetLayouts array which layout was created with was VK_NULL_HANDLE, then the corresponding element of the pSetLayouts array used to create the library’s layout must not be VK_NULL_HANDLE" + "text": "If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes only one of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes the other subset, and any element of the pSetLayouts array which layout was created with was VK_NULL_HANDLE, then the corresponding element of the pSetLayouts array used to create the library’s layout must not be VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06680", - "text": " If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes only one of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes the other subset, and any element of the pSetLayouts array used to create the library’s layout was VK_NULL_HANDLE, then the corresponding element of the pSetLayouts array used to create this pipeline’s layout must not be VK_NULL_HANDLE" + "text": "If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes only one of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes the other subset, and any element of the pSetLayouts array used to create the library’s layout was VK_NULL_HANDLE, then the corresponding element of the pSetLayouts array used to create this pipeline’s layout must not be VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pLibraries-06681", - "text": " If one element of VkPipelineLibraryCreateInfoKHR::pLibraries includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT and another element includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and any element of the pSetLayouts array used to create each library’s layout was VK_NULL_HANDLE, then the corresponding element of the pSetLayouts array used to create the other library’s layout must not be VK_NULL_HANDLE" + "text": "If one element of VkPipelineLibraryCreateInfoKHR::pLibraries includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT and another element includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and any element of the pSetLayouts array used to create each library’s layout was VK_NULL_HANDLE, then the corresponding element of the pSetLayouts array used to create the other library’s layout must not be VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06756", - "text": " If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes only one of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes the other subset, and any element of the pSetLayouts array which layout was created with was VK_NULL_HANDLE, then the corresponding element of the pSetLayouts array used to create the library’s layout must not have shader bindings for shaders in the other subset" + "text": "If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes only one of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes the other subset, and any element of the pSetLayouts array which layout was created with was VK_NULL_HANDLE, then the corresponding element of the pSetLayouts array used to create the library’s layout must not have shader bindings for shaders in the other subset", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06757", - "text": " If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes only one of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes the other subset, and any element of the pSetLayouts array used to create the library’s layout was VK_NULL_HANDLE, then the corresponding element of the pSetLayouts array used to create this pipeline’s layout must not have shader bindings for shaders in the other subset" + "text": "If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes only one of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes the other subset, and any element of the pSetLayouts array used to create the library’s layout was VK_NULL_HANDLE, then the corresponding element of the pSetLayouts array used to create this pipeline’s layout must not have shader bindings for shaders in the other subset", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pLibraries-06758", - "text": " If one element of VkPipelineLibraryCreateInfoKHR::pLibraries includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT and another element includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and any element of the pSetLayouts array used to create each library’s layout was VK_NULL_HANDLE, then the corresponding element of the pSetLayouts array used to create the other library’s layout must not have shader bindings for shaders in the other subset" + "text": "If one element of VkPipelineLibraryCreateInfoKHR::pLibraries includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT and another element includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and any element of the pSetLayouts array used to create each library’s layout was VK_NULL_HANDLE, then the corresponding element of the pSetLayouts array used to create the other library’s layout must not have shader bindings for shaders in the other subset", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06682", - "text": " If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes both VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT and VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, layout must have been created with no elements of the pSetLayouts array set to VK_NULL_HANDLE" + "text": "If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes both VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT and VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, layout must have been created with no elements of the pSetLayouts array set to VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06683", - "text": " If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT and pRasterizationState->rasterizerDiscardEnable is VK_TRUE, layout must have been created with no elements of the pSetLayouts array set to VK_NULL_HANDLE" + "text": "If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT and pRasterizationState->rasterizerDiscardEnable is VK_TRUE, layout must have been created with no elements of the pSetLayouts array set to VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06684", - "text": " If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes at least one of and no more than two of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, and an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes one of the other flags, the value of subpass must be equal to that used to create the library" + "text": "If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes at least one of and no more than two of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, and an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes one of the other flags, the value of subpass must be equal to that used to create the library", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pLibraries-06623", - "text": " If one element of VkPipelineLibraryCreateInfoKHR::pLibraries includes at least one of and no more than two of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, and another element of VkPipelineLibraryCreateInfoKHR::pLibraries includes one of the other flags, the value of subpass used to create each library must be identical" + "text": "If one element of VkPipelineLibraryCreateInfoKHR::pLibraries includes at least one of and no more than two of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, and another element of VkPipelineLibraryCreateInfoKHR::pLibraries includes one of the other flags, the value of subpass used to create each library must be identical", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderpass-06624", - "text": " If renderpass is not VK_NULL_HANDLE, VkGraphicsPipelineLibraryCreateInfoEXT::flags includes at least one of and no more than two of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, and an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes one of the other flags, renderPass must be compatible with that used to create the library" + "text": "If renderpass is not VK_NULL_HANDLE, VkGraphicsPipelineLibraryCreateInfoEXT::flags includes at least one of and no more than two of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, and an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes one of the other flags, renderPass must be compatible with that used to create the library", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderpass-06625", - "text": " If renderpass is VK_NULL_HANDLE, VkGraphicsPipelineLibraryCreateInfoEXT::flags includes at least one of and no more than two of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, and an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes one of the other flags, the value of renderPass used to create that library must also be VK_NULL_HANDLE" + "text": "If renderpass is VK_NULL_HANDLE, VkGraphicsPipelineLibraryCreateInfoEXT::flags includes at least one of and no more than two of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, and an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes one of the other flags, the value of renderPass used to create that library must also be VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06626", - "text": " If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes at least one of and no more than two of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes one of the other flags, and renderPass is VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::viewMask used by this pipeline and that specified by the library must be identical" + "text": "If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes at least one of and no more than two of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes one of the other flags, and renderPass is VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::viewMask used by this pipeline and that specified by the library must be identical", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pLibraries-06627", - "text": " If one element of VkPipelineLibraryCreateInfoKHR::pLibraries includes at least one of and no more than two of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, another element of VkPipelineLibraryCreateInfoKHR::pLibraries includes one of the other flags, and renderPass was VK_NULL_HANDLE for both libraries, the value of VkPipelineRenderingCreateInfo::viewMask set by each library must be identical" + "text": "If one element of VkPipelineLibraryCreateInfoKHR::pLibraries includes at least one of and no more than two of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, another element of VkPipelineLibraryCreateInfoKHR::pLibraries includes one of the other flags, and renderPass was VK_NULL_HANDLE for both libraries, the value of VkPipelineRenderingCreateInfo::viewMask set by each library must be identical", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pLibraries-06628", - "text": " If one element of VkPipelineLibraryCreateInfoKHR::pLibraries includes at least one of and no more than two of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, and another element of VkPipelineLibraryCreateInfoKHR::pLibraries includes one of the other flags, the renderPass objects used to create each library must be compatible or all equal to VK_NULL_HANDLE" + "text": "If one element of VkPipelineLibraryCreateInfoKHR::pLibraries includes at least one of and no more than two of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, and another element of VkPipelineLibraryCreateInfoKHR::pLibraries includes one of the other flags, the renderPass objects used to create each library must be compatible or all equal to VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pMultisampleState-06629", - "text": " If the pipeline requires fragment shader state pMultisampleState must be NULL or a valid pointer to a valid VkPipelineMultisampleStateCreateInfo structure" + "text": "If the pipeline requires fragment shader state pMultisampleState must be NULL or a valid pointer to a valid VkPipelineMultisampleStateCreateInfo structure", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderpass-06631", - "text": " If the pipeline requires fragment shader state and renderpass is not VK_NULL_HANDLE, then pMultisampleState must not be NULL" + "text": "If the pipeline requires fragment shader state and renderpass is not VK_NULL_HANDLE, then pMultisampleState must not be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-Input-06632", - "text": " If the pipeline requires fragment shader state with a fragment shader that either enables sample shading or decorates any variable in the Input storage class with Sample, then pMultisampleState must not be NULL" + "text": "If the pipeline requires fragment shader state with a fragment shader that either enables sample shading or decorates any variable in the Input storage class with Sample, then pMultisampleState must not be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06633", - "text": " If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT with a pMultisampleState that was not NULL, and an element of VkPipelineLibraryCreateInfoKHR::pLibraries was created with VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, pMultisampleState must be identically defined to that used to create the library" + "text": "If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT with a pMultisampleState that was not NULL, and an element of VkPipelineLibraryCreateInfoKHR::pLibraries was created with VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, pMultisampleState must be identically defined to that used to create the library", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pLibraries-06634", - "text": " If an element of VkPipelineLibraryCreateInfoKHR::pLibraries was created with VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT with a pMultisampleState that was not NULL, and if VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, pMultisampleState must be identically defined to that used to create the library" + "text": "If an element of VkPipelineLibraryCreateInfoKHR::pLibraries was created with VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT with a pMultisampleState that was not NULL, and if VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, pMultisampleState must be identically defined to that used to create the library", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pLibraries-06635", - "text": " If one element of VkPipelineLibraryCreateInfoKHR::pLibraries was created with VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT with a pMultisampleState that was not NULL, and if a different element of VkPipelineLibraryCreateInfoKHR::pLibraries was created with VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, the pMultisampleState used to create each library must be identically defined" + "text": "If one element of VkPipelineLibraryCreateInfoKHR::pLibraries was created with VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT with a pMultisampleState that was not NULL, and if a different element of VkPipelineLibraryCreateInfoKHR::pLibraries was created with VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, the pMultisampleState used to create each library must be identically defined", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pLibraries-06636", - "text": " If one element of VkPipelineLibraryCreateInfoKHR::pLibraries was created with VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT and a value of pMultisampleState->sampleShading equal VK_TRUE, and if a different element of VkPipelineLibraryCreateInfoKHR::pLibraries was created with VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, the pMultisampleState used to create each library must be identically defined" + "text": "If one element of VkPipelineLibraryCreateInfoKHR::pLibraries was created with VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT and a value of pMultisampleState->sampleShading equal VK_TRUE, and if a different element of VkPipelineLibraryCreateInfoKHR::pLibraries was created with VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, the pMultisampleState used to create each library must be identically defined", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06637", - "text": " If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, pMultisampleState->sampleShading is VK_TRUE, and an element of VkPipelineLibraryCreateInfoKHR::pLibraries was created with VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, the pMultisampleState used to create that library must be identically defined pMultisampleState" + "text": "If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, pMultisampleState->sampleShading is VK_TRUE, and an element of VkPipelineLibraryCreateInfoKHR::pLibraries was created with VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, the pMultisampleState used to create that library must be identically defined pMultisampleState", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06638", - "text": " If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes only one of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes the other flag, values specified in VkPipelineFragmentShadingRateStateCreateInfoKHR for both this pipeline and that library must be identical" + "text": "If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes only one of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes the other flag, values specified in VkPipelineFragmentShadingRateStateCreateInfoKHR for both this pipeline and that library must be identical", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pLibraries-06639", - "text": " If one element of VkPipelineLibraryCreateInfoKHR::pLibraries includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT and another element includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, values specified in VkPipelineFragmentShadingRateStateCreateInfoKHR for both this pipeline and that library must be identical" + "text": "If one element of VkPipelineLibraryCreateInfoKHR::pLibraries includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT and another element includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, values specified in VkPipelineFragmentShadingRateStateCreateInfoKHR for both this pipeline and that library must be identical", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06640", - "text": " If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, pStages must be a valid pointer to an array of stageCount valid VkPipelineShaderStageCreateInfo structures" + "text": "If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, pStages must be a valid pointer to an array of stageCount valid VkPipelineShaderStageCreateInfo structures", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-09041", - "text": " If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, and the VK_EXT_extended_dynamic_state3 extension is not enabled, or any of the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT, VK_DYNAMIC_STATE_SAMPLE_MASK_EXT, VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT, or VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic states are not set, pRasterizationState must be a valid pointer to a valid VkPipelineRasterizationStateCreateInfo structure" + "text": "If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, and the VK_EXT_extended_dynamic_state3 extension is not enabled, or any of the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT, VK_DYNAMIC_STATE_SAMPLE_MASK_EXT, or VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic states are not set, or alphaToOne is enabled on the device and VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT is not set, pMultisampleState must be a valid pointer to a valid VkPipelineMultisampleStateCreateInfo structure", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pRasterizationState-09042", - "text": " If pRasterizationState is not NULL it must be a valid pointer to a valid VkPipelineRasterizationStateCreateInfo structure" + "text": "If pRasterizationState is not NULL it must be a valid pointer to a valid VkPipelineRasterizationStateCreateInfo structure", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06642", - "text": " If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, layout must be a valid VkPipelineLayout handle" + "text": "If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, layout must be a valid VkPipelineLayout handle", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06643", - "text": " If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, and renderPass is not VK_NULL_HANDLE, renderPass must be a valid VkRenderPass handle" + "text": "If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, and renderPass is not VK_NULL_HANDLE, renderPass must be a valid VkRenderPass handle", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06644", - "text": " If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, stageCount must be greater than 0" + "text": "If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, stageCount must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06645", - "text": " If VkGraphicsPipelineLibraryCreateInfoEXT::flags is non-zero, if flags includes VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR, any libraries must have also been created with VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR" + "text": "If VkGraphicsPipelineLibraryCreateInfoEXT::flags is non-zero, if flags includes VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR, any libraries must have also been created with VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pLibraries-06646", - "text": " If VkPipelineLibraryCreateInfoKHR::pLibraries includes more than one library, and any library was created with VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR, all libraries must have also been created with VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR" + "text": "If VkPipelineLibraryCreateInfoKHR::pLibraries includes more than one library, and any library was created with VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR, all libraries must have also been created with VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pLibraries-06647", - "text": " If VkPipelineLibraryCreateInfoKHR::pLibraries includes at least one library, VkGraphicsPipelineLibraryCreateInfoEXT::flags is non-zero, and any library was created with VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR, flags must include VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR" + "text": "If VkPipelineLibraryCreateInfoKHR::pLibraries includes at least one library, VkGraphicsPipelineLibraryCreateInfoEXT::flags is non-zero, and any library was created with VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR, flags must include VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-None-07826", - "text": " If the pipeline includes a complete set of state, VkPipelineLayout must be a valid pipeline layout" + "text": "If the pipeline includes a complete set of state, and there are no libraries included in VkPipelineLibraryCreateInfoKHR::pLibraries, then VkPipelineLayout must be a valid pipeline layout", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-layout-07827", - "text": " If the pipeline includes a complete set of state specified entirely by libraries, and each library was created with a VkPipelineLayout created without VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT, then layout must be compatible with the layouts in those libraries" + "text": "If the pipeline includes a complete set of state specified entirely by libraries, and each library was created with a VkPipelineLayout created without VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT, then layout must be compatible with the layouts in those libraries", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06729", - "text": " If flags includes VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT, the pipeline includes a complete set of state specified entirely by libraries, and each library was created with a VkPipelineLayout created with VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT, then layout must be compatible with the union of the libraries' pipeline layouts other than the inclusion/exclusion of VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT" + "text": "If flags includes VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT, the pipeline includes a complete set of state specified entirely by libraries, and each library was created with a VkPipelineLayout created with VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT, then layout must be compatible with the union of the libraries' pipeline layouts other than the inclusion/exclusion of VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06730", - "text": " If flags does not include VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT, the pipeline includes a complete set of state specified entirely by libraries, and each library was created with a VkPipelineLayout created with VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT, then layout must be compatible with the union of the libraries' pipeline layouts" + "text": "If flags does not include VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT, the pipeline includes a complete set of state specified entirely by libraries, and each library was created with a VkPipelineLayout created with VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT, then layout must be compatible with the union of the libraries' pipeline layouts", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-conservativePointAndLineRasterization-08892", - "text": " If conservativePointAndLineRasterization is not supported; the pipeline is being created with vertex input state and pre-rasterization shader state; the pipeline does not include a geometry shader; and the value of VkPipelineInputAssemblyStateCreateInfo::topology is VK_PRIMITIVE_TOPOLOGY_POINT_LIST, VK_PRIMITIVE_TOPOLOGY_LINE_LIST, or VK_PRIMITIVE_TOPOLOGY_LINE_STRIP, and either VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state is not enabled or dynamicPrimitiveTopologyUnrestricted is VK_FALSE, then VkPipelineRasterizationConservativeStateCreateInfoEXT::conservativeRasterizationMode must be VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT" + "text": "If conservativePointAndLineRasterization is not supported; the pipeline is being created with vertex input state and pre-rasterization shader state; the pipeline does not include a geometry shader; and the value of VkPipelineInputAssemblyStateCreateInfo::topology is VK_PRIMITIVE_TOPOLOGY_POINT_LIST, VK_PRIMITIVE_TOPOLOGY_LINE_LIST, or VK_PRIMITIVE_TOPOLOGY_LINE_STRIP, and either VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state is not enabled or dynamicPrimitiveTopologyUnrestricted is VK_FALSE, then VkPipelineRasterizationConservativeStateCreateInfoEXT::conservativeRasterizationMode must be VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-conservativePointAndLineRasterization-06760", - "text": " If conservativePointAndLineRasterization is not supported, the pipeline requires pre-rasterization shader state, and the pipeline includes a geometry shader with either the OutputPoints or OutputLineStrip execution modes, VkPipelineRasterizationConservativeStateCreateInfoEXT::conservativeRasterizationMode must be VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT" + "text": "If conservativePointAndLineRasterization is not supported, the pipeline requires pre-rasterization shader state, and the pipeline includes a geometry shader with either the OutputPoints or OutputLineStrip execution modes, VkPipelineRasterizationConservativeStateCreateInfoEXT::conservativeRasterizationMode must be VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-conservativePointAndLineRasterization-06761", - "text": " If conservativePointAndLineRasterization is not supported, the pipeline requires pre-rasterization shader state, and the pipeline includes a mesh shader with either the OutputPoints or OutputLinesNV execution modes, VkPipelineRasterizationConservativeStateCreateInfoEXT::conservativeRasterizationMode must be VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT" + "text": "If conservativePointAndLineRasterization is not supported, the pipeline requires pre-rasterization shader state, and the pipeline includes a mesh shader with either the OutputPoints or OutputLinesNV execution modes, VkPipelineRasterizationConservativeStateCreateInfoEXT::conservativeRasterizationMode must be VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-06894", - "text": " If the pipeline requires pre-rasterization shader state but not fragment shader state, elements of pStages must not have stage set to VK_SHADER_STAGE_FRAGMENT_BIT" + "text": "If the pipeline requires pre-rasterization shader state but not fragment shader state, elements of pStages must not have stage set to VK_SHADER_STAGE_FRAGMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-06895", - "text": " If the pipeline requires fragment shader state but not pre-rasterization shader state, elements of pStages must not have stage set to a shader stage which participates in pre-rasterization" + "text": "If the pipeline requires fragment shader state but not pre-rasterization shader state, elements of pStages must not have stage set to a shader stage which participates in pre-rasterization", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-06896", - "text": " If the pipeline requires pre-rasterization shader state, all elements of pStages must have a stage set to a shader stage which participates in fragment shader state or pre-rasterization shader state" + "text": "If the pipeline requires pre-rasterization shader state, all elements of pStages must have a stage set to a shader stage which participates in fragment shader state or pre-rasterization shader state", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-stage-06897", - "text": " If the pipeline requires fragment shader state and/or pre-rasterization shader state, any value of stage must not be set in more than one element of pStages" + "text": "If the pipeline requires fragment shader state and/or pre-rasterization shader state, any value of stage must not be set in more than one element of pStages", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3TessellationDomainOrigin-07370", - "text": " If the extendedDynamicState3TessellationDomainOrigin feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT" + "text": "If the extendedDynamicState3TessellationDomainOrigin feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3DepthClampEnable-07371", - "text": " If the extendedDynamicState3DepthClampEnable feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT" + "text": "If the extendedDynamicState3DepthClampEnable feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3PolygonMode-07372", - "text": " If the extendedDynamicState3PolygonMode feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_POLYGON_MODE_EXT" + "text": "If the extendedDynamicState3PolygonMode feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_POLYGON_MODE_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3RasterizationSamples-07373", - "text": " If the extendedDynamicState3RasterizationSamples feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT" + "text": "If the extendedDynamicState3RasterizationSamples feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3SampleMask-07374", - "text": " If the extendedDynamicState3SampleMask feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_SAMPLE_MASK_EXT" + "text": "If the extendedDynamicState3SampleMask feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_SAMPLE_MASK_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3AlphaToCoverageEnable-07375", - "text": " If the extendedDynamicState3AlphaToCoverageEnable feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT" + "text": "If the extendedDynamicState3AlphaToCoverageEnable feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3AlphaToOneEnable-07376", - "text": " If the extendedDynamicState3AlphaToOneEnable feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT" + "text": "If the extendedDynamicState3AlphaToOneEnable feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3LogicOpEnable-07377", - "text": " If the extendedDynamicState3LogicOpEnable feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT" + "text": "If the extendedDynamicState3LogicOpEnable feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ColorBlendEnable-07378", - "text": " If the extendedDynamicState3ColorBlendEnable feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT" + "text": "If the extendedDynamicState3ColorBlendEnable feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ColorBlendEquation-07379", - "text": " If the extendedDynamicState3ColorBlendEquation feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT" + "text": "If the extendedDynamicState3ColorBlendEquation feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ColorWriteMask-07380", - "text": " If the extendedDynamicState3ColorWriteMask feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT" + "text": "If the extendedDynamicState3ColorWriteMask feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3RasterizationStream-07381", - "text": " If the extendedDynamicState3RasterizationStream feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT" + "text": "If the extendedDynamicState3RasterizationStream feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ConservativeRasterizationMode-07382", - "text": " If the extendedDynamicState3ConservativeRasterizationMode feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT" + "text": "If the extendedDynamicState3ConservativeRasterizationMode feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ExtraPrimitiveOverestimationSize-07383", - "text": " If the extendedDynamicState3ExtraPrimitiveOverestimationSize feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT" + "text": "If the extendedDynamicState3ExtraPrimitiveOverestimationSize feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3DepthClipEnable-07384", - "text": " If the extendedDynamicState3DepthClipEnable feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT" + "text": "If the extendedDynamicState3DepthClipEnable feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3SampleLocationsEnable-07385", - "text": " If the extendedDynamicState3SampleLocationsEnable feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT" + "text": "If the extendedDynamicState3SampleLocationsEnable feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ColorBlendAdvanced-07386", - "text": " If the extendedDynamicState3ColorBlendAdvanced feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT" + "text": "If the extendedDynamicState3ColorBlendAdvanced feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ProvokingVertexMode-07387", - "text": " If the extendedDynamicState3ProvokingVertexMode feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT" + "text": "If the extendedDynamicState3ProvokingVertexMode feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3LineRasterizationMode-07388", - "text": " If the extendedDynamicState3LineRasterizationMode feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT" + "text": "If the extendedDynamicState3LineRasterizationMode feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3LineStippleEnable-07389", - "text": " If the extendedDynamicState3LineStippleEnable feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT" + "text": "If the extendedDynamicState3LineStippleEnable feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3DepthClipNegativeOneToOne-07390", - "text": " If the extendedDynamicState3DepthClipNegativeOneToOne feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT" + "text": "If the extendedDynamicState3DepthClipNegativeOneToOne feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ViewportWScalingEnable-07391", - "text": " If the extendedDynamicState3ViewportWScalingEnable feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV" + "text": "If the extendedDynamicState3ViewportWScalingEnable feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ViewportSwizzle-07392", - "text": " If the extendedDynamicState3ViewportSwizzle feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV" + "text": "If the extendedDynamicState3ViewportSwizzle feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3CoverageToColorEnable-07393", - "text": " If the extendedDynamicState3CoverageToColorEnable feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV" + "text": "If the extendedDynamicState3CoverageToColorEnable feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3CoverageToColorLocation-07394", - "text": " If the extendedDynamicState3CoverageToColorLocation feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV" + "text": "If the extendedDynamicState3CoverageToColorLocation feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3CoverageModulationMode-07395", - "text": " If the extendedDynamicState3CoverageModulationMode feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV" + "text": "If the extendedDynamicState3CoverageModulationMode feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3CoverageModulationTableEnable-07396", - "text": " If the extendedDynamicState3CoverageModulationTableEnable feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV" + "text": "If the extendedDynamicState3CoverageModulationTableEnable feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3CoverageModulationTable-07397", - "text": " If the extendedDynamicState3CoverageModulationTable feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV" + "text": "If the extendedDynamicState3CoverageModulationTable feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3CoverageReductionMode-07398", - "text": " If the extendedDynamicState3CoverageReductionMode feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV" + "text": "If the extendedDynamicState3CoverageReductionMode feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3RepresentativeFragmentTestEnable-07399", - "text": " If the extendedDynamicState3RepresentativeFragmentTestEnable feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV" + "text": "If the extendedDynamicState3RepresentativeFragmentTestEnable feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ShadingRateImageEnable-07400", - "text": " If the extendedDynamicState3ShadingRateImageEnable feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV" + "text": "If the extendedDynamicState3ShadingRateImageEnable feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-07401", - "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT" + "text": "flags must not include VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-07997", - "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV" + "text": "flags must not include VK_PIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07730", - "text": " If the pipeline requires pre-rasterization shader state, and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_VIEWPORT or VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT, and if multiviewPerViewViewports is enabled, then the index of the most significant bit in each element of VkRenderPassMultiviewCreateInfo::pViewMasks must be less than pViewportState::viewportCount" + "text": "If the pipeline requires pre-rasterization shader state, and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_VIEWPORT or VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT, and if multiviewPerViewViewports is enabled, then the index of the most significant bit in each element of VkRenderPassMultiviewCreateInfo::pViewMasks must be less than pViewportState::viewportCount", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07731", - "text": " If the pipeline requires pre-rasterization shader state, and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_SCISSOR or VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT, and if multiviewPerViewViewports is enabled, then the index of the most significant bit in each element of VkRenderPassMultiviewCreateInfo::pViewMasks must be less than pViewportState::scissorCount" + "text": "If the pipeline requires pre-rasterization shader state, and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_SCISSOR or VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT, and if multiviewPerViewViewports is enabled, then the index of the most significant bit in each element of VkRenderPassMultiviewCreateInfo::pViewMasks must be less than pViewportState::scissorCount", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-08711", - "text": " If pStages includes a fragment shader stage, VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE is not set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable member of VkPipelineDepthStencilStateCreateInfo must be VK_FALSE" + "text": "If pStages includes a fragment shader stage, VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE is not set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable member of VkPipelineDepthStencilStateCreateInfo must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-08712", - "text": " If pStages includes a fragment shader stage, VK_DYNAMIC_STATE_STENCIL_WRITE_MASK is not set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the value of slink::VkStencilOpState::writeMask for both front and back in VkPipelineDepthStencilStateCreateInfo must be 0" + "text": "If pStages includes a fragment shader stage, VK_DYNAMIC_STATE_STENCIL_WRITE_MASK is not set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the value of VkStencilOpState::writeMask for both front and back in VkPipelineDepthStencilStateCreateInfo must be 0", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-08744", - "text": " If renderPass is VK_NULL_HANDLE, the pipeline requires fragment output state or fragment shader state, the pipeline enables sample shading, rasterizationSamples is not dynamic, and the pNext chain includes a VkPipelineRenderingCreateInfo structure, rasterizationSamples must be a bit value that is set in imageCreateSampleCounts (as defined in Image Creation Limits) for every element of depthAttachmentFormat, stencilAttachmentFormat and the pColorAttachmentFormats array which is not VK_FORMAT_UNDEFINED" + "text": "If renderPass is VK_NULL_HANDLE, the pipeline requires fragment output state or fragment shader state, the pipeline enables sample shading, rasterizationSamples is not dynamic, and the pNext chain includes a VkPipelineRenderingCreateInfo structure, rasterizationSamples must be a bit value that is set in imageCreateSampleCounts (as defined in Image Creation Limits) for every element of depthAttachmentFormat, stencilAttachmentFormat and the pColorAttachmentFormats array which is not VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-08897", - "text": " If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT, pre-rasterization shader state is specified either in a library or by the inclusion of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, and that state includes a vertex shader stage in pStages, the pipeline must define vertex input state" + "text": "If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT, pre-rasterization shader state is specified either in a library or by the inclusion of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, and that state includes a vertex shader stage in pStages, the pipeline must define vertex input state", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-08898", - "text": " If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT, and pre-rasterization shader state is not specified, the pipeline must define vertex input state" + "text": "If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT, and pre-rasterization shader state is not specified, the pipeline must define vertex input state", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-08899", - "text": " If flags does not include VK_PIPELINE_CREATE_LIBRARY_BIT_KHR, pre-rasterization shader state is specified either in a library or by the inclusion of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, and that state includes a vertex shader stage in pStages, the pipeline must either define pre-rasterization shader state or include that state in a linked pipeline library" + "text": "If flags does not include VK_PIPELINE_CREATE_LIBRARY_BIT_KHR, pre-rasterization shader state is specified either in a library or by the inclusion of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, and that state includes a vertex shader stage in pStages, the pipeline must either define pre-rasterization shader state or include that state in a linked pipeline library", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-08900", - "text": " If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT the pipeline must define pre-rasterization shader state" + "text": "If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT the pipeline must define pre-rasterization shader state", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-08901", - "text": " If flags does not include VK_PIPELINE_CREATE_LIBRARY_BIT_KHR, the pipeline must either define pre-rasterization shader state or include that state in a linked pipeline library" + "text": "If flags does not include VK_PIPELINE_CREATE_LIBRARY_BIT_KHR, the pipeline must either define pre-rasterization shader state or include that state in a linked pipeline library", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-08903", - "text": " If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, pre-rasterization shader state is specified either in a library or by the inclusion of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, and that state either includes VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE or has pRasterizationState->rasterizerDiscardEnable set to VK_FALSE, the pipeline must define fragment shader state" + "text": "If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, pre-rasterization shader state is specified either in a library or by the inclusion of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, and that state either includes VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE or has pRasterizationState->rasterizerDiscardEnable set to VK_FALSE, the pipeline must define fragment shader state", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-08904", - "text": " If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and pre-rasterization shader state is not specified, the pipeline must define fragment shader state" + "text": "If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and pre-rasterization shader state is not specified, the pipeline must define fragment shader state", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-08906", - "text": " If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, pre-rasterization shader state is specified either in a library or by the inclusion of VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, and that state either includes VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE or has pRasterizationState->rasterizerDiscardEnable set to VK_FALSE, the pipeline must define fragment output interface state" + "text": "If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, pre-rasterization shader state is specified either in a library or by the inclusion of VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, and that state either includes VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE or has pRasterizationState->rasterizerDiscardEnable set to VK_FALSE, the pipeline must define fragment output interface state", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-08907", - "text": " If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and pre-rasterization shader state is not specified, the pipeline must define fragment output interface state" + "text": "If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and pre-rasterization shader state is not specified, the pipeline must define fragment output interface state", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-None-09043", - "text": " If pDynamicState->pDynamicStates does not include VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the colorWriteMask member of the corresponding element of pColorBlendState->pAttachments must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them" + "text": "If pDynamicState->pDynamicStates does not include VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the colorWriteMask member of the corresponding element of pColorBlendState->pAttachments must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them", + "page": "vkspec" + }, + { + "vuid": "VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09301", + "text": "If the externalFormatResolve feature is enabled, the pipeline requires fragment output interface state, renderPass is VK_NULL_HANDLE, and VkExternalFormatANDROID::externalFormat is not 0, VkPipelineRenderingCreateInfo::viewMask must be 0", + "page": "vkspec" + }, + { + "vuid": "VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09304", + "text": "If the externalFormatResolve feature is enabled, the pipeline requires fragment output interface state, renderPass is VK_NULL_HANDLE, VkExternalFormatANDROID::externalFormat is not 0, and rasterizationSamples is not dynamic, VkPipelineMultisampleStateCreateInfo::rasterizationSamples must be 1", + "page": "vkspec" + }, + { + "vuid": "VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09305", + "text": "If the externalFormatResolve feature is enabled, the pipeline requires fragment output interface state, renderPass is VK_NULL_HANDLE, and VkExternalFormatANDROID::externalFormat is not 0, and blendEnable is not dynamic, the blendEnable member of each element of pColorBlendState->pAttachments must be VK_FALSE", + "page": "vkspec" + }, + { + "vuid": "VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09306", + "text": "If the externalFormatResolve feature is enabled, the pipeline requires fragment output interface state, renderPass is VK_NULL_HANDLE, and VkExternalFormatANDROID::externalFormat is not 0, and pDynamicState->pDynamicStates does not include VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR, VkPipelineFragmentShadingRateStateCreateInfoKHR::width must be 1", + "page": "vkspec" + }, + { + "vuid": "VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09307", + "text": "If the externalFormatResolve feature is enabled, the pipeline requires fragment output interface state, renderPass is VK_NULL_HANDLE, and VkExternalFormatANDROID::externalFormat is not 0, and pDynamicState->pDynamicStates does not include VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR, VkPipelineFragmentShadingRateStateCreateInfoKHR::height must be 1", + "page": "vkspec" + }, + { + "vuid": "VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09308", + "text": "If the externalFormatResolve feature is enabled, the pipeline requires pre-rasterization shader state and fragment output interface state, renderPass is VK_NULL_HANDLE, and VkExternalFormatANDROID::externalFormat is not 0, the last pre-rasterization shader stage must not statically use a variable with the PrimitiveShadingRateKHR built-in", + "page": "vkspec" + }, + { + "vuid": "VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09309", + "text": "If the externalFormatResolve feature is enabled, the pipeline requires fragment output interface state, renderPass is VK_NULL_HANDLE, and VkExternalFormatANDROID::externalFormat is not 0, VkPipelineRenderingCreateInfo::colorAttachmentCount must be 1", + "page": "vkspec" + }, + { + "vuid": "VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09310", + "text": "If the externalFormatResolve feature is enabled, the pipeline requires fragment shader state and fragment output interface state, renderPass is VK_NULL_HANDLE, and VkExternalFormatANDROID::externalFormat is not 0, the fragment shader must not declare the DepthReplacing or StencilRefReplacingEXT execution modes", + "page": "vkspec" + }, + { + "vuid": "VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09313", + "text": "If the externalFormatResolve feature is enabled, the pipeline requires fragment output interface state, renderPass is not VK_NULL_HANDLE, subpass includes an external format resolve attachment, and rasterizationSamples is not dynamic,, VkPipelineMultisampleStateCreateInfo::rasterizationSamples must be VK_SAMPLE_COUNT_1_BIT", + "page": "vkspec" + }, + { + "vuid": "VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09314", + "text": "If the externalFormatResolve feature is enabled, the pipeline requires fragment output interface state, renderPass is not VK_NULL_HANDLE, subpass includes an external format resolve attachment, and blendEnable is not dynamic, the blendEnable member of each element of pColorBlendState->pAttachments must be VK_FALSE", + "page": "vkspec" + }, + { + "vuid": "VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09315", + "text": "If the externalFormatResolve feature is enabled, the pipeline requires fragment output interface state, renderPass is not VK_NULL_HANDLE, subpass includes an external format resolve attachment, and pDynamicState->pDynamicStates does not include VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR, VkPipelineFragmentShadingRateStateCreateInfoKHR::width must be 1", + "page": "vkspec" + }, + { + "vuid": "VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09316", + "text": "If the externalFormatResolve feature is enabled, the pipeline requires fragment output interface state, renderPass is not VK_NULL_HANDLE, subpass includes an external format resolve attachment, and pDynamicState->pDynamicStates does not include VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR, VkPipelineFragmentShadingRateStateCreateInfoKHR::height must be 1", + "page": "vkspec" + }, + { + "vuid": "VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09317", + "text": "If the externalFormatResolve feature is enabled, the pipeline requires pre-rasterization shader state and fragment output interface state, renderPass is not VK_NULL_HANDLE, and subpass includes an external format resolve attachment, the last pre-rasterization shader stage must not statically use a variable with the PrimitiveShadingRateKHR built-in", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-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 VkAttachmentSampleCountInfoAMD, VkGraphicsPipelineLibraryCreateInfoEXT, VkGraphicsPipelineShaderGroupsCreateInfoNV, VkMultiviewPerViewAttributesInfoNVX, VkPipelineCompilerControlCreateInfoAMD, VkPipelineCreateFlags2CreateInfoKHR, VkPipelineCreationFeedbackCreateInfo, VkPipelineDiscardRectangleStateCreateInfoEXT, VkPipelineFragmentShadingRateEnumStateCreateInfoNV, VkPipelineFragmentShadingRateStateCreateInfoKHR, VkPipelineLibraryCreateInfoKHR, VkPipelineRenderingCreateInfo, VkPipelineRepresentativeFragmentTestStateCreateInfoNV, or VkPipelineRobustnessCreateInfoEXT" + "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 VkAttachmentSampleCountInfoAMD, VkExternalFormatANDROID, VkGraphicsPipelineLibraryCreateInfoEXT, VkGraphicsPipelineShaderGroupsCreateInfoNV, VkMultiviewPerViewAttributesInfoNVX, VkPipelineCompilerControlCreateInfoAMD, VkPipelineCreateFlags2CreateInfoKHR, VkPipelineCreationFeedbackCreateInfo, VkPipelineDiscardRectangleStateCreateInfoEXT, VkPipelineFragmentShadingRateEnumStateCreateInfoNV, VkPipelineFragmentShadingRateStateCreateInfoKHR, VkPipelineLibraryCreateInfoKHR, VkPipelineRenderingCreateInfo, VkPipelineRepresentativeFragmentTestStateCreateInfoNV, or VkPipelineRobustnessCreateInfoEXT", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-parameter", - "text": " flags must be a valid combination of VkPipelineCreateFlagBits values" + "text": "flags must be a valid combination of VkPipelineCreateFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-parameter", - "text": " If pDynamicState is not NULL, pDynamicState must be a valid pointer to a valid VkPipelineDynamicStateCreateInfo structure" + "text": "If pDynamicState is not NULL, pDynamicState must be a valid pointer to a valid VkPipelineDynamicStateCreateInfo structure", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-commonparent", - "text": " Each of basePipelineHandle, layout, and renderPass that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" + "text": "Each of basePipelineHandle, layout, and renderPass that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -12978,7 +16296,8 @@ "core": [ { "vuid": "VUID-VkPipelineRenderingCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO", + "page": "vkspec" } ] }, @@ -12986,15 +16305,18 @@ "core": [ { "vuid": "VUID-VkPipelineCreateFlags2CreateInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineCreateFlags2CreateInfoKHR-flags-parameter", - "text": " flags must be a valid combination of VkPipelineCreateFlagBits2KHR values" + "text": "flags must be a valid combination of VkPipelineCreateFlagBits2KHR values", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineCreateFlags2CreateInfoKHR-flags-requiredbitmask", - "text": " flags must not be 0" + "text": "flags must not be 0", + "page": "vkspec" } ] }, @@ -13002,15 +16324,18 @@ "core": [ { "vuid": "VUID-VkGraphicsPipelineLibraryCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineLibraryCreateInfoEXT-flags-parameter", - "text": " flags must be a valid combination of VkGraphicsPipelineLibraryFlagBitsEXT values" + "text": "flags must be a valid combination of VkGraphicsPipelineLibraryFlagBitsEXT values", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineLibraryCreateInfoEXT-flags-requiredbitmask", - "text": " flags must not be 0" + "text": "flags must not be 0", + "page": "vkspec" } ] }, @@ -13018,23 +16343,28 @@ "core": [ { "vuid": "VUID-VkPipelineDynamicStateCreateInfo-pDynamicStates-01442", - "text": " Each element of pDynamicStates must be unique" + "text": "Each element of pDynamicStates must be unique", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineDynamicStateCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineDynamicStateCreateInfo-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineDynamicStateCreateInfo-flags-zerobitmask", - "text": " flags must be 0" + "text": "flags must be 0", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineDynamicStateCreateInfo-pDynamicStates-parameter", - "text": " If dynamicStateCount is not 0, pDynamicStates must be a valid pointer to an array of dynamicStateCount valid VkDynamicState values" + "text": "If dynamicStateCount is not 0, pDynamicStates must be a valid pointer to an array of dynamicStateCount valid VkDynamicState values", + "page": "vkspec" } ] }, @@ -13042,47 +16372,58 @@ "core": [ { "vuid": "VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-groupCount-02879", - "text": " groupCount must be at least 1 and as maximum VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::maxGraphicsShaderGroupCount" + "text": "groupCount must be at least 1 and as maximum VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::maxGraphicsShaderGroupCount", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-groupCount-02880", - "text": " The sum of groupCount including those groups added from referenced pPipelines must also be as maximum VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::maxGraphicsShaderGroupCount" + "text": "The sum of groupCount including those groups added from referenced pPipelines must also be as maximum VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::maxGraphicsShaderGroupCount", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-02881", - "text": " The state of the first element of pGroups must match its equivalent within the parent’s VkGraphicsPipelineCreateInfo" + "text": "The state of the first element of pGroups must match its equivalent within the parent’s VkGraphicsPipelineCreateInfo", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-02882", - "text": " Each element of pGroups must in combination with the rest of the pipeline state yield a valid state configuration" + "text": "Each element of pGroups must in combination with the rest of the pipeline state yield a valid state configuration", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-02884", - "text": " All elements of pGroups must use the same shader stage combinations unless any mesh shader stage is used, then either combination of task and mesh or just mesh shader is valid" + "text": "All elements of pGroups must use the same shader stage combinations unless any mesh shader stage is used, then either combination of task and mesh or just mesh shader is valid", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-02885", - "text": " Mesh and regular primitive shading stages cannot be mixed across pGroups" + "text": "Mesh and regular primitive shading stages cannot be mixed across pGroups", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pPipelines-02886", - "text": " Each element of pPipelines must have been created with identical state to the pipeline currently created except the state that can be overridden by VkGraphicsShaderGroupCreateInfoNV" + "text": "Each element of pPipelines must have been created with identical state to the pipeline currently created except the state that can be overridden by VkGraphicsShaderGroupCreateInfoNV", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-deviceGeneratedCommands-02887", - "text": " The deviceGeneratedCommands feature must be enabled" + "text": "The deviceGeneratedCommands feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV" + "text": "sType must be VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-parameter", - "text": " If groupCount is not 0, pGroups must be a valid pointer to an array of groupCount valid VkGraphicsShaderGroupCreateInfoNV structures" + "text": "If groupCount is not 0, pGroups must be a valid pointer to an array of groupCount valid VkGraphicsShaderGroupCreateInfoNV structures", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pPipelines-parameter", - "text": " If pipelineCount is not 0, pPipelines must be a valid pointer to an array of pipelineCount valid VkPipeline handles" + "text": "If pipelineCount is not 0, pPipelines must be a valid pointer to an array of pipelineCount valid VkPipeline handles", + "page": "vkspec" } ] }, @@ -13090,35 +16431,43 @@ "core": [ { "vuid": "VUID-VkGraphicsShaderGroupCreateInfoNV-stageCount-02888", - "text": " For stageCount, the same restrictions as in VkGraphicsPipelineCreateInfo::stageCount apply" + "text": "For stageCount, the same restrictions as in VkGraphicsPipelineCreateInfo::stageCount apply", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsShaderGroupCreateInfoNV-pStages-02889", - "text": " For pStages, the same restrictions as in VkGraphicsPipelineCreateInfo::pStages apply" + "text": "For pStages, the same restrictions as in VkGraphicsPipelineCreateInfo::pStages apply", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsShaderGroupCreateInfoNV-pVertexInputState-02890", - "text": " For pVertexInputState, the same restrictions as in VkGraphicsPipelineCreateInfo::pVertexInputState apply" + "text": "For pVertexInputState, the same restrictions as in VkGraphicsPipelineCreateInfo::pVertexInputState apply", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsShaderGroupCreateInfoNV-pTessellationState-02891", - "text": " For pTessellationState, the same restrictions as in VkGraphicsPipelineCreateInfo::pTessellationState apply" + "text": "For pTessellationState, the same restrictions as in VkGraphicsPipelineCreateInfo::pTessellationState apply", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsShaderGroupCreateInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV" + "text": "sType must be VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsShaderGroupCreateInfoNV-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsShaderGroupCreateInfoNV-pStages-parameter", - "text": " pStages must be a valid pointer to an array of stageCount valid VkPipelineShaderStageCreateInfo structures" + "text": "pStages must be a valid pointer to an array of stageCount valid VkPipelineShaderStageCreateInfo structures", + "page": "vkspec" }, { "vuid": "VUID-VkGraphicsShaderGroupCreateInfoNV-stageCount-arraylength", - "text": " stageCount must be greater than 0" + "text": "stageCount must be greater than 0", + "page": "vkspec" } ] }, @@ -13126,47 +16475,58 @@ "core": [ { "vuid": "VUID-vkCreateRayTracingPipelinesNV-flags-03415", - "text": " If the flags member of any element of pCreateInfos contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and the basePipelineIndex member of that same element is not -1, basePipelineIndex must be less than the index into pCreateInfos that corresponds to that element" + "text": "If the flags member of any element of pCreateInfos contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and the basePipelineIndex member of that same element is not -1, basePipelineIndex must be less than the index into pCreateInfos that corresponds to that element", + "page": "vkspec" }, { "vuid": "VUID-vkCreateRayTracingPipelinesNV-flags-03416", - "text": " If the flags member of any element of pCreateInfos contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, the base pipeline must have been created with the VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT flag set" + "text": "If the flags member of any element of pCreateInfos contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, the base pipeline must have been created with the VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT flag set", + "page": "vkspec" }, { "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 flag", + "page": "vkspec" }, { "vuid": "VUID-vkCreateRayTracingPipelinesNV-pipelineCache-02903", - "text": " If pipelineCache was created with VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT, host access to pipelineCache must be externally synchronized" + "text": "If pipelineCache was created with VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT, host access to pipelineCache must be externally synchronized", + "page": "vkspec" }, { "vuid": "VUID-vkCreateRayTracingPipelinesNV-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkCreateRayTracingPipelinesNV-pipelineCache-parameter", - "text": " If pipelineCache is not VK_NULL_HANDLE, pipelineCache must be a valid VkPipelineCache handle" + "text": "If pipelineCache is not VK_NULL_HANDLE, pipelineCache must be a valid VkPipelineCache handle", + "page": "vkspec" }, { "vuid": "VUID-vkCreateRayTracingPipelinesNV-pCreateInfos-parameter", - "text": " pCreateInfos must be a valid pointer to an array of createInfoCount valid VkRayTracingPipelineCreateInfoNV structures" + "text": "pCreateInfos must be a valid pointer to an array of createInfoCount valid VkRayTracingPipelineCreateInfoNV structures", + "page": "vkspec" }, { "vuid": "VUID-vkCreateRayTracingPipelinesNV-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateRayTracingPipelinesNV-pPipelines-parameter", - "text": " pPipelines must be a valid pointer to an array of createInfoCount VkPipeline handles" + "text": "pPipelines must be a valid pointer to an array of createInfoCount VkPipeline handles", + "page": "vkspec" }, { "vuid": "VUID-vkCreateRayTracingPipelinesNV-createInfoCount-arraylength", - "text": " createInfoCount must be greater than 0" + "text": "createInfoCount must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-vkCreateRayTracingPipelinesNV-pipelineCache-parent", - "text": " If pipelineCache is a valid handle, it must have been created, allocated, or retrieved from device" + "text": "If pipelineCache is a valid handle, it must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -13174,71 +16534,88 @@ "core": [ { "vuid": "VUID-vkCreateRayTracingPipelinesKHR-flags-03415", - "text": " If the flags member of any element of pCreateInfos contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and the basePipelineIndex member of that same element is not -1, basePipelineIndex must be less than the index into pCreateInfos that corresponds to that element" + "text": "If the flags member of any element of pCreateInfos contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and the basePipelineIndex member of that same element is not -1, basePipelineIndex must be less than the index into pCreateInfos that corresponds to that element", + "page": "vkspec" }, { "vuid": "VUID-vkCreateRayTracingPipelinesKHR-flags-03416", - "text": " If the flags member of any element of pCreateInfos contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, the base pipeline must have been created with the VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT flag set" + "text": "If the flags member of any element of pCreateInfos contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, the base pipeline must have been created with the VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT flag set", + "page": "vkspec" }, { "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 flag", + "page": "vkspec" }, { "vuid": "VUID-vkCreateRayTracingPipelinesKHR-pipelineCache-02903", - "text": " If pipelineCache was created with VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT, host access to pipelineCache must be externally synchronized" + "text": "If pipelineCache was created with VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT, host access to pipelineCache must be externally synchronized", + "page": "vkspec" }, { "vuid": "VUID-vkCreateRayTracingPipelinesKHR-deferredOperation-03677", - "text": " If deferredOperation is not VK_NULL_HANDLE, it must be a valid VkDeferredOperationKHR object" + "text": "If deferredOperation is not VK_NULL_HANDLE, it must be a valid VkDeferredOperationKHR object", + "page": "vkspec" }, { "vuid": "VUID-vkCreateRayTracingPipelinesKHR-deferredOperation-03678", - "text": " Any previous deferred operation that was associated with deferredOperation must be complete" + "text": "Any previous deferred operation that was associated with deferredOperation must be complete", + "page": "vkspec" }, { "vuid": "VUID-vkCreateRayTracingPipelinesKHR-rayTracingPipeline-03586", - "text": " The rayTracingPipeline feature must be enabled" + "text": "The rayTracingPipeline feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCreateRayTracingPipelinesKHR-deferredOperation-03587", - "text": " If deferredOperation is not VK_NULL_HANDLE, the flags member of elements of pCreateInfos must not include VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT" + "text": "If deferredOperation is not VK_NULL_HANDLE, the flags member of elements of pCreateInfos must not include VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCreateRayTracingPipelinesKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkCreateRayTracingPipelinesKHR-deferredOperation-parameter", - "text": " If deferredOperation is not VK_NULL_HANDLE, deferredOperation must be a valid VkDeferredOperationKHR handle" + "text": "If deferredOperation is not VK_NULL_HANDLE, deferredOperation must be a valid VkDeferredOperationKHR handle", + "page": "vkspec" }, { "vuid": "VUID-vkCreateRayTracingPipelinesKHR-pipelineCache-parameter", - "text": " If pipelineCache is not VK_NULL_HANDLE, pipelineCache must be a valid VkPipelineCache handle" + "text": "If pipelineCache is not VK_NULL_HANDLE, pipelineCache must be a valid VkPipelineCache handle", + "page": "vkspec" }, { "vuid": "VUID-vkCreateRayTracingPipelinesKHR-pCreateInfos-parameter", - "text": " pCreateInfos must be a valid pointer to an array of createInfoCount valid VkRayTracingPipelineCreateInfoKHR structures" + "text": "pCreateInfos must be a valid pointer to an array of createInfoCount valid VkRayTracingPipelineCreateInfoKHR structures", + "page": "vkspec" }, { "vuid": "VUID-vkCreateRayTracingPipelinesKHR-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateRayTracingPipelinesKHR-pPipelines-parameter", - "text": " pPipelines must be a valid pointer to an array of createInfoCount VkPipeline handles" + "text": "pPipelines must be a valid pointer to an array of createInfoCount VkPipeline handles", + "page": "vkspec" }, { "vuid": "VUID-vkCreateRayTracingPipelinesKHR-createInfoCount-arraylength", - "text": " createInfoCount must be greater than 0" + "text": "createInfoCount must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-vkCreateRayTracingPipelinesKHR-deferredOperation-parent", - "text": " If deferredOperation is a valid handle, it must have been created, allocated, or retrieved from device" + "text": "If deferredOperation is a valid handle, it must have been created, allocated, or retrieved from device", + "page": "vkspec" }, { "vuid": "VUID-vkCreateRayTracingPipelinesKHR-pipelineCache-parent", - "text": " If pipelineCache is a valid handle, it must have been created, allocated, or retrieved from device" + "text": "If pipelineCache is a valid handle, it must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -13246,151 +16623,188 @@ "core": [ { "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-07984", - "text": " If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineIndex is -1, basePipelineHandle must be a valid handle to a ray tracing VkPipeline" + "text": "If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineIndex is -1, basePipelineHandle must be a valid ray tracing VkPipeline handle", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-07985", - "text": " If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineHandle is VK_NULL_HANDLE, basePipelineIndex must be a valid index into the calling command’s pCreateInfos parameter" + "text": "If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineHandle is VK_NULL_HANDLE, basePipelineIndex must be a valid index into the calling command’s pCreateInfos parameter", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-07986", - "text": " If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, basePipelineIndex must be -1 or basePipelineHandle must be VK_NULL_HANDLE" + "text": "If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, basePipelineIndex must be -1 or basePipelineHandle must be VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-layout-07987", - "text": " If a push constant block is declared in a shader, a push constant range in layout must match both the shader stage and range" + "text": "If a push constant block is declared in a shader, a push constant range in layout must match both the shader stage and range", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-layout-07988", - "text": " If a resource variables is declared in a shader, a descriptor slot in layout must match the shader stage" + "text": "If a resource variables is declared in a shader, a descriptor slot in layout must match the shader stage", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-layout-07990", - "text": " If a resource variables is declared in a shader, and the descriptor type is not VK_DESCRIPTOR_TYPE_MUTABLE_EXT, a descriptor slot in layout must match the descriptor type" + "text": "If a resource variables is declared in a shader, and the descriptor type is not VK_DESCRIPTOR_TYPE_MUTABLE_EXT, a descriptor slot in layout must match the descriptor type", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-layout-07991", - "text": " If a resource variables is declared in a shader as an array, a descriptor slot in layout must match the descriptor count" + "text": "If a resource variables is declared in a shader as an array, a descriptor slot in layout must match the descriptor count", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-pStages-03426", - "text": " The shader code for the entry points identified by pStages, and the rest of the state identified by this structure must adhere to the pipeline linking rules described in the Shader Interfaces chapter" + "text": "The shader code for the entry points identified by pStages, and the rest of the state identified by this structure must adhere to the pipeline linking rules described in the Shader Interfaces chapter", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-layout-03428", - "text": " The number of resources in layout accessible to each shader stage that is used by the pipeline must be less than or equal to VkPhysicalDeviceLimits::maxPerStageResources" + "text": "The number of resources in layout accessible to each shader stage that is used by the pipeline must be less than or equal to VkPhysicalDeviceLimits::maxPerStageResources", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-02904", - "text": " flags must not include VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV" + "text": "flags must not include VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-pipelineCreationCacheControl-02905", - "text": " If the pipelineCreationCacheControl feature is not enabled, flags must not include VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT or VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT" + "text": "If the pipelineCreationCacheControl feature is not enabled, flags must not include VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT or VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-stage-06232", - "text": " The stage member of at least one element of pStages must be VK_SHADER_STAGE_RAYGEN_BIT_KHR" + "text": "The stage member of at least one element of pStages must be VK_SHADER_STAGE_RAYGEN_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-03456", - "text": " flags must not include VK_PIPELINE_CREATE_LIBRARY_BIT_KHR" + "text": "flags must not include VK_PIPELINE_CREATE_LIBRARY_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-maxRecursionDepth-03457", - "text": " maxRecursionDepth must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxRecursionDepth" + "text": "maxRecursionDepth must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxRecursionDepth", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-03458", - "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR" + "text": "flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-03459", - "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR" + "text": "flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-03460", - "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR" + "text": "flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-03461", - "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR" + "text": "flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-03462", - "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR" + "text": "flags must not include VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-03463", - "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR" + "text": "flags must not include VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-03588", - "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR" + "text": "flags must not include VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-04948", - "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV" + "text": "flags must not include VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-02957", - "text": " flags must not include both VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV and VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT at the same time" + "text": "flags must not include both VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV and VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT at the same time", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-pipelineStageCreationFeedbackCount-06651", - "text": " If VkPipelineCreationFeedbackCreateInfo::pipelineStageCreationFeedbackCount is not 0, it must be equal to stageCount" + "text": "If VkPipelineCreationFeedbackCreateInfo::pipelineStageCreationFeedbackCount is not 0, it must be equal to stageCount", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-stage-06898", - "text": " The stage value in all pStages elements must be one of VK_SHADER_STAGE_RAYGEN_BIT_KHR, VK_SHADER_STAGE_ANY_HIT_BIT_KHR, VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR, VK_SHADER_STAGE_MISS_BIT_KHR, VK_SHADER_STAGE_INTERSECTION_BIT_KHR, or VK_SHADER_STAGE_CALLABLE_BIT_KHR" + "text": "The stage value in all pStages elements must be one of VK_SHADER_STAGE_RAYGEN_BIT_KHR, VK_SHADER_STAGE_ANY_HIT_BIT_KHR, VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR, VK_SHADER_STAGE_MISS_BIT_KHR, VK_SHADER_STAGE_INTERSECTION_BIT_KHR, or VK_SHADER_STAGE_CALLABLE_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-07402", - "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT" + "text": "flags must not include VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-07998", - "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV" + "text": "flags must not include VK_PIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV" + "text": "sType must be VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-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 VkPipelineCreateFlags2CreateInfoKHR or VkPipelineCreationFeedbackCreateInfo" + "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 VkPipelineCreateFlags2CreateInfoKHR or VkPipelineCreationFeedbackCreateInfo", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-parameter", - "text": " flags must be a valid combination of VkPipelineCreateFlagBits values" + "text": "flags must be a valid combination of VkPipelineCreateFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-pStages-parameter", - "text": " pStages must be a valid pointer to an array of stageCount valid VkPipelineShaderStageCreateInfo structures" + "text": "pStages must be a valid pointer to an array of stageCount valid VkPipelineShaderStageCreateInfo structures", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-pGroups-parameter", - "text": " pGroups must be a valid pointer to an array of groupCount valid VkRayTracingShaderGroupCreateInfoNV structures" + "text": "pGroups must be a valid pointer to an array of groupCount valid VkRayTracingShaderGroupCreateInfoNV structures", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-layout-parameter", - "text": " layout must be a valid VkPipelineLayout handle" + "text": "layout must be a valid VkPipelineLayout handle", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-stageCount-arraylength", - "text": " stageCount must be greater than 0" + "text": "stageCount must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-groupCount-arraylength", - "text": " groupCount must be greater than 0" + "text": "groupCount must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-commonparent", - "text": " Both of basePipelineHandle, and layout that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of basePipelineHandle, and layout that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -13398,207 +16812,258 @@ "core": [ { "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-07984", - "text": " If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineIndex is -1, basePipelineHandle must be a valid handle to a ray tracing VkPipeline" + "text": "If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineIndex is -1, basePipelineHandle must be a valid ray tracing VkPipeline handle", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-07985", - "text": " If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineHandle is VK_NULL_HANDLE, basePipelineIndex must be a valid index into the calling command’s pCreateInfos parameter" + "text": "If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineHandle is VK_NULL_HANDLE, basePipelineIndex must be a valid index into the calling command’s pCreateInfos parameter", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-07986", - "text": " If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, basePipelineIndex must be -1 or basePipelineHandle must be VK_NULL_HANDLE" + "text": "If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, basePipelineIndex must be -1 or basePipelineHandle must be VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-layout-07987", - "text": " If a push constant block is declared in a shader, a push constant range in layout must match both the shader stage and range" + "text": "If a push constant block is declared in a shader, a push constant range in layout must match both the shader stage and range", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-layout-07988", - "text": " If a resource variables is declared in a shader, a descriptor slot in layout must match the shader stage" + "text": "If a resource variables is declared in a shader, a descriptor slot in layout must match the shader stage", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-layout-07990", - "text": " If a resource variables is declared in a shader, and the descriptor type is not VK_DESCRIPTOR_TYPE_MUTABLE_EXT, a descriptor slot in layout must match the descriptor type" + "text": "If a resource variables is declared in a shader, and the descriptor type is not VK_DESCRIPTOR_TYPE_MUTABLE_EXT, a descriptor slot in layout must match the descriptor type", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-layout-07991", - "text": " If a resource variables is declared in a shader as an array, a descriptor slot in layout must match the descriptor count" + "text": "If a resource variables is declared in a shader as an array, a descriptor slot in layout must match the descriptor count", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pStages-03426", - "text": " The shader code for the entry points identified by pStages, and the rest of the state identified by this structure must adhere to the pipeline linking rules described in the Shader Interfaces chapter" + "text": "The shader code for the entry points identified by pStages, and the rest of the state identified by this structure must adhere to the pipeline linking rules described in the Shader Interfaces chapter", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-layout-03428", - "text": " The number of resources in layout accessible to each shader stage that is used by the pipeline must be less than or equal to VkPhysicalDeviceLimits::maxPerStageResources" + "text": "The number of resources in layout accessible to each shader stage that is used by the pipeline must be less than or equal to VkPhysicalDeviceLimits::maxPerStageResources", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-02904", - "text": " flags must not include VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV" + "text": "flags must not include VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pipelineCreationCacheControl-02905", - "text": " If the pipelineCreationCacheControl feature is not enabled, flags must not include VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT or VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT" + "text": "If the pipelineCreationCacheControl feature is not enabled, flags must not include VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT or VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-stage-03425", - "text": " If flags does not include VK_PIPELINE_CREATE_LIBRARY_BIT_KHR, the stage member of at least one element of pStages, including those implicitly added by pLibraryInfo, must be VK_SHADER_STAGE_RAYGEN_BIT_KHR" + "text": "If flags does not include VK_PIPELINE_CREATE_LIBRARY_BIT_KHR, the stage member of at least one element of pStages, including those implicitly added by pLibraryInfo, must be VK_SHADER_STAGE_RAYGEN_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-maxPipelineRayRecursionDepth-03589", - "text": " maxPipelineRayRecursionDepth must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxRayRecursionDepth" + "text": "maxPipelineRayRecursionDepth must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxRayRecursionDepth", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-03465", - "text": " If flags includes VK_PIPELINE_CREATE_LIBRARY_BIT_KHR, pLibraryInterface must not be NULL" + "text": "If flags includes VK_PIPELINE_CREATE_LIBRARY_BIT_KHR, pLibraryInterface must not be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInfo-03590", - "text": " If pLibraryInfo is not NULL and its libraryCount member is greater than 0, pLibraryInterface must not be NULL" + "text": "If pLibraryInfo is not NULL and its libraryCount member is greater than 0, pLibraryInterface must not be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pLibraries-03591", - "text": " Each element of pLibraryInfo->pLibraries must have been created with the value of maxPipelineRayRecursionDepth equal to that in this pipeline" + "text": "Each element of pLibraryInfo->pLibraries must have been created with the value of maxPipelineRayRecursionDepth equal to that in this pipeline", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInfo-03592", - "text": " If pLibraryInfo is not NULL, each element of its pLibraries member must have been created with a layout that is compatible with the layout in this pipeline" + "text": "If pLibraryInfo is not NULL, each element of its pLibraries member must have been created with a layout that is compatible with the layout in this pipeline", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInfo-03593", - "text": " If pLibraryInfo is not NULL, each element of its pLibraries member must have been created with values of the maxPipelineRayPayloadSize and maxPipelineRayHitAttributeSize members of pLibraryInterface equal to those in this pipeline" + "text": "If pLibraryInfo is not NULL, each element of its pLibraries member must have been created with values of the maxPipelineRayPayloadSize and maxPipelineRayHitAttributeSize members of pLibraryInterface equal to those in this pipeline", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-03594", - "text": " If flags includes VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR, each element of pLibraryInfo->pLibraries must have been created with the VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR bit set" + "text": "If flags includes VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR, each element of pLibraryInfo->pLibraries must have been created with the VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR bit set", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-04718", - "text": " If flags includes VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR, each element of pLibraryInfo->pLibraries must have been created with the VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR bit set" + "text": "If flags includes VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR, each element of pLibraryInfo->pLibraries must have been created with the VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR bit set", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-04719", - "text": " If flags includes VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR, each element of pLibraryInfo->pLibraries must have been created with the VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR bit set" + "text": "If flags includes VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR, each element of pLibraryInfo->pLibraries must have been created with the VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR bit set", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-04720", - "text": " If flags includes VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR, each element of pLibraryInfo->pLibraries must have been created with the VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR bit set" + "text": "If flags includes VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR, each element of pLibraryInfo->pLibraries must have been created with the VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR bit set", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-04721", - "text": " If flags includes VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, each element of pLibraryInfo->pLibraries must have been created with the VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR bit set" + "text": "If flags includes VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, each element of pLibraryInfo->pLibraries must have been created with the VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR bit set", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-04722", - "text": " If flags includes VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, each element of pLibraryInfo->pLibraries must have been created with the VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR bit set" + "text": "If flags includes VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, each element of pLibraryInfo->pLibraries must have been created with the VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR bit set", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-04723", - "text": " If flags includes VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR, each element of pLibraryInfo->pLibraries must have been created with the VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR bit set" + "text": "If flags includes VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR, each element of pLibraryInfo->pLibraries must have been created with the VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR bit set", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInfo-03595", - "text": " If the VK_KHR_pipeline_library extension is not enabled, pLibraryInfo and pLibraryInterface must be NULL" + "text": "If the VK_KHR_pipeline_library extension is not enabled, pLibraryInfo and pLibraryInterface must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-03470", - "text": " If flags includes VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR, for any element of pGroups with a type of VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR or VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR, the anyHitShader of that element must not be VK_SHADER_UNUSED_KHR" + "text": "If flags includes VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR, for any element of pGroups with a type of VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR or VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR, the anyHitShader of that element must not be VK_SHADER_UNUSED_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-03471", - "text": " If flags includes VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, for any element of pGroups with a type of VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR or VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR, the closestHitShader of that element must not be VK_SHADER_UNUSED_KHR" + "text": "If flags includes VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, for any element of pGroups with a type of VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR or VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR, the closestHitShader of that element must not be VK_SHADER_UNUSED_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-rayTraversalPrimitiveCulling-03596", - "text": " If the rayTraversalPrimitiveCulling feature is not enabled, flags must not include VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR" + "text": "If the rayTraversalPrimitiveCulling feature is not enabled, flags must not include VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-rayTraversalPrimitiveCulling-03597", - "text": " If the rayTraversalPrimitiveCulling feature is not enabled, flags must not include VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR" + "text": "If the rayTraversalPrimitiveCulling feature is not enabled, flags must not include VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-06546", - "text": " flags must not include both VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR and VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR" + "text": "flags must not include both VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR and VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-03598", - "text": " If flags includes VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR, rayTracingPipelineShaderGroupHandleCaptureReplay must be enabled" + "text": "If flags includes VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR, rayTracingPipelineShaderGroupHandleCaptureReplay must be enabled", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-rayTracingPipelineShaderGroupHandleCaptureReplay-03599", - "text": " If VkPhysicalDeviceRayTracingPipelineFeaturesKHR::rayTracingPipelineShaderGroupHandleCaptureReplay is VK_TRUE and the pShaderGroupCaptureReplayHandle member of any element of pGroups is not NULL, flags must include VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR" + "text": "If VkPhysicalDeviceRayTracingPipelineFeaturesKHR::rayTracingPipelineShaderGroupHandleCaptureReplay is VK_TRUE and the pShaderGroupCaptureReplayHandle member of any element of pGroups is not NULL, flags must include VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInfo-07999", - "text": " If pLibraryInfo is NULL or its libraryCount is 0, stageCount must not be 0" + "text": "If pLibraryInfo is NULL or its libraryCount is 0, stageCount must not be 0", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-08700", - "text": " If flags does not include VK_PIPELINE_CREATE_LIBRARY_BIT_KHR and either pLibraryInfo is NULL or its libraryCount is 0, groupCount must not be 0" + "text": "If flags does not include VK_PIPELINE_CREATE_LIBRARY_BIT_KHR and either pLibraryInfo is NULL or its libraryCount is 0, groupCount must not be 0", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pDynamicStates-03602", - "text": " Any element of the pDynamicStates member of pDynamicState must be VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR" + "text": "Any element of the pDynamicStates member of pDynamicState must be VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pipelineStageCreationFeedbackCount-06652", - "text": " If VkPipelineCreationFeedbackCreateInfo::pipelineStageCreationFeedbackCount is not 0, it must be equal to stageCount" + "text": "If VkPipelineCreationFeedbackCreateInfo::pipelineStageCreationFeedbackCount is not 0, it must be equal to stageCount", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-stage-06899", - "text": " The stage value in all pStages elements must be one of VK_SHADER_STAGE_RAYGEN_BIT_KHR, VK_SHADER_STAGE_ANY_HIT_BIT_KHR, VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR, VK_SHADER_STAGE_MISS_BIT_KHR, VK_SHADER_STAGE_INTERSECTION_BIT_KHR, or VK_SHADER_STAGE_CALLABLE_BIT_KHR" + "text": "The stage value in all pStages elements must be one of VK_SHADER_STAGE_RAYGEN_BIT_KHR, VK_SHADER_STAGE_ANY_HIT_BIT_KHR, VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR, VK_SHADER_STAGE_MISS_BIT_KHR, VK_SHADER_STAGE_INTERSECTION_BIT_KHR, or VK_SHADER_STAGE_CALLABLE_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-07403", - "text": " If flags includes VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT, each element of pLibraryInfo->pLibraries must have been created with the VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT bit set" + "text": "If flags includes VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT, each element of pLibraryInfo->pLibraries must have been created with the VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT bit set", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-08701", - "text": " If flags includes VK_PIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV, each element of pLibraryInfo->pLibraries must have been created with the VK_PIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV bit set" + "text": "If flags includes VK_PIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV, each element of pLibraryInfo->pLibraries must have been created with the VK_PIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV bit set", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-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 VkPipelineCreateFlags2CreateInfoKHR, VkPipelineCreationFeedbackCreateInfo, or VkPipelineRobustnessCreateInfoEXT" + "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 VkPipelineCreateFlags2CreateInfoKHR, VkPipelineCreationFeedbackCreateInfo, or VkPipelineRobustnessCreateInfoEXT", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-parameter", - "text": " flags must be a valid combination of VkPipelineCreateFlagBits values" + "text": "flags must be a valid combination of VkPipelineCreateFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pStages-parameter", - "text": " If stageCount is not 0, pStages must be a valid pointer to an array of stageCount valid VkPipelineShaderStageCreateInfo structures" + "text": "If stageCount is not 0, pStages must be a valid pointer to an array of stageCount valid VkPipelineShaderStageCreateInfo structures", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pGroups-parameter", - "text": " If groupCount is not 0, pGroups must be a valid pointer to an array of groupCount valid VkRayTracingShaderGroupCreateInfoKHR structures" + "text": "If groupCount is not 0, pGroups must be a valid pointer to an array of groupCount valid VkRayTracingShaderGroupCreateInfoKHR structures", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInfo-parameter", - "text": " If pLibraryInfo is not NULL, pLibraryInfo must be a valid pointer to a valid VkPipelineLibraryCreateInfoKHR structure" + "text": "If pLibraryInfo is not NULL, pLibraryInfo must be a valid pointer to a valid VkPipelineLibraryCreateInfoKHR structure", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInterface-parameter", - "text": " If pLibraryInterface is not NULL, pLibraryInterface must be a valid pointer to a valid VkRayTracingPipelineInterfaceCreateInfoKHR structure" + "text": "If pLibraryInterface is not NULL, pLibraryInterface must be a valid pointer to a valid VkRayTracingPipelineInterfaceCreateInfoKHR structure", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pDynamicState-parameter", - "text": " If pDynamicState is not NULL, pDynamicState must be a valid pointer to a valid VkPipelineDynamicStateCreateInfo structure" + "text": "If pDynamicState is not NULL, pDynamicState must be a valid pointer to a valid VkPipelineDynamicStateCreateInfo structure", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-layout-parameter", - "text": " layout must be a valid VkPipelineLayout handle" + "text": "layout must be a valid VkPipelineLayout handle", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-commonparent", - "text": " Both of basePipelineHandle, and layout that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of basePipelineHandle, and layout that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -13606,39 +17071,48 @@ "core": [ { "vuid": "VUID-VkRayTracingShaderGroupCreateInfoNV-type-02413", - "text": " If type is VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV then generalShader must be a valid index into VkRayTracingPipelineCreateInfoNV::pStages referring to a shader of VK_SHADER_STAGE_RAYGEN_BIT_NV, VK_SHADER_STAGE_MISS_BIT_NV, or VK_SHADER_STAGE_CALLABLE_BIT_NV" + "text": "If type is VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV then generalShader must be a valid index into VkRayTracingPipelineCreateInfoNV::pStages referring to a shader of VK_SHADER_STAGE_RAYGEN_BIT_NV, VK_SHADER_STAGE_MISS_BIT_NV, or VK_SHADER_STAGE_CALLABLE_BIT_NV", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingShaderGroupCreateInfoNV-type-02414", - "text": " If type is VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV then closestHitShader, anyHitShader, and intersectionShader must be VK_SHADER_UNUSED_NV" + "text": "If type is VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV then closestHitShader, anyHitShader, and intersectionShader must be VK_SHADER_UNUSED_NV", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingShaderGroupCreateInfoNV-type-02415", - "text": " If type is VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV then intersectionShader must be a valid index into VkRayTracingPipelineCreateInfoNV::pStages referring to a shader of VK_SHADER_STAGE_INTERSECTION_BIT_NV" + "text": "If type is VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV then intersectionShader must be a valid index into VkRayTracingPipelineCreateInfoNV::pStages referring to a shader of VK_SHADER_STAGE_INTERSECTION_BIT_NV", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingShaderGroupCreateInfoNV-type-02416", - "text": " If type is VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV then intersectionShader must be VK_SHADER_UNUSED_NV" + "text": "If type is VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV then intersectionShader must be VK_SHADER_UNUSED_NV", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingShaderGroupCreateInfoNV-closestHitShader-02417", - "text": " closestHitShader must be either VK_SHADER_UNUSED_NV or a valid index into VkRayTracingPipelineCreateInfoNV::pStages referring to a shader of VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV" + "text": "closestHitShader must be either VK_SHADER_UNUSED_NV or a valid index into VkRayTracingPipelineCreateInfoNV::pStages referring to a shader of VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingShaderGroupCreateInfoNV-anyHitShader-02418", - "text": " anyHitShader must be either VK_SHADER_UNUSED_NV or a valid index into VkRayTracingPipelineCreateInfoNV::pStages referring to a shader of VK_SHADER_STAGE_ANY_HIT_BIT_NV" + "text": "anyHitShader must be either VK_SHADER_UNUSED_NV or a valid index into VkRayTracingPipelineCreateInfoNV::pStages referring to a shader of VK_SHADER_STAGE_ANY_HIT_BIT_NV", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingShaderGroupCreateInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV" + "text": "sType must be VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingShaderGroupCreateInfoNV-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingShaderGroupCreateInfoNV-type-parameter", - "text": " type must be a valid VkRayTracingShaderGroupTypeKHR value" + "text": "type must be a valid VkRayTracingShaderGroupTypeKHR value", + "page": "vkspec" } ] }, @@ -13646,47 +17120,58 @@ "core": [ { "vuid": "VUID-VkRayTracingShaderGroupCreateInfoKHR-type-03474", - "text": " If type is VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR then generalShader must be a valid index into VkRayTracingPipelineCreateInfoKHR::pStages referring to a shader of VK_SHADER_STAGE_RAYGEN_BIT_KHR, VK_SHADER_STAGE_MISS_BIT_KHR, or VK_SHADER_STAGE_CALLABLE_BIT_KHR" + "text": "If type is VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR then generalShader must be a valid index into VkRayTracingPipelineCreateInfoKHR::pStages referring to a shader of VK_SHADER_STAGE_RAYGEN_BIT_KHR, VK_SHADER_STAGE_MISS_BIT_KHR, or VK_SHADER_STAGE_CALLABLE_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingShaderGroupCreateInfoKHR-type-03475", - "text": " If type is VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR then closestHitShader, anyHitShader, and intersectionShader must be VK_SHADER_UNUSED_KHR" + "text": "If type is VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR then closestHitShader, anyHitShader, and intersectionShader must be VK_SHADER_UNUSED_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingShaderGroupCreateInfoKHR-type-03476", - "text": " If type is VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR then intersectionShader must be a valid index into VkRayTracingPipelineCreateInfoKHR::pStages referring to a shader of VK_SHADER_STAGE_INTERSECTION_BIT_KHR" + "text": "If type is VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR then intersectionShader must be a valid index into VkRayTracingPipelineCreateInfoKHR::pStages referring to a shader of VK_SHADER_STAGE_INTERSECTION_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingShaderGroupCreateInfoKHR-type-03477", - "text": " If type is VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR then intersectionShader must be VK_SHADER_UNUSED_KHR" + "text": "If type is VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR then intersectionShader must be VK_SHADER_UNUSED_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingShaderGroupCreateInfoKHR-closestHitShader-03478", - "text": " closestHitShader must be either VK_SHADER_UNUSED_KHR or a valid index into VkRayTracingPipelineCreateInfoKHR::pStages referring to a shader of VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR" + "text": "closestHitShader must be either VK_SHADER_UNUSED_KHR or a valid index into VkRayTracingPipelineCreateInfoKHR::pStages referring to a shader of VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingShaderGroupCreateInfoKHR-anyHitShader-03479", - "text": " anyHitShader must be either VK_SHADER_UNUSED_KHR or a valid index into VkRayTracingPipelineCreateInfoKHR::pStages referring to a shader of VK_SHADER_STAGE_ANY_HIT_BIT_KHR" + "text": "anyHitShader must be either VK_SHADER_UNUSED_KHR or a valid index into VkRayTracingPipelineCreateInfoKHR::pStages referring to a shader of VK_SHADER_STAGE_ANY_HIT_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingShaderGroupCreateInfoKHR-rayTracingPipelineShaderGroupHandleCaptureReplayMixed-03603", - "text": " If VkPhysicalDeviceRayTracingPipelineFeaturesKHR::rayTracingPipelineShaderGroupHandleCaptureReplayMixed is VK_FALSE then pShaderGroupCaptureReplayHandle must not be provided if it has not been provided on a previous call to ray tracing pipeline creation" + "text": "If VkPhysicalDeviceRayTracingPipelineFeaturesKHR::rayTracingPipelineShaderGroupHandleCaptureReplayMixed is VK_FALSE then pShaderGroupCaptureReplayHandle must not be provided if it has not been provided on a previous call to ray tracing pipeline creation", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingShaderGroupCreateInfoKHR-rayTracingPipelineShaderGroupHandleCaptureReplayMixed-03604", - "text": " If VkPhysicalDeviceRayTracingPipelineFeaturesKHR::rayTracingPipelineShaderGroupHandleCaptureReplayMixed is VK_FALSE then the caller must guarantee that no ray tracing pipeline creation commands with pShaderGroupCaptureReplayHandle provided execute simultaneously with ray tracing pipeline creation commands without pShaderGroupCaptureReplayHandle provided" + "text": "If VkPhysicalDeviceRayTracingPipelineFeaturesKHR::rayTracingPipelineShaderGroupHandleCaptureReplayMixed is VK_FALSE then the caller must guarantee that no ray tracing pipeline creation commands with pShaderGroupCaptureReplayHandle provided execute simultaneously with ray tracing pipeline creation commands without pShaderGroupCaptureReplayHandle provided", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingShaderGroupCreateInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingShaderGroupCreateInfoKHR-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingShaderGroupCreateInfoKHR-type-parameter", - "text": " type must be a valid VkRayTracingShaderGroupTypeKHR value" + "text": "type must be a valid VkRayTracingShaderGroupTypeKHR value", + "page": "vkspec" } ] }, @@ -13694,15 +17179,18 @@ "core": [ { "vuid": "VUID-VkRayTracingPipelineInterfaceCreateInfoKHR-maxPipelineRayHitAttributeSize-03605", - "text": " maxPipelineRayHitAttributeSize must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxRayHitAttributeSize" + "text": "maxPipelineRayHitAttributeSize must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxRayHitAttributeSize", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineInterfaceCreateInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkRayTracingPipelineInterfaceCreateInfoKHR-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" } ] }, @@ -13710,43 +17198,53 @@ "core": [ { "vuid": "VUID-vkGetRayTracingShaderGroupHandlesKHR-pipeline-04619", - "text": " pipeline must be a ray tracing pipeline" + "text": "pipeline must be a ray tracing pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkGetRayTracingShaderGroupHandlesKHR-firstGroup-04050", - "text": " firstGroup must be less than the number of shader groups in pipeline" + "text": "firstGroup must be less than the number of shader groups in pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkGetRayTracingShaderGroupHandlesKHR-firstGroup-02419", - "text": " The sum of firstGroup and groupCount must be less than or equal to the number of shader groups in pipeline" + "text": "The sum of firstGroup and groupCount must be less than or equal to the number of shader groups in pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkGetRayTracingShaderGroupHandlesKHR-dataSize-02420", - "text": " dataSize must be at least VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupHandleSize {times} groupCount" + "text": "dataSize must be at least VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupHandleSize × groupCount", + "page": "vkspec" }, { "vuid": "VUID-vkGetRayTracingShaderGroupHandlesKHR-pipeline-07828", - "text": " If the pipelineLibraryGroupHandles feature is not enabled, pipeline must not have been created with VK_PIPELINE_CREATE_LIBRARY_BIT_KHR" + "text": "If the pipelineLibraryGroupHandles feature is not enabled, pipeline must not have been created with VK_PIPELINE_CREATE_LIBRARY_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkGetRayTracingShaderGroupHandlesKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetRayTracingShaderGroupHandlesKHR-pipeline-parameter", - "text": " pipeline must be a valid VkPipeline handle" + "text": "pipeline must be a valid VkPipeline handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetRayTracingShaderGroupHandlesKHR-pData-parameter", - "text": " pData must be a valid pointer to an array of dataSize bytes" + "text": "pData must be a valid pointer to an array of dataSize bytes", + "page": "vkspec" }, { "vuid": "VUID-vkGetRayTracingShaderGroupHandlesKHR-dataSize-arraylength", - "text": " dataSize must be greater than 0" + "text": "dataSize must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-vkGetRayTracingShaderGroupHandlesKHR-pipeline-parent", - "text": " pipeline must have been created, allocated, or retrieved from device" + "text": "pipeline must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -13754,51 +17252,63 @@ "core": [ { "vuid": "VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-pipeline-04620", - "text": " pipeline must be a ray tracing pipeline" + "text": "pipeline must be a ray tracing pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-firstGroup-04051", - "text": " firstGroup must be less than the number of shader groups in pipeline" + "text": "firstGroup must be less than the number of shader groups in pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-firstGroup-03483", - "text": " The sum of firstGroup and groupCount must be less than or equal to the number of shader groups in pipeline" + "text": "The sum of firstGroup and groupCount must be less than or equal to the number of shader groups in pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-dataSize-03484", - "text": " dataSize must be at least VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupHandleCaptureReplaySize {times} groupCount" + "text": "dataSize must be at least VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupHandleCaptureReplaySize × groupCount", + "page": "vkspec" }, { "vuid": "VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-rayTracingPipelineShaderGroupHandleCaptureReplay-03606", - "text": " VkPhysicalDeviceRayTracingPipelineFeaturesKHR::rayTracingPipelineShaderGroupHandleCaptureReplay must be enabled to call this function" + "text": "VkPhysicalDeviceRayTracingPipelineFeaturesKHR::rayTracingPipelineShaderGroupHandleCaptureReplay must be enabled to call this function", + "page": "vkspec" }, { "vuid": "VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-pipeline-03607", - "text": " pipeline must have been created with a flags that included VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR" + "text": "pipeline must have been created with a flags that included VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-pipeline-07829", - "text": " If the pipelineLibraryGroupHandles feature is not enabled, pipeline must not have been created with VK_PIPELINE_CREATE_LIBRARY_BIT_KHR" + "text": "If the pipelineLibraryGroupHandles feature is not enabled, pipeline must not have been created with VK_PIPELINE_CREATE_LIBRARY_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-pipeline-parameter", - "text": " pipeline must be a valid VkPipeline handle" + "text": "pipeline must be a valid VkPipeline handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-pData-parameter", - "text": " pData must be a valid pointer to an array of dataSize bytes" + "text": "pData must be a valid pointer to an array of dataSize bytes", + "page": "vkspec" }, { "vuid": "VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-dataSize-arraylength", - "text": " dataSize must be greater than 0" + "text": "dataSize must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-pipeline-parent", - "text": " pipeline must have been created, allocated, or retrieved from device" + "text": "pipeline must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -13806,27 +17316,33 @@ "core": [ { "vuid": "VUID-vkCompileDeferredNV-pipeline-04621", - "text": " pipeline must be a ray tracing pipeline" + "text": "pipeline must be a ray tracing pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCompileDeferredNV-pipeline-02237", - "text": " pipeline must have been created with VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV" + "text": "pipeline must have been created with VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV", + "page": "vkspec" }, { "vuid": "VUID-vkCompileDeferredNV-shader-02238", - "text": " shader must not have been called as a deferred compile before" + "text": "shader must not have been called as a deferred compile before", + "page": "vkspec" }, { "vuid": "VUID-vkCompileDeferredNV-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkCompileDeferredNV-pipeline-parameter", - "text": " pipeline must be a valid VkPipeline handle" + "text": "pipeline must be a valid VkPipeline handle", + "page": "vkspec" }, { "vuid": "VUID-vkCompileDeferredNV-pipeline-parent", - "text": " pipeline must have been created, allocated, or retrieved from device" + "text": "pipeline must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -13834,31 +17350,38 @@ "core": [ { "vuid": "VUID-vkGetRayTracingShaderGroupStackSizeKHR-pipeline-04622", - "text": " pipeline must be a ray tracing pipeline" + "text": "pipeline must be a ray tracing pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkGetRayTracingShaderGroupStackSizeKHR-group-03608", - "text": " The value of group must be less than the number of shader groups in pipeline" + "text": "The value of group must be less than the number of shader groups in pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkGetRayTracingShaderGroupStackSizeKHR-groupShader-03609", - "text": " The shader identified by groupShader in group must not be VK_SHADER_UNUSED_KHR" + "text": "The shader identified by groupShader in group must not be VK_SHADER_UNUSED_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkGetRayTracingShaderGroupStackSizeKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetRayTracingShaderGroupStackSizeKHR-pipeline-parameter", - "text": " pipeline must be a valid VkPipeline handle" + "text": "pipeline must be a valid VkPipeline handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetRayTracingShaderGroupStackSizeKHR-groupShader-parameter", - "text": " groupShader must be a valid VkShaderGroupShaderKHR value" + "text": "groupShader must be a valid VkShaderGroupShaderKHR value", + "page": "vkspec" }, { "vuid": "VUID-vkGetRayTracingShaderGroupStackSizeKHR-pipeline-parent", - "text": " pipeline must have been created, allocated, or retrieved from device" + "text": "pipeline must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -13866,27 +17389,33 @@ "core": [ { "vuid": "VUID-vkCmdSetRayTracingPipelineStackSizeKHR-pipelineStackSize-03610", - "text": " pipelineStackSize must be large enough for any dynamic execution through the shaders in the ray tracing pipeline used by a subsequent trace call" + "text": "pipelineStackSize must be large enough for any dynamic execution through the shaders in the ray tracing pipeline used by a subsequent trace call", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetRayTracingPipelineStackSizeKHR-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetRayTracingPipelineStackSizeKHR-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetRayTracingPipelineStackSizeKHR-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support compute operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetRayTracingPipelineStackSizeKHR-renderpass", - "text": " This command must only be called outside of a render pass instance" + "text": "This command must only be called outside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetRayTracingPipelineStackSizeKHR-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -13894,31 +17423,38 @@ "core": [ { "vuid": "VUID-vkDestroyPipeline-pipeline-00765", - "text": " All submitted commands that refer to pipeline must have completed execution" + "text": "All submitted commands that refer to pipeline must have completed execution", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyPipeline-pipeline-00766", - "text": " If VkAllocationCallbacks were provided when pipeline was created, a compatible set of callbacks must be provided here" + "text": "If VkAllocationCallbacks were provided when pipeline was created, a compatible set of callbacks must be provided here", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyPipeline-pipeline-00767", - "text": " If no VkAllocationCallbacks were provided when pipeline was created, pAllocator must be NULL" + "text": "If no VkAllocationCallbacks were provided when pipeline was created, pAllocator must be NULL", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyPipeline-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyPipeline-pipeline-parameter", - "text": " If pipeline is not VK_NULL_HANDLE, pipeline must be a valid VkPipeline handle" + "text": "If pipeline is not VK_NULL_HANDLE, pipeline must be a valid VkPipeline handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyPipeline-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyPipeline-pipeline-parent", - "text": " If pipeline is a valid handle, it must have been created, allocated, or retrieved from device" + "text": "If pipeline is a valid handle, it must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -13926,19 +17462,23 @@ "core": [ { "vuid": "VUID-vkCreatePipelineCache-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkCreatePipelineCache-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkPipelineCacheCreateInfo structure" + "text": "pCreateInfo must be a valid pointer to a valid VkPipelineCacheCreateInfo structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreatePipelineCache-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreatePipelineCache-pPipelineCache-parameter", - "text": " pPipelineCache must be a valid pointer to a VkPipelineCache handle" + "text": "pPipelineCache must be a valid pointer to a VkPipelineCache handle", + "page": "vkspec" } ] }, @@ -13946,31 +17486,38 @@ "core": [ { "vuid": "VUID-VkPipelineCacheCreateInfo-initialDataSize-00768", - "text": " If initialDataSize is not 0, it must be equal to the size of pInitialData, as returned by vkGetPipelineCacheData when pInitialData was originally retrieved" + "text": "If initialDataSize is not 0, it must be equal to the size of pInitialData, as returned by vkGetPipelineCacheData when pInitialData was originally retrieved", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineCacheCreateInfo-initialDataSize-00769", - "text": " If initialDataSize is not 0, pInitialData must have been retrieved from a previous call to vkGetPipelineCacheData" + "text": "If initialDataSize is not 0, pInitialData must have been retrieved from a previous call to vkGetPipelineCacheData", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineCacheCreateInfo-pipelineCreationCacheControl-02892", - "text": " If the pipelineCreationCacheControl feature is not enabled, flags must not include VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT" + "text": "If the pipelineCreationCacheControl feature is not enabled, flags must not include VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineCacheCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineCacheCreateInfo-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineCacheCreateInfo-flags-parameter", - "text": " flags must be a valid combination of VkPipelineCacheCreateFlagBits values" + "text": "flags must be a valid combination of VkPipelineCacheCreateFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineCacheCreateInfo-pInitialData-parameter", - "text": " If initialDataSize is not 0, pInitialData must be a valid pointer to an array of initialDataSize bytes" + "text": "If initialDataSize is not 0, pInitialData must be a valid pointer to an array of initialDataSize bytes", + "page": "vkspec" } ] }, @@ -13978,31 +17525,38 @@ "core": [ { "vuid": "VUID-vkMergePipelineCaches-dstCache-00770", - "text": " dstCache must not appear in the list of source caches" + "text": "dstCache must not appear in the list of source caches", + "page": "vkspec" }, { "vuid": "VUID-vkMergePipelineCaches-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkMergePipelineCaches-dstCache-parameter", - "text": " dstCache must be a valid VkPipelineCache handle" + "text": "dstCache must be a valid VkPipelineCache handle", + "page": "vkspec" }, { "vuid": "VUID-vkMergePipelineCaches-pSrcCaches-parameter", - "text": " pSrcCaches must be a valid pointer to an array of srcCacheCount valid VkPipelineCache handles" + "text": "pSrcCaches must be a valid pointer to an array of srcCacheCount valid VkPipelineCache handles", + "page": "vkspec" }, { "vuid": "VUID-vkMergePipelineCaches-srcCacheCount-arraylength", - "text": " srcCacheCount must be greater than 0" + "text": "srcCacheCount must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-vkMergePipelineCaches-dstCache-parent", - "text": " dstCache must have been created, allocated, or retrieved from device" + "text": "dstCache must have been created, allocated, or retrieved from device", + "page": "vkspec" }, { "vuid": "VUID-vkMergePipelineCaches-pSrcCaches-parent", - "text": " Each element of pSrcCaches must have been created, allocated, or retrieved from device" + "text": "Each element of pSrcCaches must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -14010,23 +17564,28 @@ "core": [ { "vuid": "VUID-vkGetPipelineCacheData-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPipelineCacheData-pipelineCache-parameter", - "text": " pipelineCache must be a valid VkPipelineCache handle" + "text": "pipelineCache must be a valid VkPipelineCache handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPipelineCacheData-pDataSize-parameter", - "text": " pDataSize must be a valid pointer to a size_t value" + "text": "pDataSize must be a valid pointer to a size_t value", + "page": "vkspec" }, { "vuid": "VUID-vkGetPipelineCacheData-pData-parameter", - "text": " If the value referenced by pDataSize is not 0, and pData is not NULL, pData must be a valid pointer to an array of pDataSize bytes" + "text": "If the value referenced by pDataSize is not 0, and pData is not NULL, pData must be a valid pointer to an array of pDataSize bytes", + "page": "vkspec" }, { "vuid": "VUID-vkGetPipelineCacheData-pipelineCache-parent", - "text": " pipelineCache must have been created, allocated, or retrieved from device" + "text": "pipelineCache must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -14034,19 +17593,23 @@ "core": [ { "vuid": "VUID-VkPipelineCacheHeaderVersionOne-headerSize-04967", - "text": " headerSize must be 32" + "text": "headerSize must be 32", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineCacheHeaderVersionOne-headerVersion-04968", - "text": " headerVersion must be VK_PIPELINE_CACHE_HEADER_VERSION_ONE" + "text": "headerVersion must be VK_PIPELINE_CACHE_HEADER_VERSION_ONE", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineCacheHeaderVersionOne-headerSize-08990", - "text": " headerSize must not exceed the size of the pipeline cache" + "text": "headerSize must not exceed the size of the pipeline cache", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineCacheHeaderVersionOne-headerVersion-parameter", - "text": " headerVersion must be a valid VkPipelineCacheHeaderVersion value" + "text": "headerVersion must be a valid VkPipelineCacheHeaderVersion value", + "page": "vkspec" } ] }, @@ -14054,27 +17617,33 @@ "core": [ { "vuid": "VUID-vkDestroyPipelineCache-pipelineCache-00771", - "text": " If VkAllocationCallbacks were provided when pipelineCache was created, a compatible set of callbacks must be provided here" + "text": "If VkAllocationCallbacks were provided when pipelineCache was created, a compatible set of callbacks must be provided here", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyPipelineCache-pipelineCache-00772", - "text": " If no VkAllocationCallbacks were provided when pipelineCache was created, pAllocator must be NULL" + "text": "If no VkAllocationCallbacks were provided when pipelineCache was created, pAllocator must be NULL", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyPipelineCache-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyPipelineCache-pipelineCache-parameter", - "text": " If pipelineCache is not VK_NULL_HANDLE, pipelineCache must be a valid VkPipelineCache handle" + "text": "If pipelineCache is not VK_NULL_HANDLE, pipelineCache must be a valid VkPipelineCache handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyPipelineCache-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyPipelineCache-pipelineCache-parent", - "text": " If pipelineCache is a valid handle, it must have been created, allocated, or retrieved from device" + "text": "If pipelineCache is a valid handle, it must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -14082,23 +17651,28 @@ "core": [ { "vuid": "VUID-VkSpecializationInfo-offset-00773", - "text": " The offset member of each element of pMapEntries must be less than dataSize" + "text": "The offset member of each element of pMapEntries must be less than dataSize", + "page": "vkspec" }, { "vuid": "VUID-VkSpecializationInfo-pMapEntries-00774", - "text": " The size member of each element of pMapEntries must be less than or equal to dataSize minus offset" + "text": "The size member of each element of pMapEntries must be less than or equal to dataSize minus offset", + "page": "vkspec" }, { "vuid": "VUID-VkSpecializationInfo-constantID-04911", - "text": " The constantID value of each element of pMapEntries must be unique within pMapEntries" + "text": "The constantID value of each element of pMapEntries must be unique within pMapEntries", + "page": "vkspec" }, { "vuid": "VUID-VkSpecializationInfo-pMapEntries-parameter", - "text": " If mapEntryCount is not 0, pMapEntries must be a valid pointer to an array of mapEntryCount valid VkSpecializationMapEntry structures" + "text": "If mapEntryCount is not 0, pMapEntries must be a valid pointer to an array of mapEntryCount valid VkSpecializationMapEntry structures", + "page": "vkspec" }, { "vuid": "VUID-VkSpecializationInfo-pData-parameter", - "text": " If dataSize is not 0, pData must be a valid pointer to an array of dataSize bytes" + "text": "If dataSize is not 0, pData must be a valid pointer to an array of dataSize bytes", + "page": "vkspec" } ] }, @@ -14106,7 +17680,8 @@ "core": [ { "vuid": "VUID-VkSpecializationMapEntry-constantID-00776", - "text": " For a constantID specialization constant declared in a shader, size must match the byte size of the constantID. If the specialization constant is of type boolean, size must be the byte size of VkBool32" + "text": "For a constantID specialization constant declared in a shader, size must match the byte size of the constantID. If the specialization constant is of type boolean, size must be the byte size of VkBool32", + "page": "vkspec" } ] }, @@ -14114,39 +17689,48 @@ "core": [ { "vuid": "VUID-VkPipelineLibraryCreateInfoKHR-pLibraries-03381", - "text": " Each element of pLibraries must have been created with VK_PIPELINE_CREATE_LIBRARY_BIT_KHR" + "text": "Each element of pLibraries must have been created with VK_PIPELINE_CREATE_LIBRARY_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineLibraryCreateInfoKHR-pLibraries-06855", - "text": " If any library in pLibraries was created with a shader stage with VkPipelineShaderStageModuleIdentifierCreateInfoEXT and identifierSize not equal to 0, the pipeline must be created with the VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT flag set" + "text": "If any library in pLibraries was created with a shader stage with VkPipelineShaderStageModuleIdentifierCreateInfoEXT and identifierSize not equal to 0, the pipeline must be created with the VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT flag set", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineLibraryCreateInfoKHR-pLibraries-08096", - "text": " If any element of pLibraries was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, all elements must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "If any element of pLibraries was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, all elements must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineLibraryCreateInfoKHR-pipeline-07404", - "text": " If pipeline is being created with VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT, every element of pLibraries must have been created with VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT" + "text": "If pipeline is being created with VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT, every element of pLibraries must have been created with VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineLibraryCreateInfoKHR-pipeline-07405", - "text": " If pipeline is being created without VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT, every element of pLibraries must have been created without VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT" + "text": "If pipeline is being created without VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT, every element of pLibraries must have been created without VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineLibraryCreateInfoKHR-pipeline-07406", - "text": " If pipeline is being created with VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT, every element of pLibraries must have been created with VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT" + "text": "If pipeline is being created with VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT, every element of pLibraries must have been created with VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineLibraryCreateInfoKHR-pipeline-07407", - "text": " If pipeline is being created without VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT, every element of pLibraries must have been created without VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT" + "text": "If pipeline is being created without VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT, every element of pLibraries must have been created without VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineLibraryCreateInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineLibraryCreateInfoKHR-pLibraries-parameter", - "text": " If libraryCount is not 0, pLibraries must be a valid pointer to an array of libraryCount valid VkPipeline handles" + "text": "If libraryCount is not 0, pLibraries must be a valid pointer to an array of libraryCount valid VkPipeline handles", + "page": "vkspec" } ] }, @@ -14154,107 +17738,133 @@ "core": [ { "vuid": "VUID-vkCmdBindPipeline-pipelineBindPoint-00777", - "text": " If pipelineBindPoint is VK_PIPELINE_BIND_POINT_COMPUTE, the VkCommandPool that commandBuffer was allocated from must support compute operations" + "text": "If pipelineBindPoint is VK_PIPELINE_BIND_POINT_COMPUTE, the VkCommandPool that commandBuffer was allocated from must support compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindPipeline-pipelineBindPoint-00778", - "text": " If pipelineBindPoint is VK_PIPELINE_BIND_POINT_GRAPHICS, the VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "If pipelineBindPoint is VK_PIPELINE_BIND_POINT_GRAPHICS, the VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindPipeline-pipelineBindPoint-00779", - "text": " If pipelineBindPoint is VK_PIPELINE_BIND_POINT_COMPUTE, pipeline must be a compute pipeline" + "text": "If pipelineBindPoint is VK_PIPELINE_BIND_POINT_COMPUTE, pipeline must be a compute pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindPipeline-pipelineBindPoint-00780", - "text": " If pipelineBindPoint is VK_PIPELINE_BIND_POINT_GRAPHICS, pipeline must be a graphics pipeline" + "text": "If pipelineBindPoint is VK_PIPELINE_BIND_POINT_GRAPHICS, pipeline must be a graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindPipeline-pipeline-00781", - "text": " If the variableMultisampleRate feature is not supported, pipeline is a graphics pipeline, the current subpass uses no attachments, and this is not the first call to this function with a graphics pipeline after transitioning to the current subpass, then the sample count specified by this pipeline must match that set in the previous pipeline" + "text": "If the variableMultisampleRate feature is not supported, pipeline is a graphics pipeline, the current subpass uses no attachments, and this is not the first call to this function with a graphics pipeline after transitioning to the current subpass, then the sample count specified by this pipeline must match that set in the previous pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindPipeline-variableSampleLocations-01525", - "text": " If VkPhysicalDeviceSampleLocationsPropertiesEXT::variableSampleLocations is VK_FALSE, and pipeline is a graphics pipeline created with a VkPipelineSampleLocationsStateCreateInfoEXT structure having its sampleLocationsEnable member set to VK_TRUE but without VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT enabled then the current render pass instance must have been begun by specifying a VkRenderPassSampleLocationsBeginInfoEXT structure whose pPostSubpassSampleLocations member contains an element with a subpassIndex matching the current subpass index and the sampleLocationsInfo member of that element must match the sampleLocationsInfo specified in VkPipelineSampleLocationsStateCreateInfoEXT when the pipeline was created" + "text": "If VkPhysicalDeviceSampleLocationsPropertiesEXT::variableSampleLocations is VK_FALSE, and pipeline is a graphics pipeline created with a VkPipelineSampleLocationsStateCreateInfoEXT structure having its sampleLocationsEnable member set to VK_TRUE but without VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT enabled then the current render pass instance must have been begun by specifying a VkRenderPassSampleLocationsBeginInfoEXT structure whose pPostSubpassSampleLocations member contains an element with a subpassIndex matching the current subpass index and the sampleLocationsInfo member of that element must match the sampleLocationsInfo specified in VkPipelineSampleLocationsStateCreateInfoEXT when the pipeline was created", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindPipeline-None-02323", - "text": " This command must not be recorded when transform feedback is active" + "text": "This command must not be recorded when transform feedback is active", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindPipeline-pipelineBindPoint-02391", - "text": " If pipelineBindPoint is VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR, the VkCommandPool that commandBuffer was allocated from must support compute operations" + "text": "If pipelineBindPoint is VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR, the VkCommandPool that commandBuffer was allocated from must support compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindPipeline-pipelineBindPoint-02392", - "text": " If pipelineBindPoint is VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR, pipeline must be a ray tracing pipeline" + "text": "If pipelineBindPoint is VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR, pipeline must be a ray tracing pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindPipeline-pipelineBindPoint-06721", - "text": " If pipelineBindPoint is VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR, commandBuffer must not be a protected command buffer" + "text": "If pipelineBindPoint is VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR, commandBuffer must not be a protected command buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindPipeline-pipelineProtectedAccess-07408", - "text": " If the pipelineProtectedAccess feature is enabled, and commandBuffer is a protected command buffer, pipeline must have been created without VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT" + "text": "If the pipelineProtectedAccess feature is enabled, and commandBuffer is a protected command buffer, pipeline must have been created without VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindPipeline-pipelineProtectedAccess-07409", - "text": " If the pipelineProtectedAccess feature is enabled, and commandBuffer is not a protected command buffer, pipeline must have been created without VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT" + "text": "If the pipelineProtectedAccess feature is enabled, and commandBuffer is not a protected command buffer, pipeline must have been created without VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindPipeline-pipeline-03382", - "text": " pipeline must not have been created with VK_PIPELINE_CREATE_LIBRARY_BIT_KHR set" + "text": "pipeline must not have been created with VK_PIPELINE_CREATE_LIBRARY_BIT_KHR set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindPipeline-commandBuffer-04808", - "text": " If commandBuffer is a secondary command buffer with VkCommandBufferInheritanceViewportScissorInfoNV::viewportScissor2D enabled and pipelineBindPoint is VK_PIPELINE_BIND_POINT_GRAPHICS, then the pipeline must have been created with VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT or VK_DYNAMIC_STATE_VIEWPORT, and VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT or VK_DYNAMIC_STATE_SCISSOR enabled" + "text": "If commandBuffer is a secondary command buffer with VkCommandBufferInheritanceViewportScissorInfoNV::viewportScissor2D enabled and pipelineBindPoint is VK_PIPELINE_BIND_POINT_GRAPHICS, then the pipeline must have been created with VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT or VK_DYNAMIC_STATE_VIEWPORT, and VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT or VK_DYNAMIC_STATE_SCISSOR enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindPipeline-commandBuffer-04809", - "text": " If commandBuffer is a secondary command buffer with VkCommandBufferInheritanceViewportScissorInfoNV::viewportScissor2D enabled and pipelineBindPoint is VK_PIPELINE_BIND_POINT_GRAPHICS and pipeline was created with VkPipelineDiscardRectangleStateCreateInfoEXT structure and its discardRectangleCount member is not 0, or the pipeline was created with VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT enabled, then the pipeline must have been created with VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT enabled" + "text": "If commandBuffer is a secondary command buffer with VkCommandBufferInheritanceViewportScissorInfoNV::viewportScissor2D enabled and pipelineBindPoint is VK_PIPELINE_BIND_POINT_GRAPHICS and pipeline was created with VkPipelineDiscardRectangleStateCreateInfoEXT structure and its discardRectangleCount member is not 0, or the pipeline was created with VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT enabled, then the pipeline must have been created with VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindPipeline-pipelineBindPoint-04881", - "text": " If pipelineBindPoint is VK_PIPELINE_BIND_POINT_GRAPHICS and the provokingVertexModePerPipeline limit is VK_FALSE, then pipeline’s VkPipelineRasterizationProvokingVertexStateCreateInfoEXT::provokingVertexMode must be the same as that of any other pipelines previously bound to this bind point within the current render pass instance, including any pipeline already bound when beginning the render pass instance" + "text": "If pipelineBindPoint is VK_PIPELINE_BIND_POINT_GRAPHICS and the provokingVertexModePerPipeline limit is VK_FALSE, then pipeline’s VkPipelineRasterizationProvokingVertexStateCreateInfoEXT::provokingVertexMode must be the same as that of any other pipelines previously bound to this bind point within the current render pass instance, including any pipeline already bound when beginning the render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindPipeline-pipelineBindPoint-04949", - "text": " If pipelineBindPoint is VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI, the VkCommandPool that commandBuffer was allocated from must support compute operations" + "text": "If pipelineBindPoint is VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI, the VkCommandPool that commandBuffer was allocated from must support compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindPipeline-pipelineBindPoint-04950", - "text": " If pipelineBindPoint is VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI, pipeline must be a subpass shading pipeline" + "text": "If pipelineBindPoint is VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI, pipeline must be a subpass shading pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindPipeline-pipelineBindPoint-06653", - "text": " If pipelineBindPoint is VK_PIPELINE_BIND_POINT_GRAPHICS, pipeline must have been created without VK_PIPELINE_CREATE_LIBRARY_BIT_KHR" + "text": "If pipelineBindPoint is VK_PIPELINE_BIND_POINT_GRAPHICS, pipeline must have been created without VK_PIPELINE_CREATE_LIBRARY_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindPipeline-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindPipeline-pipelineBindPoint-parameter", - "text": " pipelineBindPoint must be a valid VkPipelineBindPoint value" + "text": "pipelineBindPoint must be a valid VkPipelineBindPoint value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindPipeline-pipeline-parameter", - "text": " pipeline must be a valid VkPipeline handle" + "text": "pipeline must be a valid VkPipeline handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindPipeline-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindPipeline-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindPipeline-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindPipeline-commonparent", - "text": " Both of commandBuffer, and pipeline must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of commandBuffer, and pipeline must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -14262,47 +17872,58 @@ "core": [ { "vuid": "VUID-vkCmdBindPipelineShaderGroupNV-groupIndex-02893", - "text": " groupIndex must be 0 or less than the effective VkGraphicsPipelineShaderGroupsCreateInfoNV::groupCount including the referenced pipelines" + "text": "groupIndex must be 0 or less than the effective VkGraphicsPipelineShaderGroupsCreateInfoNV::groupCount including the referenced pipelines", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindPipelineShaderGroupNV-pipelineBindPoint-02894", - "text": " The pipelineBindPoint must be VK_PIPELINE_BIND_POINT_GRAPHICS" + "text": "The pipelineBindPoint must be VK_PIPELINE_BIND_POINT_GRAPHICS", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindPipelineShaderGroupNV-groupIndex-02895", - "text": " The same restrictions as vkCmdBindPipeline apply as if the bound pipeline was created only with the Shader Group from the groupIndex information" + "text": "The same restrictions as vkCmdBindPipeline apply as if the bound pipeline was created only with the Shader Group from the groupIndex information", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindPipelineShaderGroupNV-deviceGeneratedCommands-02896", - "text": " The deviceGeneratedCommands feature must be enabled" + "text": "The deviceGeneratedCommands feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindPipelineShaderGroupNV-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindPipelineShaderGroupNV-pipelineBindPoint-parameter", - "text": " pipelineBindPoint must be a valid VkPipelineBindPoint value" + "text": "pipelineBindPoint must be a valid VkPipelineBindPoint value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindPipelineShaderGroupNV-pipeline-parameter", - "text": " pipeline must be a valid VkPipeline handle" + "text": "pipeline must be a valid VkPipeline handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindPipelineShaderGroupNV-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindPipelineShaderGroupNV-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindPipelineShaderGroupNV-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindPipelineShaderGroupNV-commonparent", - "text": " Both of commandBuffer, and pipeline must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of commandBuffer, and pipeline must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -14310,27 +17931,33 @@ "core": [ { "vuid": "VUID-vkGetPipelineExecutablePropertiesKHR-pipelineExecutableInfo-03270", - "text": " The pipelineExecutableInfo feature must be enabled" + "text": "The pipelineExecutableInfo feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkGetPipelineExecutablePropertiesKHR-pipeline-03271", - "text": " The pipeline member of pPipelineInfo must have been created with device" + "text": "The pipeline member of pPipelineInfo must have been created with device", + "page": "vkspec" }, { "vuid": "VUID-vkGetPipelineExecutablePropertiesKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPipelineExecutablePropertiesKHR-pPipelineInfo-parameter", - "text": " pPipelineInfo must be a valid pointer to a valid VkPipelineInfoKHR structure" + "text": "pPipelineInfo must be a valid pointer to a valid VkPipelineInfoKHR structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetPipelineExecutablePropertiesKHR-pExecutableCount-parameter", - "text": " pExecutableCount must be a valid pointer to a uint32_t value" + "text": "pExecutableCount must be a valid pointer to a uint32_t value", + "page": "vkspec" }, { "vuid": "VUID-vkGetPipelineExecutablePropertiesKHR-pProperties-parameter", - "text": " If the value referenced by pExecutableCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pExecutableCount VkPipelineExecutablePropertiesKHR structures" + "text": "If the value referenced by pExecutableCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pExecutableCount VkPipelineExecutablePropertiesKHR structures", + "page": "vkspec" } ] }, @@ -14338,11 +17965,13 @@ "core": [ { "vuid": "VUID-VkPipelineExecutablePropertiesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineExecutablePropertiesKHR-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" } ] }, @@ -14350,23 +17979,28 @@ "core": [ { "vuid": "VUID-vkGetPipelinePropertiesEXT-pipeline-06738", - "text": " The pipeline member of pPipelineInfo must have been created with device" + "text": "The pipeline member of pPipelineInfo must have been created with device", + "page": "vkspec" }, { "vuid": "VUID-vkGetPipelinePropertiesEXT-pPipelineProperties-06739", - "text": " pPipelineProperties must be a valid pointer to a VkPipelinePropertiesIdentifierEXT structure" + "text": "pPipelineProperties must be a valid pointer to a VkPipelinePropertiesIdentifierEXT structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetPipelinePropertiesEXT-None-06766", - "text": " The pipelinePropertiesIdentifier feature must be enabled" + "text": "The pipelinePropertiesIdentifier feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkGetPipelinePropertiesEXT-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPipelinePropertiesEXT-pPipelineInfo-parameter", - "text": " pPipelineInfo must be a valid pointer to a valid VkPipelineInfoEXT structure" + "text": "pPipelineInfo must be a valid pointer to a valid VkPipelineInfoEXT structure", + "page": "vkspec" } ] }, @@ -14374,11 +18008,13 @@ "core": [ { "vuid": "VUID-VkPipelinePropertiesIdentifierEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkPipelinePropertiesIdentifierEXT-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" } ] }, @@ -14386,15 +18022,18 @@ "core": [ { "vuid": "VUID-VkPipelineInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineInfoKHR-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineInfoKHR-pipeline-parameter", - "text": " pipeline must be a valid VkPipeline handle" + "text": "pipeline must be a valid VkPipeline handle", + "page": "vkspec" } ] }, @@ -14402,31 +18041,38 @@ "core": [ { "vuid": "VUID-vkGetPipelineExecutableStatisticsKHR-pipelineExecutableInfo-03272", - "text": " The pipelineExecutableInfo feature must be enabled" + "text": "The pipelineExecutableInfo feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkGetPipelineExecutableStatisticsKHR-pipeline-03273", - "text": " The pipeline member of pExecutableInfo must have been created with device" + "text": "The pipeline member of pExecutableInfo must have been created with device", + "page": "vkspec" }, { "vuid": "VUID-vkGetPipelineExecutableStatisticsKHR-pipeline-03274", - "text": " The pipeline member of pExecutableInfo must have been created with VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR" + "text": "The pipeline member of pExecutableInfo must have been created with VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkGetPipelineExecutableStatisticsKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPipelineExecutableStatisticsKHR-pExecutableInfo-parameter", - "text": " pExecutableInfo must be a valid pointer to a valid VkPipelineExecutableInfoKHR structure" + "text": "pExecutableInfo must be a valid pointer to a valid VkPipelineExecutableInfoKHR structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetPipelineExecutableStatisticsKHR-pStatisticCount-parameter", - "text": " pStatisticCount must be a valid pointer to a uint32_t value" + "text": "pStatisticCount must be a valid pointer to a uint32_t value", + "page": "vkspec" }, { "vuid": "VUID-vkGetPipelineExecutableStatisticsKHR-pStatistics-parameter", - "text": " If the value referenced by pStatisticCount is not 0, and pStatistics is not NULL, pStatistics must be a valid pointer to an array of pStatisticCount VkPipelineExecutableStatisticKHR structures" + "text": "If the value referenced by pStatisticCount is not 0, and pStatistics is not NULL, pStatistics must be a valid pointer to an array of pStatisticCount VkPipelineExecutableStatisticKHR structures", + "page": "vkspec" } ] }, @@ -14434,19 +18080,23 @@ "core": [ { "vuid": "VUID-VkPipelineExecutableInfoKHR-executableIndex-03275", - "text": " executableIndex must be less than the number of pipeline executables associated with pipeline as returned in the pExecutableCount parameter of vkGetPipelineExecutablePropertiesKHR" + "text": "executableIndex must be less than the number of pipeline executables associated with pipeline as returned in the pExecutableCount parameter of vkGetPipelineExecutablePropertiesKHR", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineExecutableInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineExecutableInfoKHR-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineExecutableInfoKHR-pipeline-parameter", - "text": " pipeline must be a valid VkPipeline handle" + "text": "pipeline must be a valid VkPipeline handle", + "page": "vkspec" } ] }, @@ -14454,11 +18104,13 @@ "core": [ { "vuid": "VUID-VkPipelineExecutableStatisticKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineExecutableStatisticKHR-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" } ] }, @@ -14466,31 +18118,38 @@ "core": [ { "vuid": "VUID-vkGetPipelineExecutableInternalRepresentationsKHR-pipelineExecutableInfo-03276", - "text": " The pipelineExecutableInfo feature must be enabled" + "text": "The pipelineExecutableInfo feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkGetPipelineExecutableInternalRepresentationsKHR-pipeline-03277", - "text": " The pipeline member of pExecutableInfo must have been created with device" + "text": "The pipeline member of pExecutableInfo must have been created with device", + "page": "vkspec" }, { "vuid": "VUID-vkGetPipelineExecutableInternalRepresentationsKHR-pipeline-03278", - "text": " The pipeline member of pExecutableInfo must have been created with VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR" + "text": "The pipeline member of pExecutableInfo must have been created with VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkGetPipelineExecutableInternalRepresentationsKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPipelineExecutableInternalRepresentationsKHR-pExecutableInfo-parameter", - "text": " pExecutableInfo must be a valid pointer to a valid VkPipelineExecutableInfoKHR structure" + "text": "pExecutableInfo must be a valid pointer to a valid VkPipelineExecutableInfoKHR structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetPipelineExecutableInternalRepresentationsKHR-pInternalRepresentationCount-parameter", - "text": " pInternalRepresentationCount must be a valid pointer to a uint32_t value" + "text": "pInternalRepresentationCount must be a valid pointer to a uint32_t value", + "page": "vkspec" }, { "vuid": "VUID-vkGetPipelineExecutableInternalRepresentationsKHR-pInternalRepresentations-parameter", - "text": " If the value referenced by pInternalRepresentationCount is not 0, and pInternalRepresentations is not NULL, pInternalRepresentations must be a valid pointer to an array of pInternalRepresentationCount VkPipelineExecutableInternalRepresentationKHR structures" + "text": "If the value referenced by pInternalRepresentationCount is not 0, and pInternalRepresentations is not NULL, pInternalRepresentations must be a valid pointer to an array of pInternalRepresentationCount VkPipelineExecutableInternalRepresentationKHR structures", + "page": "vkspec" } ] }, @@ -14498,11 +18157,13 @@ "core": [ { "vuid": "VUID-VkPipelineExecutableInternalRepresentationKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineExecutableInternalRepresentationKHR-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" } ] }, @@ -14510,31 +18171,38 @@ "core": [ { "vuid": "VUID-vkGetShaderInfoAMD-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetShaderInfoAMD-pipeline-parameter", - "text": " pipeline must be a valid VkPipeline handle" + "text": "pipeline must be a valid VkPipeline handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetShaderInfoAMD-shaderStage-parameter", - "text": " shaderStage must be a valid VkShaderStageFlagBits value" + "text": "shaderStage must be a valid VkShaderStageFlagBits value", + "page": "vkspec" }, { "vuid": "VUID-vkGetShaderInfoAMD-infoType-parameter", - "text": " infoType must be a valid VkShaderInfoTypeAMD value" + "text": "infoType must be a valid VkShaderInfoTypeAMD value", + "page": "vkspec" }, { "vuid": "VUID-vkGetShaderInfoAMD-pInfoSize-parameter", - "text": " pInfoSize must be a valid pointer to a size_t value" + "text": "pInfoSize must be a valid pointer to a size_t value", + "page": "vkspec" }, { "vuid": "VUID-vkGetShaderInfoAMD-pInfo-parameter", - "text": " If the value referenced by pInfoSize is not 0, and pInfo is not NULL, pInfo must be a valid pointer to an array of pInfoSize bytes" + "text": "If the value referenced by pInfoSize is not 0, and pInfo is not NULL, pInfo must be a valid pointer to an array of pInfoSize bytes", + "page": "vkspec" }, { "vuid": "VUID-vkGetShaderInfoAMD-pipeline-parent", - "text": " pipeline must have been created, allocated, or retrieved from device" + "text": "pipeline must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -14542,11 +18210,13 @@ "core": [ { "vuid": "VUID-VkPipelineCompilerControlCreateInfoAMD-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD" + "text": "sType must be VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineCompilerControlCreateInfoAMD-compilerControlFlags-zerobitmask", - "text": " compilerControlFlags must be 0" + "text": "compilerControlFlags must be 0", + "page": "vkspec" } ] }, @@ -14554,15 +18224,18 @@ "core": [ { "vuid": "VUID-VkPipelineCreationFeedbackCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineCreationFeedbackCreateInfo-pPipelineCreationFeedback-parameter", - "text": " pPipelineCreationFeedback must be a valid pointer to a VkPipelineCreationFeedback structure" + "text": "pPipelineCreationFeedback must be a valid pointer to a VkPipelineCreationFeedback structure", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineCreationFeedbackCreateInfo-pPipelineStageCreationFeedbacks-parameter", - "text": " If pipelineStageCreationFeedbackCount is not 0, pPipelineStageCreationFeedbacks must be a valid pointer to an array of pipelineStageCreationFeedbackCount VkPipelineCreationFeedback structures" + "text": "If pipelineStageCreationFeedbackCount is not 0, pPipelineStageCreationFeedbacks must be a valid pointer to an array of pipelineStageCreationFeedbackCount VkPipelineCreationFeedback structures", + "page": "vkspec" } ] }, @@ -14570,19 +18243,23 @@ "core": [ { "vuid": "VUID-VkAllocationCallbacks-pfnAllocation-00632", - "text": " pfnAllocation must be a valid pointer to a valid user-defined PFN_vkAllocationFunction" + "text": "pfnAllocation must be a valid pointer to a valid user-defined PFN_vkAllocationFunction", + "page": "vkspec" }, { "vuid": "VUID-VkAllocationCallbacks-pfnReallocation-00633", - "text": " pfnReallocation must be a valid pointer to a valid user-defined PFN_vkReallocationFunction" + "text": "pfnReallocation must be a valid pointer to a valid user-defined PFN_vkReallocationFunction", + "page": "vkspec" }, { "vuid": "VUID-VkAllocationCallbacks-pfnFree-00634", - "text": " pfnFree must be a valid pointer to a valid user-defined PFN_vkFreeFunction" + "text": "pfnFree must be a valid pointer to a valid user-defined PFN_vkFreeFunction", + "page": "vkspec" }, { "vuid": "VUID-VkAllocationCallbacks-pfnInternalAllocation-00635", - "text": " If either of pfnInternalAllocation or pfnInternalFree is not NULL, both must be valid callbacks" + "text": "If either of pfnInternalAllocation or pfnInternalFree is not NULL, both must be valid callbacks", + "page": "vkspec" } ] }, @@ -14590,11 +18267,13 @@ "core": [ { "vuid": "VUID-vkGetPhysicalDeviceMemoryProperties-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": "physicalDevice must be a valid VkPhysicalDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceMemoryProperties-pMemoryProperties-parameter", - "text": " pMemoryProperties must be a valid pointer to a VkPhysicalDeviceMemoryProperties structure" + "text": "pMemoryProperties must be a valid pointer to a VkPhysicalDeviceMemoryProperties structure", + "page": "vkspec" } ] }, @@ -14602,11 +18281,13 @@ "core": [ { "vuid": "VUID-vkGetPhysicalDeviceMemoryProperties2-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": "physicalDevice must be a valid VkPhysicalDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceMemoryProperties2-pMemoryProperties-parameter", - "text": " pMemoryProperties must be a valid pointer to a VkPhysicalDeviceMemoryProperties2 structure" + "text": "pMemoryProperties must be a valid pointer to a VkPhysicalDeviceMemoryProperties2 structure", + "page": "vkspec" } ] }, @@ -14614,15 +18295,18 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceMemoryProperties2-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2", + "page": "vkspec" }, { "vuid": "VUID-VkPhysicalDeviceMemoryProperties2-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkPhysicalDeviceMemoryBudgetPropertiesEXT" + "text": "pNext must be NULL or a pointer to a valid instance of VkPhysicalDeviceMemoryBudgetPropertiesEXT", + "page": "vkspec" }, { "vuid": "VUID-VkPhysicalDeviceMemoryProperties2-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" } ] }, @@ -14630,7 +18314,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceMemoryBudgetPropertiesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT", + "page": "vkspec" } ] }, @@ -14638,259 +18323,322 @@ "core": [ { "vuid": "VUID-vkAllocateMemory-pAllocateInfo-01713", - "text": " pAllocateInfo->allocationSize must be less than or equal to VkPhysicalDeviceMemoryProperties::memoryHeaps[memindex].size where memindex = VkPhysicalDeviceMemoryProperties::memoryTypes[pAllocateInfo->memoryTypeIndex].heapIndex as returned by vkGetPhysicalDeviceMemoryProperties for the VkPhysicalDevice that device was created from" + "text": "pAllocateInfo->allocationSize must be less than or equal to VkPhysicalDeviceMemoryProperties::memoryHeaps[memindex].size where memindex = VkPhysicalDeviceMemoryProperties::memoryTypes[pAllocateInfo->memoryTypeIndex].heapIndex as returned by vkGetPhysicalDeviceMemoryProperties for the VkPhysicalDevice that device was created from", + "page": "vkspec" }, { "vuid": "VUID-vkAllocateMemory-pAllocateInfo-01714", - "text": " pAllocateInfo->memoryTypeIndex must be less than VkPhysicalDeviceMemoryProperties::memoryTypeCount as returned by vkGetPhysicalDeviceMemoryProperties for the VkPhysicalDevice that device was created from" + "text": "pAllocateInfo->memoryTypeIndex must be less than VkPhysicalDeviceMemoryProperties::memoryTypeCount as returned by vkGetPhysicalDeviceMemoryProperties for the VkPhysicalDevice that device was created from", + "page": "vkspec" }, { "vuid": "VUID-vkAllocateMemory-deviceCoherentMemory-02790", - "text": " If the deviceCoherentMemory feature is not enabled, pAllocateInfo->memoryTypeIndex must not identify a memory type supporting VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD" + "text": "If the deviceCoherentMemory feature is not enabled, pAllocateInfo->memoryTypeIndex must not identify a memory type supporting VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD", + "page": "vkspec" }, { "vuid": "VUID-vkAllocateMemory-maxMemoryAllocationCount-04101", - "text": " There must be less than VkPhysicalDeviceLimits::maxMemoryAllocationCount device memory allocations currently allocated on the device" + "text": "There must be less than VkPhysicalDeviceLimits::maxMemoryAllocationCount device memory allocations currently allocated on the device", + "page": "vkspec" }, { "vuid": "VUID-vkAllocateMemory-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkAllocateMemory-pAllocateInfo-parameter", - "text": " pAllocateInfo must be a valid pointer to a valid VkMemoryAllocateInfo structure" + "text": "pAllocateInfo must be a valid pointer to a valid VkMemoryAllocateInfo structure", + "page": "vkspec" }, { "vuid": "VUID-vkAllocateMemory-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkAllocateMemory-pMemory-parameter", - "text": " pMemory must be a valid pointer to a VkDeviceMemory handle" + "text": "pMemory must be a valid pointer to a VkDeviceMemory handle", + "page": "vkspec" } ] }, "VkMemoryAllocateInfo": { "core": [ { - "vuid": "VUID-VkMemoryAllocateInfo-None-06657", - "text": " The parameters must not define more than one import operation" + "vuid": "VUID-VkMemoryAllocateInfo-allocationSize-07897", + "text": "If the parameters do not define an import or export operation, allocationSize must be greater than 0", + "page": "vkspec" }, { - "vuid": "VUID-VkMemoryAllocateInfo-allocationSize-07897", - "text": " If the parameters do not define an import or export operation, allocationSize must be greater than 0" + "vuid": "VUID-VkMemoryAllocateInfo-None-06657", + "text": "The parameters must not define more than one import operation", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryAllocateInfo-allocationSize-07899", - "text": " If the parameters define an export operation and the handle type is not VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID, allocationSize must be greater than 0" + "text": "If the parameters define an export operation and the handle type is not VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID , allocationSize must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryAllocateInfo-buffer-06380", - "text": " If the parameters define an import operation from an VkBufferCollectionFUCHSIA, and VkMemoryDedicatedAllocateInfo::buffer is present and non-NULL, VkImportMemoryBufferCollectionFUCHSIA::collection and VkImportMemoryBufferCollectionFUCHSIA::index must match VkBufferCollectionBufferCreateInfoFUCHSIA::collection and VkBufferCollectionBufferCreateInfoFUCHSIA::index, respectively, of the VkBufferCollectionBufferCreateInfoFUCHSIA structure used to create the VkMemoryDedicatedAllocateInfo::buffer" + "text": "If the parameters define an import operation from an VkBufferCollectionFUCHSIA, and VkMemoryDedicatedAllocateInfo::buffer is present and non-NULL, VkImportMemoryBufferCollectionFUCHSIA::collection and VkImportMemoryBufferCollectionFUCHSIA::index must match VkBufferCollectionBufferCreateInfoFUCHSIA::collection and VkBufferCollectionBufferCreateInfoFUCHSIA::index, respectively, of the VkBufferCollectionBufferCreateInfoFUCHSIA structure used to create the VkMemoryDedicatedAllocateInfo::buffer", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryAllocateInfo-image-06381", - "text": " If the parameters define an import operation from an VkBufferCollectionFUCHSIA, and VkMemoryDedicatedAllocateInfo::image is present and non-NULL, VkImportMemoryBufferCollectionFUCHSIA::collection and VkImportMemoryBufferCollectionFUCHSIA::index must match VkBufferCollectionImageCreateInfoFUCHSIA::collection and VkBufferCollectionImageCreateInfoFUCHSIA::index, respectively, of the VkBufferCollectionImageCreateInfoFUCHSIA structure used to create the VkMemoryDedicatedAllocateInfo::image" + "text": "If the parameters define an import operation from an VkBufferCollectionFUCHSIA, and VkMemoryDedicatedAllocateInfo::image is present and non-NULL, VkImportMemoryBufferCollectionFUCHSIA::collection and VkImportMemoryBufferCollectionFUCHSIA::index must match VkBufferCollectionImageCreateInfoFUCHSIA::collection and VkBufferCollectionImageCreateInfoFUCHSIA::index, respectively, of the VkBufferCollectionImageCreateInfoFUCHSIA structure used to create the VkMemoryDedicatedAllocateInfo::image", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryAllocateInfo-allocationSize-06382", - "text": " If the parameters define an import operation from an VkBufferCollectionFUCHSIA, allocationSize must match VkMemoryRequirements::size value retrieved by vkGetImageMemoryRequirements or vkGetBufferMemoryRequirements for image-based or buffer-based collections respectively" + "text": "If the parameters define an import operation from an VkBufferCollectionFUCHSIA, allocationSize must match VkMemoryRequirements::size value retrieved by vkGetImageMemoryRequirements or vkGetBufferMemoryRequirements for image-based or buffer-based collections respectively", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryAllocateInfo-pNext-06383", - "text": " If the parameters define an import operation from an VkBufferCollectionFUCHSIA, the pNext chain must include a VkMemoryDedicatedAllocateInfo structure with either its image or buffer field set to a value other than VK_NULL_HANDLE" + "text": "If the parameters define an import operation from an VkBufferCollectionFUCHSIA, the pNext chain must include a VkMemoryDedicatedAllocateInfo structure with either its image or buffer field set to a value other than VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryAllocateInfo-image-06384", - "text": " If the parameters define an import operation from an VkBufferCollectionFUCHSIA and VkMemoryDedicatedAllocateInfo::image is not VK_NULL_HANDLE, the image must be created with a VkBufferCollectionImageCreateInfoFUCHSIA structure chained to its VkImageCreateInfo::pNext pointer" + "text": "If the parameters define an import operation from an VkBufferCollectionFUCHSIA and VkMemoryDedicatedAllocateInfo::image is not VK_NULL_HANDLE, the image must be created with a VkBufferCollectionImageCreateInfoFUCHSIA structure chained to its VkImageCreateInfo::pNext pointer", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryAllocateInfo-buffer-06385", - "text": " If the parameters define an import operation from an VkBufferCollectionFUCHSIA and VkMemoryDedicatedAllocateInfo::buffer is not VK_NULL_HANDLE, the buffer must be created with a VkBufferCollectionBufferCreateInfoFUCHSIA structure chained to its VkBufferCreateInfo::pNext pointer" + "text": "If the parameters define an import operation from an VkBufferCollectionFUCHSIA and VkMemoryDedicatedAllocateInfo::buffer is not VK_NULL_HANDLE, the buffer must be created with a VkBufferCollectionBufferCreateInfoFUCHSIA structure chained to its VkBufferCreateInfo::pNext pointer", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryAllocateInfo-memoryTypeIndex-06386", - "text": " If the parameters define an import operation from an VkBufferCollectionFUCHSIA, memoryTypeIndex must be from VkBufferCollectionPropertiesFUCHSIA as retrieved by vkGetBufferCollectionPropertiesFUCHSIA" + "text": "If the parameters define an import operation from an VkBufferCollectionFUCHSIA, memoryTypeIndex must be from VkBufferCollectionPropertiesFUCHSIA as retrieved by vkGetBufferCollectionPropertiesFUCHSIA", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryAllocateInfo-pNext-00639", - "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" + "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": "vkspec" }, { "vuid": "VUID-VkMemoryAllocateInfo-pNext-00640", - "text": " If the pNext chain includes a VkExportMemoryAllocateInfo structure, it must not include a VkExportMemoryAllocateInfoNV or VkExportMemoryWin32HandleInfoNV structure" + "text": "If the pNext chain includes a VkExportMemoryAllocateInfo structure, it must not include a VkExportMemoryAllocateInfoNV or VkExportMemoryWin32HandleInfoNV structure", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryAllocateInfo-pNext-00641", - "text": " If the pNext chain includes a VkImportMemoryWin32HandleInfoKHR structure, it must not include a VkImportMemoryWin32HandleInfoNV structure" + "text": "If the pNext chain includes a VkImportMemoryWin32HandleInfoKHR structure, it must not include a VkImportMemoryWin32HandleInfoNV structure", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryAllocateInfo-allocationSize-01742", - "text": " If the parameters define an import operation, the external handle specified was created by the Vulkan API, and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT, then the values of allocationSize and memoryTypeIndex must match those specified when the payload being imported was created" + "text": "If the parameters define an import operation, the external handle specified was created by the Vulkan API, and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT, then the values of allocationSize and memoryTypeIndex must match those specified when the payload being imported was created", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryAllocateInfo-None-00643", - "text": " If the parameters define an import operation and the external handle specified was created by the Vulkan API, the device mask specified by VkMemoryAllocateFlagsInfo must match the mask specified when the payload being imported was allocated" + "text": "If the parameters define an import operation and the external handle specified was created by the Vulkan API, the device mask specified by VkMemoryAllocateFlagsInfo must match the mask specified when the payload being imported was allocated", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryAllocateInfo-None-00644", - "text": " If the parameters define an import operation and the external handle specified was created by the Vulkan API, the list of physical devices that comprise the logical device passed to vkAllocateMemory must match the list of physical devices that comprise the logical device on which the payload was originally allocated" + "text": "If the parameters define an import operation and the external handle specified was created by the Vulkan API, the list of physical devices that comprise the logical device passed to vkAllocateMemory must match the list of physical devices that comprise the logical device on which the payload was originally allocated", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryAllocateInfo-memoryTypeIndex-00645", - "text": " If the parameters define an import operation and the external handle is an NT handle or a global share handle created outside of the Vulkan API, the value of memoryTypeIndex must be one of those returned by vkGetMemoryWin32HandlePropertiesKHR" + "text": "If the parameters define an import operation and the external handle is an NT handle or a global share handle created outside of the Vulkan API, the value of memoryTypeIndex must be one of those returned by vkGetMemoryWin32HandlePropertiesKHR", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryAllocateInfo-allocationSize-01743", - "text": " If the parameters define an import operation, the external handle was created by the Vulkan API, and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT or VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT, then the values of allocationSize and memoryTypeIndex must match those specified when the payload being imported was created" + "text": "If the parameters define an import operation, the external handle was created by the Vulkan API, and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT or VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT, then the values of allocationSize and memoryTypeIndex must match those specified when the payload being imported was created", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryAllocateInfo-allocationSize-00647", - "text": " If the parameters define an import operation and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT, allocationSize must match the size specified when creating the Direct3D 12 heap from which the payload was extracted" + "text": "If the parameters define an import operation and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT, allocationSize must match the size specified when creating the Direct3D 12 heap from which the payload was extracted", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryAllocateInfo-memoryTypeIndex-00648", - "text": " If the parameters define an import operation and the external handle is a POSIX file descriptor created outside of the Vulkan API, the value of memoryTypeIndex must be one of those returned by vkGetMemoryFdPropertiesKHR" + "text": "If the parameters define an import operation and the external handle is a POSIX file descriptor created outside of the Vulkan API, the value of memoryTypeIndex must be one of those returned by vkGetMemoryFdPropertiesKHR", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryAllocateInfo-memoryTypeIndex-01872", - "text": " If the protectedMemory feature is not enabled, the VkMemoryAllocateInfo::memoryTypeIndex must not indicate a memory type that reports VK_MEMORY_PROPERTY_PROTECTED_BIT" + "text": "If the protectedMemory feature is not enabled, the VkMemoryAllocateInfo::memoryTypeIndex must not indicate a memory type that reports VK_MEMORY_PROPERTY_PROTECTED_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryAllocateInfo-memoryTypeIndex-01744", - "text": " If the parameters define an import operation and the external handle is a host pointer, the value of memoryTypeIndex must be one of those returned by vkGetMemoryHostPointerPropertiesEXT" + "text": "If the parameters define an import operation and the external handle is a host pointer, the value of memoryTypeIndex must be one of those returned by vkGetMemoryHostPointerPropertiesEXT", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryAllocateInfo-allocationSize-01745", - "text": " If the parameters define an import operation and the external handle is a host pointer, allocationSize must be an integer multiple of VkPhysicalDeviceExternalMemoryHostPropertiesEXT::minImportedHostPointerAlignment" + "text": "If the parameters define an import operation and the external handle is a host pointer, allocationSize must be an integer multiple of VkPhysicalDeviceExternalMemoryHostPropertiesEXT::minImportedHostPointerAlignment", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryAllocateInfo-pNext-02805", - "text": " If the parameters define an import operation and the external handle is a host pointer, the pNext chain must not include a VkDedicatedAllocationMemoryAllocateInfoNV structure with either its image or buffer field set to a value other than VK_NULL_HANDLE" + "text": "If the parameters define an import operation and the external handle is a host pointer, the pNext chain must not include a VkDedicatedAllocationMemoryAllocateInfoNV structure with either its image or buffer field set to a value other than VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryAllocateInfo-pNext-02806", - "text": " If the parameters define an import operation and the external handle is a host pointer, the pNext chain must not include a VkMemoryDedicatedAllocateInfo structure with either its image or buffer field set to a value other than VK_NULL_HANDLE" + "text": "If the parameters define an import operation and the external handle is a host pointer, the pNext chain must not include a VkMemoryDedicatedAllocateInfo structure with either its image or buffer field set to a value other than VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryAllocateInfo-allocationSize-02383", - "text": " If the parameters define an import operation and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID, allocationSize must be the size returned by vkGetAndroidHardwareBufferPropertiesANDROID for the Android hardware buffer" + "text": "If the parameters define an import operation and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID, allocationSize must be the size returned by vkGetAndroidHardwareBufferPropertiesANDROID for the Android hardware buffer", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryAllocateInfo-pNext-02384", - "text": " If the parameters define an import operation and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID, and the pNext chain does not include a VkMemoryDedicatedAllocateInfo structure or VkMemoryDedicatedAllocateInfo::image is VK_NULL_HANDLE, the Android hardware buffer must have a AHardwareBuffer_Desc::format of AHARDWAREBUFFER_FORMAT_BLOB and a AHardwareBuffer_Desc::usage that includes AHARDWAREBUFFER_USAGE_GPU_DATA_BUFFER" + "text": "If the parameters define an import operation and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID, and the pNext chain does not include a VkMemoryDedicatedAllocateInfo structure or VkMemoryDedicatedAllocateInfo::image is VK_NULL_HANDLE, the Android hardware buffer must have a AHardwareBuffer_Desc::format of AHARDWAREBUFFER_FORMAT_BLOB and a AHardwareBuffer_Desc::usage that includes AHARDWAREBUFFER_USAGE_GPU_DATA_BUFFER", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryAllocateInfo-memoryTypeIndex-02385", - "text": " If the parameters define an import operation and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID, memoryTypeIndex must be one of those returned by vkGetAndroidHardwareBufferPropertiesANDROID for the Android hardware buffer" + "text": "If the parameters define an import operation and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID, memoryTypeIndex must be one of those returned by vkGetAndroidHardwareBufferPropertiesANDROID for the Android hardware buffer", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryAllocateInfo-pNext-01874", - "text": " If the parameters do not define an import operation, and the pNext chain includes a VkExportMemoryAllocateInfo structure with VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID included in its handleTypes member, and the pNext chain includes a VkMemoryDedicatedAllocateInfo structure with image not equal to VK_NULL_HANDLE, then allocationSize must be 0" + "text": "If the parameters do not define an import operation, and the pNext chain includes a VkExportMemoryAllocateInfo structure with VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID included in its handleTypes member, and the pNext chain includes a VkMemoryDedicatedAllocateInfo structure with image not equal to VK_NULL_HANDLE, then allocationSize must be 0", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryAllocateInfo-pNext-07900", - "text": " If the parameters define an export operation, the handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID, and the pNext does not include a VkMemoryDedicatedAllocateInfo structure, allocationSize must be greater than 0" + "text": "If the parameters define an export operation, the handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID, and the pNext does not include a VkMemoryDedicatedAllocateInfo structure, allocationSize must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryAllocateInfo-pNext-07901", - "text": " If the parameters define an export operation, the handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID, and the pNext chain includes a VkMemoryDedicatedAllocateInfo structure with buffer set to a valid VkBuffer object, allocationSize must be greater than 0" + "text": "If the parameters define an export operation, the handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID, and the pNext chain includes a VkMemoryDedicatedAllocateInfo structure with buffer set to a valid VkBuffer object, allocationSize must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryAllocateInfo-pNext-02386", - "text": " If the parameters define an import operation, the external handle is an Android hardware buffer, and the pNext chain includes a VkMemoryDedicatedAllocateInfo with image that is not VK_NULL_HANDLE, the Android hardware buffer’s AHardwareBuffer::usage must include at least one of AHARDWAREBUFFER_USAGE_GPU_FRAMEBUFFER, AHARDWAREBUFFER_USAGE_GPU_SAMPLED_IMAGE or AHARDWAREBUFFER_USAGE_GPU_DATA_BUFFER" + "text": "If the parameters define an import operation, the external handle is an Android hardware buffer, and the pNext chain includes a VkMemoryDedicatedAllocateInfo with image that is not VK_NULL_HANDLE, the Android hardware buffer’s AHardwareBuffer::usage must include at least one of AHARDWAREBUFFER_USAGE_GPU_FRAMEBUFFER, AHARDWAREBUFFER_USAGE_GPU_SAMPLED_IMAGE or AHARDWAREBUFFER_USAGE_GPU_DATA_BUFFER", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryAllocateInfo-pNext-02387", - "text": " If the parameters define an import operation, the external handle is an Android hardware buffer, and the pNext chain includes a VkMemoryDedicatedAllocateInfo with image that is not VK_NULL_HANDLE, the format of image must be VK_FORMAT_UNDEFINED or the format returned by vkGetAndroidHardwareBufferPropertiesANDROID in VkAndroidHardwareBufferFormatPropertiesANDROID::format for the Android hardware buffer" + "text": "If the parameters define an import operation, the external handle is an Android hardware buffer, and the pNext chain includes a VkMemoryDedicatedAllocateInfo with image that is not VK_NULL_HANDLE, the format of image must be VK_FORMAT_UNDEFINED or the format returned by vkGetAndroidHardwareBufferPropertiesANDROID in VkAndroidHardwareBufferFormatPropertiesANDROID::format for the Android hardware buffer", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryAllocateInfo-pNext-02388", - "text": " If the parameters define an import operation, the external handle is an Android hardware buffer, and the pNext chain includes a VkMemoryDedicatedAllocateInfo structure with image that is not VK_NULL_HANDLE, the width, height, and array layer dimensions of image and the Android hardware buffer’s AHardwareBuffer_Desc must be identical" + "text": "If the parameters define an import operation, the external handle is an Android hardware buffer, and the pNext chain includes a VkMemoryDedicatedAllocateInfo structure with image that is not VK_NULL_HANDLE, the width, height, and array layer dimensions of image and the Android hardware buffer’s AHardwareBuffer_Desc must be identical", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryAllocateInfo-pNext-02389", - "text": " If the parameters define an import operation, the external handle is an Android hardware buffer, and the pNext chain includes a VkMemoryDedicatedAllocateInfo structure with image that is not VK_NULL_HANDLE, and the Android hardware buffer’s AHardwareBuffer::usage includes AHARDWAREBUFFER_USAGE_GPU_MIPMAP_COMPLETE, the image must have a complete mipmap chain" + "text": "If the parameters define an import operation, the external handle is an Android hardware buffer, and the pNext chain includes a VkMemoryDedicatedAllocateInfo structure with image that is not VK_NULL_HANDLE, and the Android hardware buffer’s AHardwareBuffer::usage includes AHARDWAREBUFFER_USAGE_GPU_MIPMAP_COMPLETE, the image must have a complete mipmap chain", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryAllocateInfo-pNext-02586", - "text": " If the parameters define an import operation, the external handle is an Android hardware buffer, and the pNext chain includes a VkMemoryDedicatedAllocateInfo structure with image that is not VK_NULL_HANDLE, and the Android hardware buffer’s AHardwareBuffer::usage does not include AHARDWAREBUFFER_USAGE_GPU_MIPMAP_COMPLETE, the image must have exactly one mipmap level" + "text": "If the parameters define an import operation, the external handle is an Android hardware buffer, and the pNext chain includes a VkMemoryDedicatedAllocateInfo structure with image that is not VK_NULL_HANDLE, and the Android hardware buffer’s AHardwareBuffer::usage does not include AHARDWAREBUFFER_USAGE_GPU_MIPMAP_COMPLETE, the image must have exactly one mipmap level", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryAllocateInfo-pNext-02390", - "text": " If the parameters define an import operation, the external handle is an Android hardware buffer, and the pNext chain includes a VkMemoryDedicatedAllocateInfo structure with image that is not VK_NULL_HANDLE, each bit set in the usage of image must be listed in AHardwareBuffer Usage Equivalence, and if there is a corresponding AHARDWAREBUFFER_USAGE bit listed that bit must be included in the Android hardware buffer’s AHardwareBuffer_Desc::usage" + "text": "If the parameters define an import operation, the external handle is an Android hardware buffer, and the pNext chain includes a VkMemoryDedicatedAllocateInfo structure with image that is not VK_NULL_HANDLE, each bit set in the usage of image must be listed in AHardwareBuffer Usage Equivalence, and if there is a corresponding AHARDWAREBUFFER_USAGE bit listed that bit must be included in the Android hardware buffer’s AHardwareBuffer_Desc::usage", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryAllocateInfo-screenBufferImport-08941", - "text": " If the parameters define an import operation and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX, VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX::screenBufferImport must be enabled" + "text": "If the parameters define an import operation and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX, VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX::screenBufferImport must be enabled", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryAllocateInfo-allocationSize-08942", - "text": " If the parameters define an import operation and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX, allocationSize must be the size returned by vkGetScreenBufferPropertiesQNX for the QNX Screen buffer" + "text": "If the parameters define an import operation and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX, allocationSize must be the size returned by vkGetScreenBufferPropertiesQNX for the QNX Screen buffer", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryAllocateInfo-memoryTypeIndex-08943", - "text": " If the parameters define an import operation and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX, memoryTypeIndex must be one of those returned by vkGetScreenBufferPropertiesQNX for the QNX Screen buffer" + "text": "If the parameters define an import operation and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX, memoryTypeIndex must be one of those returned by vkGetScreenBufferPropertiesQNX for the QNX Screen buffer", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryAllocateInfo-pNext-08944", - "text": " If the parameters define an import operation, the external handle is a QNX Screen buffer, and the pNext chain includes a VkMemoryDedicatedAllocateInfo with image that is not VK_NULL_HANDLE, the QNX Screen’s buffer must be a valid QNX Screen buffer" + "text": "If the parameters define an import operation, the external handle is a QNX Screen buffer, and the pNext chain includes a VkMemoryDedicatedAllocateInfo with image that is not VK_NULL_HANDLE, the QNX Screen’s buffer must be a valid QNX Screen buffer", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryAllocateInfo-pNext-08945", - "text": " If the parameters define an import operation, the external handle is an QNX Screen buffer, and the pNext chain includes a VkMemoryDedicatedAllocateInfo with image that is not VK_NULL_HANDLE, the format of image must be VK_FORMAT_UNDEFINED or the format returned by vkGetScreenBufferPropertiesQNX in VkScreenBufferFormatPropertiesQNX::format for the QNX Screen buffer" + "text": "If the parameters define an import operation, the external handle is an QNX Screen buffer, and the pNext chain includes a VkMemoryDedicatedAllocateInfo with image that is not VK_NULL_HANDLE, the format of image must be VK_FORMAT_UNDEFINED or the format returned by vkGetScreenBufferPropertiesQNX in VkScreenBufferFormatPropertiesQNX::format for the QNX Screen buffer", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryAllocateInfo-pNext-08946", - "text": " If the parameters define an import operation, the external handle is a QNX Screen buffer, and the pNext chain includes a VkMemoryDedicatedAllocateInfo structure with image that is not VK_NULL_HANDLE, the width, height, and array layer dimensions of image and the QNX Screen buffer’s _screen_buffer must be identical" + "text": "If the parameters define an import operation, the external handle is a QNX Screen buffer, and the pNext chain includes a VkMemoryDedicatedAllocateInfo structure with image that is not VK_NULL_HANDLE, the width, height, and array layer dimensions of image and the QNX Screen buffer’s _screen_buffer must be identical", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryAllocateInfo-opaqueCaptureAddress-03329", - "text": " If VkMemoryOpaqueCaptureAddressAllocateInfo::opaqueCaptureAddress is not zero, VkMemoryAllocateFlagsInfo::flags must include VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT" + "text": "If VkMemoryOpaqueCaptureAddressAllocateInfo::opaqueCaptureAddress is not zero, VkMemoryAllocateFlagsInfo::flags must include VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryAllocateInfo-flags-03330", - "text": " If VkMemoryAllocateFlagsInfo::flags includes VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT, the bufferDeviceAddressCaptureReplay feature must be enabled" + "text": "If VkMemoryAllocateFlagsInfo::flags includes VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT, the bufferDeviceAddressCaptureReplay feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryAllocateInfo-flags-03331", - "text": " If VkMemoryAllocateFlagsInfo::flags includes VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT, the bufferDeviceAddress feature must be enabled" + "text": "If VkMemoryAllocateFlagsInfo::flags includes VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT, the bufferDeviceAddress feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryAllocateInfo-pNext-03332", - "text": " If the pNext chain includes a VkImportMemoryHostPointerInfoEXT structure, VkMemoryOpaqueCaptureAddressAllocateInfo::opaqueCaptureAddress must be zero" + "text": "If the pNext chain includes a VkImportMemoryHostPointerInfoEXT structure, VkMemoryOpaqueCaptureAddressAllocateInfo::opaqueCaptureAddress must be zero", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryAllocateInfo-opaqueCaptureAddress-03333", - "text": " If the parameters define an import operation, VkMemoryOpaqueCaptureAddressAllocateInfo::opaqueCaptureAddress must be zero" + "text": "If the parameters define an import operation, VkMemoryOpaqueCaptureAddressAllocateInfo::opaqueCaptureAddress must be zero", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryAllocateInfo-None-04749", - "text": " If the parameters define an import operation and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA, the value of memoryTypeIndex must be an index identifying a memory type from the memoryTypeBits field of the VkMemoryZirconHandlePropertiesFUCHSIA structure populated by a call to vkGetMemoryZirconHandlePropertiesFUCHSIA" + "text": "If the parameters define an import operation and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA, the value of memoryTypeIndex must be an index identifying a memory type from the memoryTypeBits field of the VkMemoryZirconHandlePropertiesFUCHSIA structure populated by a call to vkGetMemoryZirconHandlePropertiesFUCHSIA", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryAllocateInfo-allocationSize-07902", - "text": " If the parameters define an import operation and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA, the value of allocationSize must be greater than 0" + "text": "If the parameters define an import operation and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA, the value of allocationSize must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryAllocateInfo-allocationSize-07903", - "text": " If the parameters define an import operation and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA, the value of allocationSize must be less than or equal to the size of the VMO as determined by zx_vmo_get_size(handle) where handle is the VMO handle to the imported external memory" + "text": "If the parameters define an import operation and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA, the value of allocationSize must be less than or equal to the size of the VMO as determined by zx_vmo_get_size(handle) where handle is the VMO handle to the imported external memory", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryAllocateInfo-pNext-06780", - "text": " If the pNext chain includes a VkExportMetalObjectCreateInfoEXT structure, its exportObjectType member must be VK_EXPORT_METAL_OBJECT_TYPE_METAL_BUFFER_BIT_EXT" + "text": "If the pNext chain includes a VkExportMetalObjectCreateInfoEXT structure, its exportObjectType member must be VK_EXPORT_METAL_OBJECT_TYPE_METAL_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryAllocateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO", + "page": "vkspec" }, { "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, 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, VkImportMemoryWin32HandleInfoKHR, VkImportMemoryWin32HandleInfoNV, VkImportMemoryZirconHandleInfoFUCHSIA, VkImportMetalBufferInfoEXT, VkImportScreenBufferInfoQNX, VkMemoryAllocateFlagsInfo, VkMemoryDedicatedAllocateInfo, VkMemoryOpaqueCaptureAddressAllocateInfo, or VkMemoryPriorityAllocateInfoEXT", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryAllocateInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique, with the exception of structures of type VkExportMetalObjectCreateInfoEXT" + "text": "The sType value of each struct in the pNext chain must be unique, with the exception of structures of type VkExportMetalObjectCreateInfoEXT", + "page": "vkspec" } ] }, @@ -14898,67 +18646,83 @@ "core": [ { "vuid": "VUID-VkMemoryDedicatedAllocateInfo-image-01432", - "text": " At least one of image and buffer must be VK_NULL_HANDLE" + "text": "At least one of image and buffer must be VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryDedicatedAllocateInfo-image-02964", - "text": " If image is not VK_NULL_HANDLE and the memory is not an imported Android Hardware Buffer or an imported QNX Screen buffer, VkMemoryAllocateInfo::allocationSize must equal the VkMemoryRequirements::size of the image" + "text": "If image is not VK_NULL_HANDLE and the memory is not an imported Android Hardware Buffer or an imported QNX Screen buffer , VkMemoryAllocateInfo::allocationSize must equal the VkMemoryRequirements::size of the image", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryDedicatedAllocateInfo-image-01434", - "text": " If image is not VK_NULL_HANDLE, image must have been created without VK_IMAGE_CREATE_SPARSE_BINDING_BIT set in VkImageCreateInfo::flags" + "text": "If image is not VK_NULL_HANDLE, image must have been created without VK_IMAGE_CREATE_SPARSE_BINDING_BIT set in VkImageCreateInfo::flags", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryDedicatedAllocateInfo-buffer-02965", - "text": " If buffer is not VK_NULL_HANDLE and the memory is not an imported Android Hardware Buffer or an imported QNX Screen buffer, VkMemoryAllocateInfo::allocationSize must equal the VkMemoryRequirements::size of the buffer" + "text": "If buffer is not VK_NULL_HANDLE and the memory is not an imported Android Hardware Buffer or an imported QNX Screen buffer , VkMemoryAllocateInfo::allocationSize must equal the VkMemoryRequirements::size of the buffer", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryDedicatedAllocateInfo-buffer-01436", - "text": " If buffer is not VK_NULL_HANDLE, buffer must have been created without VK_BUFFER_CREATE_SPARSE_BINDING_BIT set in VkBufferCreateInfo::flags" + "text": "If buffer is not VK_NULL_HANDLE, buffer must have been created without VK_BUFFER_CREATE_SPARSE_BINDING_BIT set in VkBufferCreateInfo::flags", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryDedicatedAllocateInfo-image-01876", - "text": " If image is not VK_NULL_HANDLE and VkMemoryAllocateInfo defines a memory import operation with handle type VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT, or VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT, and the external handle was created by the Vulkan API, then the memory being imported must also be a dedicated image allocation and image must be identical to the image associated with the imported memory" + "text": "If image is not VK_NULL_HANDLE and VkMemoryAllocateInfo defines a memory import operation with handle type VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT, or VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT, and the external handle was created by the Vulkan API, then the memory being imported must also be a dedicated image allocation and image must be identical to the image associated with the imported memory", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryDedicatedAllocateInfo-buffer-01877", - "text": " If buffer is not VK_NULL_HANDLE and VkMemoryAllocateInfo defines a memory import operation with handle type VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT, or VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT, and the external handle was created by the Vulkan API, then the memory being imported must also be a dedicated buffer allocation and buffer must be identical to the buffer associated with the imported memory" + "text": "If buffer is not VK_NULL_HANDLE and VkMemoryAllocateInfo defines a memory import operation with handle type VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT, or VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT, and the external handle was created by the Vulkan API, then the memory being imported must also be a dedicated buffer allocation and buffer must be identical to the buffer associated with the imported memory", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryDedicatedAllocateInfo-image-01878", - "text": " If image is not VK_NULL_HANDLE and VkMemoryAllocateInfo defines a memory import operation with handle type VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT, the memory being imported must also be a dedicated image allocation and image must be identical to the image associated with the imported memory" + "text": "If image is not VK_NULL_HANDLE and VkMemoryAllocateInfo defines a memory import operation with handle type VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT, the memory being imported must also be a dedicated image allocation and image must be identical to the image associated with the imported memory", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryDedicatedAllocateInfo-buffer-01879", - "text": " If buffer is not VK_NULL_HANDLE and VkMemoryAllocateInfo defines a memory import operation with handle type VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT, the memory being imported must also be a dedicated buffer allocation and buffer must be identical to the buffer associated with the imported memory" + "text": "If buffer is not VK_NULL_HANDLE and VkMemoryAllocateInfo defines a memory import operation with handle type VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT, the memory being imported must also be a dedicated buffer allocation and buffer must be identical to the buffer associated with the imported memory", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryDedicatedAllocateInfo-image-01797", - "text": " If image is not VK_NULL_HANDLE, image must not have been created with VK_IMAGE_CREATE_DISJOINT_BIT set in VkImageCreateInfo::flags" + "text": "If image is not VK_NULL_HANDLE, image must not have been created with VK_IMAGE_CREATE_DISJOINT_BIT set in VkImageCreateInfo::flags", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryDedicatedAllocateInfo-image-04751", - "text": " If image is not VK_NULL_HANDLE and VkMemoryAllocateInfo defines a memory import operation with handle type VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA, the memory being imported must also be a dedicated image allocation and image must be identical to the image associated with the imported memory" + "text": "If image is not VK_NULL_HANDLE and VkMemoryAllocateInfo defines a memory import operation with handle type VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA, the memory being imported must also be a dedicated image allocation and image must be identical to the image associated with the imported memory", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryDedicatedAllocateInfo-buffer-04752", - "text": " If buffer is not VK_NULL_HANDLE and VkMemoryAllocateInfo defines a memory import operation with handle type VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA, the memory being imported must also be a dedicated buffer allocation and buffer must be identical to the buffer associated with the imported memory" + "text": "If buffer is not VK_NULL_HANDLE and VkMemoryAllocateInfo defines a memory import operation with handle type VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA, the memory being imported must also be a dedicated buffer allocation and buffer must be identical to the buffer associated with the imported memory", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryDedicatedAllocateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryDedicatedAllocateInfo-image-parameter", - "text": " If image is not VK_NULL_HANDLE, image must be a valid VkImage handle" + "text": "If image is not VK_NULL_HANDLE, image must be a valid VkImage handle", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryDedicatedAllocateInfo-buffer-parameter", - "text": " If buffer is not VK_NULL_HANDLE, buffer must be a valid VkBuffer handle" + "text": "If buffer is not VK_NULL_HANDLE, buffer must be a valid VkBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryDedicatedAllocateInfo-commonparent", - "text": " Both of buffer, and image that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of buffer, and image that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -14966,47 +18730,58 @@ "core": [ { "vuid": "VUID-VkDedicatedAllocationMemoryAllocateInfoNV-image-00649", - "text": " At least one of image and buffer must be VK_NULL_HANDLE" + "text": "At least one of image and buffer must be VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-VkDedicatedAllocationMemoryAllocateInfoNV-image-00650", - "text": " If image is not VK_NULL_HANDLE, the image must have been created with VkDedicatedAllocationImageCreateInfoNV::dedicatedAllocation equal to VK_TRUE" + "text": "If image is not VK_NULL_HANDLE, the image must have been created with VkDedicatedAllocationImageCreateInfoNV::dedicatedAllocation equal to VK_TRUE", + "page": "vkspec" }, { "vuid": "VUID-VkDedicatedAllocationMemoryAllocateInfoNV-buffer-00651", - "text": " If buffer is not VK_NULL_HANDLE, the buffer must have been created with VkDedicatedAllocationBufferCreateInfoNV::dedicatedAllocation equal to VK_TRUE" + "text": "If buffer is not VK_NULL_HANDLE, the buffer must have been created with VkDedicatedAllocationBufferCreateInfoNV::dedicatedAllocation equal to VK_TRUE", + "page": "vkspec" }, { "vuid": "VUID-VkDedicatedAllocationMemoryAllocateInfoNV-image-00652", - "text": " If image is not VK_NULL_HANDLE, VkMemoryAllocateInfo::allocationSize must equal the VkMemoryRequirements::size of the image" + "text": "If image is not VK_NULL_HANDLE, VkMemoryAllocateInfo::allocationSize must equal the VkMemoryRequirements::size of the image", + "page": "vkspec" }, { "vuid": "VUID-VkDedicatedAllocationMemoryAllocateInfoNV-buffer-00653", - "text": " If buffer is not VK_NULL_HANDLE, VkMemoryAllocateInfo::allocationSize must equal the VkMemoryRequirements::size of the buffer" + "text": "If buffer is not VK_NULL_HANDLE, VkMemoryAllocateInfo::allocationSize must equal the VkMemoryRequirements::size of the buffer", + "page": "vkspec" }, { "vuid": "VUID-VkDedicatedAllocationMemoryAllocateInfoNV-image-00654", - "text": " If image is not VK_NULL_HANDLE and VkMemoryAllocateInfo defines a memory import operation, the memory being imported must also be a dedicated image allocation and image must be identical to the image associated with the imported memory" + "text": "If image is not VK_NULL_HANDLE and VkMemoryAllocateInfo defines a memory import operation, the memory being imported must also be a dedicated image allocation and image must be identical to the image associated with the imported memory", + "page": "vkspec" }, { "vuid": "VUID-VkDedicatedAllocationMemoryAllocateInfoNV-buffer-00655", - "text": " If buffer is not VK_NULL_HANDLE and VkMemoryAllocateInfo defines a memory import operation, the memory being imported must also be a dedicated buffer allocation and buffer must be identical to the buffer associated with the imported memory" + "text": "If buffer is not VK_NULL_HANDLE and VkMemoryAllocateInfo defines a memory import operation, the memory being imported must also be a dedicated buffer allocation and buffer must be identical to the buffer associated with the imported memory", + "page": "vkspec" }, { "vuid": "VUID-VkDedicatedAllocationMemoryAllocateInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV" + "text": "sType must be VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV", + "page": "vkspec" }, { "vuid": "VUID-VkDedicatedAllocationMemoryAllocateInfoNV-image-parameter", - "text": " If image is not VK_NULL_HANDLE, image must be a valid VkImage handle" + "text": "If image is not VK_NULL_HANDLE, image must be a valid VkImage handle", + "page": "vkspec" }, { "vuid": "VUID-VkDedicatedAllocationMemoryAllocateInfoNV-buffer-parameter", - "text": " If buffer is not VK_NULL_HANDLE, buffer must be a valid VkBuffer handle" + "text": "If buffer is not VK_NULL_HANDLE, buffer must be a valid VkBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-VkDedicatedAllocationMemoryAllocateInfoNV-commonparent", - "text": " Both of buffer, and image that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of buffer, and image that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -15014,11 +18789,13 @@ "core": [ { "vuid": "VUID-VkMemoryPriorityAllocateInfoEXT-priority-02602", - "text": " priority must be between 0 and 1, inclusive" + "text": "priority must be between 0 and 1, inclusive", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryPriorityAllocateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT", + "page": "vkspec" } ] }, @@ -15026,19 +18803,23 @@ "core": [ { "vuid": "VUID-vkSetDeviceMemoryPriorityEXT-priority-06258", - "text": " priority must be between 0 and 1, inclusive" + "text": "priority must be between 0 and 1, inclusive", + "page": "vkspec" }, { "vuid": "VUID-vkSetDeviceMemoryPriorityEXT-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkSetDeviceMemoryPriorityEXT-memory-parameter", - "text": " memory must be a valid VkDeviceMemory handle" + "text": "memory must be a valid VkDeviceMemory handle", + "page": "vkspec" }, { "vuid": "VUID-vkSetDeviceMemoryPriorityEXT-memory-parent", - "text": " memory must have been created, allocated, or retrieved from device" + "text": "memory must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -15046,15 +18827,18 @@ "core": [ { "vuid": "VUID-VkExportMemoryAllocateInfo-handleTypes-00656", - "text": " The bits in handleTypes must be supported and compatible, as reported by VkExternalImageFormatProperties or VkExternalBufferProperties" + "text": "The bits in handleTypes must be supported and compatible, as reported by VkExternalImageFormatProperties or VkExternalBufferProperties", + "page": "vkspec" }, { "vuid": "VUID-VkExportMemoryAllocateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkExportMemoryAllocateInfo-handleTypes-parameter", - "text": " handleTypes must be a valid combination of VkExternalMemoryHandleTypeFlagBits values" + "text": "handleTypes must be a valid combination of VkExternalMemoryHandleTypeFlagBits values", + "page": "vkspec" } ] }, @@ -15062,11 +18846,13 @@ "core": [ { "vuid": "VUID-VkExportMemoryAllocateInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV" + "text": "sType must be VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV", + "page": "vkspec" }, { "vuid": "VUID-VkExportMemoryAllocateInfoNV-handleTypes-parameter", - "text": " handleTypes must be a valid combination of VkExternalMemoryHandleTypeFlagBitsNV values" + "text": "handleTypes must be a valid combination of VkExternalMemoryHandleTypeFlagBitsNV values", + "page": "vkspec" } ] }, @@ -15074,15 +18860,18 @@ "core": [ { "vuid": "VUID-VkExportMemoryWin32HandleInfoKHR-handleTypes-00657", - "text": " If VkExportMemoryAllocateInfo::handleTypes does not include VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT, a VkExportMemoryWin32HandleInfoKHR structure must not be included in the pNext chain of VkMemoryAllocateInfo" + "text": "If VkExportMemoryAllocateInfo::handleTypes does not include VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT, a VkExportMemoryWin32HandleInfoKHR structure must not be included in the pNext chain of VkMemoryAllocateInfo", + "page": "vkspec" }, { "vuid": "VUID-VkExportMemoryWin32HandleInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkExportMemoryWin32HandleInfoKHR-pAttributes-parameter", - "text": " If pAttributes is not NULL, pAttributes must be a valid pointer to a valid SECURITY_ATTRIBUTES value" + "text": "If pAttributes is not NULL, pAttributes must be a valid pointer to a valid SECURITY_ATTRIBUTES value", + "page": "vkspec" } ] }, @@ -15090,47 +18879,58 @@ "core": [ { "vuid": "VUID-VkImportMemoryWin32HandleInfoKHR-handleType-00658", - "text": " If handleType is not 0, it must be supported for import, as reported by VkExternalImageFormatProperties or VkExternalBufferProperties" + "text": "If handleType is not 0, it must be supported for import, as reported by VkExternalImageFormatProperties or VkExternalBufferProperties", + "page": "vkspec" }, { "vuid": "VUID-VkImportMemoryWin32HandleInfoKHR-handle-00659", - "text": " The memory from which handle was exported, or the memory named by name must have been created on the same underlying physical device as device" + "text": "The memory from which handle was exported, or the memory named by name must have been created on the same underlying physical device as device", + "page": "vkspec" }, { "vuid": "VUID-VkImportMemoryWin32HandleInfoKHR-handleType-00660", - "text": " If handleType is not 0, it must be defined as an NT handle or a global share handle" + "text": "If handleType is not 0, it must be defined as an NT handle or a global share handle", + "page": "vkspec" }, { "vuid": "VUID-VkImportMemoryWin32HandleInfoKHR-handleType-01439", - "text": " If handleType is not VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT, or VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT, name must be NULL" + "text": "If handleType is not VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT, or VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT, name must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkImportMemoryWin32HandleInfoKHR-handleType-01440", - "text": " If handleType is not 0 and handle is NULL, name must name a valid memory resource of the type specified by handleType" + "text": "If handleType is not 0 and handle is NULL, name must name a valid memory resource of the type specified by handleType", + "page": "vkspec" }, { "vuid": "VUID-VkImportMemoryWin32HandleInfoKHR-handleType-00661", - "text": " If handleType is not 0 and name is NULL, handle must be a valid handle of the type specified by handleType" + "text": "If handleType is not 0 and name is NULL, handle must be a valid handle of the type specified by handleType", + "page": "vkspec" }, { "vuid": "VUID-VkImportMemoryWin32HandleInfoKHR-handle-01441", - "text": " If handle is not NULL, name must be NULL" + "text": "If handle is not NULL, name must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkImportMemoryWin32HandleInfoKHR-handle-01518", - "text": " If handle is not NULL, it must obey any requirements listed for handleType in external memory handle types compatibility" + "text": "If handle is not NULL, it must obey any requirements listed for handleType in external memory handle types compatibility", + "page": "vkspec" }, { "vuid": "VUID-VkImportMemoryWin32HandleInfoKHR-name-01519", - "text": " If name is not NULL, it must obey any requirements listed for handleType in external memory handle types compatibility" + "text": "If name is not NULL, it must obey any requirements listed for handleType in external memory handle types compatibility", + "page": "vkspec" }, { "vuid": "VUID-VkImportMemoryWin32HandleInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkImportMemoryWin32HandleInfoKHR-handleType-parameter", - "text": " If handleType is not 0, handleType must be a valid VkExternalMemoryHandleTypeFlagBits value" + "text": "If handleType is not 0, handleType must be a valid VkExternalMemoryHandleTypeFlagBits value", + "page": "vkspec" } ] }, @@ -15138,15 +18938,18 @@ "core": [ { "vuid": "VUID-vkGetMemoryWin32HandleKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetMemoryWin32HandleKHR-pGetWin32HandleInfo-parameter", - "text": " pGetWin32HandleInfo must be a valid pointer to a valid VkMemoryGetWin32HandleInfoKHR structure" + "text": "pGetWin32HandleInfo must be a valid pointer to a valid VkMemoryGetWin32HandleInfoKHR structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetMemoryWin32HandleKHR-pHandle-parameter", - "text": " pHandle must be a valid pointer to a HANDLE value" + "text": "pHandle must be a valid pointer to a HANDLE value", + "page": "vkspec" } ] }, @@ -15154,31 +18957,38 @@ "core": [ { "vuid": "VUID-VkMemoryGetWin32HandleInfoKHR-handleType-00662", - "text": " handleType must have been included in VkExportMemoryAllocateInfo::handleTypes when memory was created" + "text": "handleType must have been included in VkExportMemoryAllocateInfo::handleTypes when memory was created", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryGetWin32HandleInfoKHR-handleType-00663", - "text": " If handleType is defined as an NT handle, vkGetMemoryWin32HandleKHR must be called no more than once for each valid unique combination of memory and handleType" + "text": "If handleType is defined as an NT handle, vkGetMemoryWin32HandleKHR must be called no more than once for each valid unique combination of memory and handleType", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryGetWin32HandleInfoKHR-handleType-00664", - "text": " handleType must be defined as an NT handle or a global share handle" + "text": "handleType must be defined as an NT handle or a global share handle", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryGetWin32HandleInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryGetWin32HandleInfoKHR-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryGetWin32HandleInfoKHR-memory-parameter", - "text": " memory must be a valid VkDeviceMemory handle" + "text": "memory must be a valid VkDeviceMemory handle", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryGetWin32HandleInfoKHR-handleType-parameter", - "text": " handleType must be a valid VkExternalMemoryHandleTypeFlagBits value" + "text": "handleType must be a valid VkExternalMemoryHandleTypeFlagBits value", + "page": "vkspec" } ] }, @@ -15186,23 +18996,28 @@ "core": [ { "vuid": "VUID-vkGetMemoryWin32HandlePropertiesKHR-handle-00665", - "text": " handle must point to a valid Windows memory handle" + "text": "handle must point to a valid Windows memory handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetMemoryWin32HandlePropertiesKHR-handleType-00666", - "text": " handleType must not be one of the handle types defined as opaque" + "text": "handleType must not be one of the handle types defined as opaque", + "page": "vkspec" }, { "vuid": "VUID-vkGetMemoryWin32HandlePropertiesKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetMemoryWin32HandlePropertiesKHR-handleType-parameter", - "text": " handleType must be a valid VkExternalMemoryHandleTypeFlagBits value" + "text": "handleType must be a valid VkExternalMemoryHandleTypeFlagBits value", + "page": "vkspec" }, { "vuid": "VUID-vkGetMemoryWin32HandlePropertiesKHR-pMemoryWin32HandleProperties-parameter", - "text": " pMemoryWin32HandleProperties must be a valid pointer to a VkMemoryWin32HandlePropertiesKHR structure" + "text": "pMemoryWin32HandleProperties must be a valid pointer to a VkMemoryWin32HandlePropertiesKHR structure", + "page": "vkspec" } ] }, @@ -15210,11 +19025,13 @@ "core": [ { "vuid": "VUID-VkMemoryWin32HandlePropertiesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryWin32HandlePropertiesKHR-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" } ] }, @@ -15222,11 +19039,13 @@ "core": [ { "vuid": "VUID-VkExportMemoryWin32HandleInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV" + "text": "sType must be VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV", + "page": "vkspec" }, { "vuid": "VUID-VkExportMemoryWin32HandleInfoNV-pAttributes-parameter", - "text": " If pAttributes is not NULL, pAttributes must be a valid pointer to a valid SECURITY_ATTRIBUTES value" + "text": "If pAttributes is not NULL, pAttributes must be a valid pointer to a valid SECURITY_ATTRIBUTES value", + "page": "vkspec" } ] }, @@ -15234,19 +19053,23 @@ "core": [ { "vuid": "VUID-VkImportMemoryWin32HandleInfoNV-handleType-01327", - "text": " handleType must not have more than one bit set" + "text": "handleType must not have more than one bit set", + "page": "vkspec" }, { "vuid": "VUID-VkImportMemoryWin32HandleInfoNV-handle-01328", - "text": " handle must be a valid handle to memory, obtained as specified by handleType" + "text": "handle must be a valid handle to memory, obtained as specified by handleType", + "page": "vkspec" }, { "vuid": "VUID-VkImportMemoryWin32HandleInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV" + "text": "sType must be VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV", + "page": "vkspec" }, { "vuid": "VUID-VkImportMemoryWin32HandleInfoNV-handleType-parameter", - "text": " handleType must be a valid combination of VkExternalMemoryHandleTypeFlagBitsNV values" + "text": "handleType must be a valid combination of VkExternalMemoryHandleTypeFlagBitsNV values", + "page": "vkspec" } ] }, @@ -15254,31 +19077,38 @@ "core": [ { "vuid": "VUID-vkGetMemoryWin32HandleNV-handleType-01326", - "text": " handleType must be a flag specified in VkExportMemoryAllocateInfoNV::handleTypes when allocating memory" + "text": "handleType must be a flag specified in VkExportMemoryAllocateInfoNV::handleTypes when allocating memory", + "page": "vkspec" }, { "vuid": "VUID-vkGetMemoryWin32HandleNV-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetMemoryWin32HandleNV-memory-parameter", - "text": " memory must be a valid VkDeviceMemory handle" + "text": "memory must be a valid VkDeviceMemory handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetMemoryWin32HandleNV-handleType-parameter", - "text": " handleType must be a valid combination of VkExternalMemoryHandleTypeFlagBitsNV values" + "text": "handleType must be a valid combination of VkExternalMemoryHandleTypeFlagBitsNV values", + "page": "vkspec" }, { "vuid": "VUID-vkGetMemoryWin32HandleNV-handleType-requiredbitmask", - "text": " handleType must not be 0" + "text": "handleType must not be 0", + "page": "vkspec" }, { "vuid": "VUID-vkGetMemoryWin32HandleNV-pHandle-parameter", - "text": " pHandle must be a valid pointer to a HANDLE value" + "text": "pHandle must be a valid pointer to a HANDLE value", + "page": "vkspec" }, { "vuid": "VUID-vkGetMemoryWin32HandleNV-memory-parent", - "text": " memory must have been created, allocated, or retrieved from device" + "text": "memory must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -15286,35 +19116,43 @@ "core": [ { "vuid": "VUID-VkImportMemoryFdInfoKHR-handleType-00667", - "text": " If handleType is not 0, it must be supported for import, as reported by VkExternalImageFormatProperties or VkExternalBufferProperties" + "text": "If handleType is not 0, it must be supported for import, as reported by VkExternalImageFormatProperties or VkExternalBufferProperties", + "page": "vkspec" }, { "vuid": "VUID-VkImportMemoryFdInfoKHR-fd-00668", - "text": " The memory from which fd was exported must have been created on the same underlying physical device as device" + "text": "The memory from which fd was exported must have been created on the same underlying physical device as device", + "page": "vkspec" }, { "vuid": "VUID-VkImportMemoryFdInfoKHR-handleType-00669", - "text": " If handleType is not 0, it must be VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT or VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT" + "text": "If handleType is not 0, it must be VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT or VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkImportMemoryFdInfoKHR-handleType-00670", - "text": " If handleType is not 0, fd must be a valid handle of the type specified by handleType" + "text": "If handleType is not 0, fd must be a valid handle of the type specified by handleType", + "page": "vkspec" }, { "vuid": "VUID-VkImportMemoryFdInfoKHR-fd-01746", - "text": " The memory represented by fd must have been created from a physical device and driver that is compatible with device and handleType, as described in External memory handle types compatibility" + "text": "The memory represented by fd must have been created from a physical device and driver that is compatible with device and handleType, as described in External memory handle types compatibility", + "page": "vkspec" }, { "vuid": "VUID-VkImportMemoryFdInfoKHR-fd-01520", - "text": " fd must obey any requirements listed for handleType in external memory handle types compatibility" + "text": "fd must obey any requirements listed for handleType in external memory handle types compatibility", + "page": "vkspec" }, { "vuid": "VUID-VkImportMemoryFdInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkImportMemoryFdInfoKHR-handleType-parameter", - "text": " If handleType is not 0, handleType must be a valid VkExternalMemoryHandleTypeFlagBits value" + "text": "If handleType is not 0, handleType must be a valid VkExternalMemoryHandleTypeFlagBits value", + "page": "vkspec" } ] }, @@ -15322,15 +19160,18 @@ "core": [ { "vuid": "VUID-vkGetMemoryFdKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetMemoryFdKHR-pGetFdInfo-parameter", - "text": " pGetFdInfo must be a valid pointer to a valid VkMemoryGetFdInfoKHR structure" + "text": "pGetFdInfo must be a valid pointer to a valid VkMemoryGetFdInfoKHR structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetMemoryFdKHR-pFd-parameter", - "text": " pFd must be a valid pointer to an int value" + "text": "pFd must be a valid pointer to an int value", + "page": "vkspec" } ] }, @@ -15338,27 +19179,33 @@ "core": [ { "vuid": "VUID-VkMemoryGetFdInfoKHR-handleType-00671", - "text": " handleType must have been included in VkExportMemoryAllocateInfo::handleTypes when memory was created" + "text": "handleType must have been included in VkExportMemoryAllocateInfo::handleTypes when memory was created", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryGetFdInfoKHR-handleType-00672", - "text": " handleType must be VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT or VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT" + "text": "handleType must be VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT or VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryGetFdInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryGetFdInfoKHR-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryGetFdInfoKHR-memory-parameter", - "text": " memory must be a valid VkDeviceMemory handle" + "text": "memory must be a valid VkDeviceMemory handle", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryGetFdInfoKHR-handleType-parameter", - "text": " handleType must be a valid VkExternalMemoryHandleTypeFlagBits value" + "text": "handleType must be a valid VkExternalMemoryHandleTypeFlagBits value", + "page": "vkspec" } ] }, @@ -15366,23 +19213,28 @@ "core": [ { "vuid": "VUID-vkGetMemoryFdPropertiesKHR-fd-00673", - "text": " fd must point to a valid POSIX file descriptor memory handle" + "text": "fd must point to a valid POSIX file descriptor memory handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetMemoryFdPropertiesKHR-handleType-00674", - "text": " handleType must not be VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT" + "text": "handleType must not be VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkGetMemoryFdPropertiesKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetMemoryFdPropertiesKHR-handleType-parameter", - "text": " handleType must be a valid VkExternalMemoryHandleTypeFlagBits value" + "text": "handleType must be a valid VkExternalMemoryHandleTypeFlagBits value", + "page": "vkspec" }, { "vuid": "VUID-vkGetMemoryFdPropertiesKHR-pMemoryFdProperties-parameter", - "text": " pMemoryFdProperties must be a valid pointer to a VkMemoryFdPropertiesKHR structure" + "text": "pMemoryFdProperties must be a valid pointer to a VkMemoryFdPropertiesKHR structure", + "page": "vkspec" } ] }, @@ -15390,11 +19242,13 @@ "core": [ { "vuid": "VUID-VkMemoryFdPropertiesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryFdPropertiesKHR-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" } ] }, @@ -15402,35 +19256,43 @@ "core": [ { "vuid": "VUID-VkImportMemoryHostPointerInfoEXT-handleType-01747", - "text": " If handleType is not 0, it must be supported for import, as reported in VkExternalMemoryProperties" + "text": "If handleType is not 0, it must be supported for import, as reported in VkExternalMemoryProperties", + "page": "vkspec" }, { "vuid": "VUID-VkImportMemoryHostPointerInfoEXT-handleType-01748", - "text": " If handleType is not 0, it must be VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT or VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT" + "text": "If handleType is not 0, it must be VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT or VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkImportMemoryHostPointerInfoEXT-pHostPointer-01749", - "text": " pHostPointer must be a pointer aligned to an integer multiple of VkPhysicalDeviceExternalMemoryHostPropertiesEXT::minImportedHostPointerAlignment" + "text": "pHostPointer must be a pointer aligned to an integer multiple of VkPhysicalDeviceExternalMemoryHostPropertiesEXT::minImportedHostPointerAlignment", + "page": "vkspec" }, { "vuid": "VUID-VkImportMemoryHostPointerInfoEXT-handleType-01750", - "text": " If handleType is VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT, pHostPointer must be a pointer to allocationSize number of bytes of host memory, where allocationSize is the member of the VkMemoryAllocateInfo structure this structure is chained to" + "text": "If handleType is VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT, pHostPointer must be a pointer to allocationSize number of bytes of host memory, where allocationSize is the member of the VkMemoryAllocateInfo structure this structure is chained to", + "page": "vkspec" }, { "vuid": "VUID-VkImportMemoryHostPointerInfoEXT-handleType-01751", - "text": " If handleType is VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT, pHostPointer must be a pointer to allocationSize number of bytes of host mapped foreign memory, where allocationSize is the member of the VkMemoryAllocateInfo structure this structure is chained to" + "text": "If handleType is VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT, pHostPointer must be a pointer to allocationSize number of bytes of host mapped foreign memory, where allocationSize is the member of the VkMemoryAllocateInfo structure this structure is chained to", + "page": "vkspec" }, { "vuid": "VUID-VkImportMemoryHostPointerInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkImportMemoryHostPointerInfoEXT-handleType-parameter", - "text": " handleType must be a valid VkExternalMemoryHandleTypeFlagBits value" + "text": "handleType must be a valid VkExternalMemoryHandleTypeFlagBits value", + "page": "vkspec" }, { "vuid": "VUID-VkImportMemoryHostPointerInfoEXT-pHostPointer-parameter", - "text": " pHostPointer must be a pointer value" + "text": "pHostPointer must be a pointer value", + "page": "vkspec" } ] }, @@ -15438,35 +19300,43 @@ "core": [ { "vuid": "VUID-vkGetMemoryHostPointerPropertiesEXT-handleType-01752", - "text": " handleType must be VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT or VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT" + "text": "handleType must be VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT or VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkGetMemoryHostPointerPropertiesEXT-pHostPointer-01753", - "text": " pHostPointer must be a pointer aligned to an integer multiple of VkPhysicalDeviceExternalMemoryHostPropertiesEXT::minImportedHostPointerAlignment" + "text": "pHostPointer must be a pointer aligned to an integer multiple of VkPhysicalDeviceExternalMemoryHostPropertiesEXT::minImportedHostPointerAlignment", + "page": "vkspec" }, { "vuid": "VUID-vkGetMemoryHostPointerPropertiesEXT-handleType-01754", - "text": " If handleType is VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT, pHostPointer must be a pointer to host memory" + "text": "If handleType is VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT, pHostPointer must be a pointer to host memory", + "page": "vkspec" }, { "vuid": "VUID-vkGetMemoryHostPointerPropertiesEXT-handleType-01755", - "text": " If handleType is VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT, pHostPointer must be a pointer to host mapped foreign memory" + "text": "If handleType is VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT, pHostPointer must be a pointer to host mapped foreign memory", + "page": "vkspec" }, { "vuid": "VUID-vkGetMemoryHostPointerPropertiesEXT-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetMemoryHostPointerPropertiesEXT-handleType-parameter", - "text": " handleType must be a valid VkExternalMemoryHandleTypeFlagBits value" + "text": "handleType must be a valid VkExternalMemoryHandleTypeFlagBits value", + "page": "vkspec" }, { "vuid": "VUID-vkGetMemoryHostPointerPropertiesEXT-pHostPointer-parameter", - "text": " pHostPointer must be a pointer value" + "text": "pHostPointer must be a pointer value", + "page": "vkspec" }, { "vuid": "VUID-vkGetMemoryHostPointerPropertiesEXT-pMemoryHostPointerProperties-parameter", - "text": " pMemoryHostPointerProperties must be a valid pointer to a VkMemoryHostPointerPropertiesEXT structure" + "text": "pMemoryHostPointerProperties must be a valid pointer to a VkMemoryHostPointerPropertiesEXT structure", + "page": "vkspec" } ] }, @@ -15474,11 +19344,13 @@ "core": [ { "vuid": "VUID-VkMemoryHostPointerPropertiesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryHostPointerPropertiesEXT-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" } ] }, @@ -15486,19 +19358,23 @@ "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" + "text": "If buffer is not NULL, Android hardware buffers must be supported for import, as reported by VkExternalImageFormatProperties or VkExternalBufferProperties", + "page": "vkspec" }, { "vuid": "VUID-VkImportAndroidHardwareBufferInfoANDROID-buffer-01881", - "text": " If buffer is not NULL, it must be a valid Android hardware buffer object with AHardwareBuffer_Desc::usage compatible with Vulkan as described in Android Hardware Buffers" + "text": "If buffer is not NULL, it must be a valid Android hardware buffer object with AHardwareBuffer_Desc::usage compatible with Vulkan as described in Android Hardware Buffers", + "page": "vkspec" }, { "vuid": "VUID-VkImportAndroidHardwareBufferInfoANDROID-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID" + "text": "sType must be VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID", + "page": "vkspec" }, { "vuid": "VUID-VkImportAndroidHardwareBufferInfoANDROID-buffer-parameter", - "text": " buffer must be a valid pointer to an AHardwareBuffer value" + "text": "buffer must be a valid pointer to an AHardwareBuffer value", + "page": "vkspec" } ] }, @@ -15506,15 +19382,18 @@ "core": [ { "vuid": "VUID-vkGetMemoryAndroidHardwareBufferANDROID-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetMemoryAndroidHardwareBufferANDROID-pInfo-parameter", - "text": " pInfo must be a valid pointer to a valid VkMemoryGetAndroidHardwareBufferInfoANDROID structure" + "text": "pInfo must be a valid pointer to a valid VkMemoryGetAndroidHardwareBufferInfoANDROID structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetMemoryAndroidHardwareBufferANDROID-pBuffer-parameter", - "text": " pBuffer must be a valid pointer to a valid pointer to an AHardwareBuffer value" + "text": "pBuffer must be a valid pointer to a valid pointer to an AHardwareBuffer value", + "page": "vkspec" } ] }, @@ -15522,23 +19401,28 @@ "core": [ { "vuid": "VUID-VkMemoryGetAndroidHardwareBufferInfoANDROID-handleTypes-01882", - "text": " VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID must have been included in VkExportMemoryAllocateInfo::handleTypes when memory was created" + "text": "VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID must have been included in VkExportMemoryAllocateInfo::handleTypes when memory was created", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryGetAndroidHardwareBufferInfoANDROID-pNext-01883", - "text": " If the pNext chain of the VkMemoryAllocateInfo used to allocate memory included a VkMemoryDedicatedAllocateInfo with non-NULL image member, then that image must already be bound to memory" + "text": "If the pNext chain of the VkMemoryAllocateInfo used to allocate memory included a VkMemoryDedicatedAllocateInfo with non-NULL image member, then that image must already be bound to memory", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryGetAndroidHardwareBufferInfoANDROID-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID" + "text": "sType must be VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryGetAndroidHardwareBufferInfoANDROID-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryGetAndroidHardwareBufferInfoANDROID-memory-parameter", - "text": " memory must be a valid VkDeviceMemory handle" + "text": "memory must be a valid VkDeviceMemory handle", + "page": "vkspec" } ] }, @@ -15546,19 +19430,23 @@ "core": [ { "vuid": "VUID-vkGetAndroidHardwareBufferPropertiesANDROID-buffer-01884", - "text": " buffer must be a valid Android hardware buffer object with at least one of the AHARDWAREBUFFER_USAGE_GPU_* flags in its AHardwareBuffer_Desc::usage" + "text": "buffer must be a valid Android hardware buffer object with at least one of the AHARDWAREBUFFER_USAGE_GPU_* flags in its AHardwareBuffer_Desc::usage", + "page": "vkspec" }, { "vuid": "VUID-vkGetAndroidHardwareBufferPropertiesANDROID-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetAndroidHardwareBufferPropertiesANDROID-buffer-parameter", - "text": " buffer must be a valid pointer to a valid AHardwareBuffer value" + "text": "buffer must be a valid pointer to a valid AHardwareBuffer value", + "page": "vkspec" }, { "vuid": "VUID-vkGetAndroidHardwareBufferPropertiesANDROID-pProperties-parameter", - "text": " pProperties must be a valid pointer to a VkAndroidHardwareBufferPropertiesANDROID structure" + "text": "pProperties must be a valid pointer to a VkAndroidHardwareBufferPropertiesANDROID structure", + "page": "vkspec" } ] }, @@ -15566,15 +19454,18 @@ "core": [ { "vuid": "VUID-VkAndroidHardwareBufferPropertiesANDROID-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID" + "text": "sType must be VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID", + "page": "vkspec" }, { "vuid": "VUID-VkAndroidHardwareBufferPropertiesANDROID-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 VkAndroidHardwareBufferFormatProperties2ANDROID or VkAndroidHardwareBufferFormatPropertiesANDROID" + "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 VkAndroidHardwareBufferFormatProperties2ANDROID, VkAndroidHardwareBufferFormatPropertiesANDROID, or VkAndroidHardwareBufferFormatResolvePropertiesANDROID", + "page": "vkspec" }, { "vuid": "VUID-VkAndroidHardwareBufferPropertiesANDROID-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" } ] }, @@ -15582,7 +19473,8 @@ "core": [ { "vuid": "VUID-VkAndroidHardwareBufferFormatPropertiesANDROID-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID" + "text": "sType must be VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID", + "page": "vkspec" } ] }, @@ -15590,7 +19482,17 @@ "core": [ { "vuid": "VUID-VkAndroidHardwareBufferFormatProperties2ANDROID-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID" + "text": "sType must be VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID", + "page": "vkspec" + } + ] + }, + "VkAndroidHardwareBufferFormatResolvePropertiesANDROID": { + "core": [ + { + "vuid": "VUID-VkAndroidHardwareBufferFormatResolvePropertiesANDROID-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID", + "page": "vkspec" } ] }, @@ -15598,15 +19500,18 @@ "core": [ { "vuid": "VUID-vkGetMemoryRemoteAddressNV-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetMemoryRemoteAddressNV-pMemoryGetRemoteAddressInfo-parameter", - "text": " pMemoryGetRemoteAddressInfo must be a valid pointer to a valid VkMemoryGetRemoteAddressInfoNV structure" + "text": "pMemoryGetRemoteAddressInfo must be a valid pointer to a valid VkMemoryGetRemoteAddressInfoNV structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetMemoryRemoteAddressNV-pAddress-parameter", - "text": " pAddress must be a valid pointer to a VkRemoteAddressNV value" + "text": "pAddress must be a valid pointer to a VkRemoteAddressNV value", + "page": "vkspec" } ] }, @@ -15614,23 +19519,28 @@ "core": [ { "vuid": "VUID-VkMemoryGetRemoteAddressInfoNV-handleType-04966", - "text": " handleType must have been included in VkExportMemoryAllocateInfo::handleTypes when memory was created" + "text": "handleType must have been included in VkExportMemoryAllocateInfo::handleTypes when memory was created", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryGetRemoteAddressInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV" + "text": "sType must be VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryGetRemoteAddressInfoNV-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryGetRemoteAddressInfoNV-memory-parameter", - "text": " memory must be a valid VkDeviceMemory handle" + "text": "memory must be a valid VkDeviceMemory handle", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryGetRemoteAddressInfoNV-handleType-parameter", - "text": " handleType must be a valid VkExternalMemoryHandleTypeFlagBits value" + "text": "handleType must be a valid VkExternalMemoryHandleTypeFlagBits value", + "page": "vkspec" } ] }, @@ -15638,19 +19548,23 @@ "core": [ { "vuid": "VUID-VkImportMemoryZirconHandleInfoFUCHSIA-handleType-04771", - "text": " handleType must be VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA" + "text": "handleType must be VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA", + "page": "vkspec" }, { "vuid": "VUID-VkImportMemoryZirconHandleInfoFUCHSIA-handle-04772", - "text": " handle must be a valid VMO handle" + "text": "handle must be a valid VMO handle", + "page": "vkspec" }, { "vuid": "VUID-VkImportMemoryZirconHandleInfoFUCHSIA-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA" + "text": "sType must be VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA", + "page": "vkspec" }, { "vuid": "VUID-VkImportMemoryZirconHandleInfoFUCHSIA-handleType-parameter", - "text": " If handleType is not 0, handleType must be a valid VkExternalMemoryHandleTypeFlagBits value" + "text": "If handleType is not 0, handleType must be a valid VkExternalMemoryHandleTypeFlagBits value", + "page": "vkspec" } ] }, @@ -15658,23 +19572,28 @@ "core": [ { "vuid": "VUID-vkGetMemoryZirconHandlePropertiesFUCHSIA-handleType-04773", - "text": " handleType must be VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA" + "text": "handleType must be VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA", + "page": "vkspec" }, { "vuid": "VUID-vkGetMemoryZirconHandlePropertiesFUCHSIA-zirconHandle-04774", - "text": " zirconHandle must reference a valid VMO" + "text": "zirconHandle must reference a valid VMO", + "page": "vkspec" }, { "vuid": "VUID-vkGetMemoryZirconHandlePropertiesFUCHSIA-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetMemoryZirconHandlePropertiesFUCHSIA-handleType-parameter", - "text": " handleType must be a valid VkExternalMemoryHandleTypeFlagBits value" + "text": "handleType must be a valid VkExternalMemoryHandleTypeFlagBits value", + "page": "vkspec" }, { "vuid": "VUID-vkGetMemoryZirconHandlePropertiesFUCHSIA-pMemoryZirconHandleProperties-parameter", - "text": " pMemoryZirconHandleProperties must be a valid pointer to a VkMemoryZirconHandlePropertiesFUCHSIA structure" + "text": "pMemoryZirconHandleProperties must be a valid pointer to a VkMemoryZirconHandlePropertiesFUCHSIA structure", + "page": "vkspec" } ] }, @@ -15682,11 +19601,13 @@ "core": [ { "vuid": "VUID-VkMemoryZirconHandlePropertiesFUCHSIA-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA" + "text": "sType must be VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryZirconHandlePropertiesFUCHSIA-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" } ] }, @@ -15694,15 +19615,18 @@ "core": [ { "vuid": "VUID-vkGetMemoryZirconHandleFUCHSIA-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetMemoryZirconHandleFUCHSIA-pGetZirconHandleInfo-parameter", - "text": " pGetZirconHandleInfo must be a valid pointer to a valid VkMemoryGetZirconHandleInfoFUCHSIA structure" + "text": "pGetZirconHandleInfo must be a valid pointer to a valid VkMemoryGetZirconHandleInfoFUCHSIA structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetMemoryZirconHandleFUCHSIA-pZirconHandle-parameter", - "text": " pZirconHandle must be a valid pointer to a zx_handle_t value" + "text": "pZirconHandle must be a valid pointer to a zx_handle_t value", + "page": "vkspec" } ] }, @@ -15710,27 +19634,33 @@ "core": [ { "vuid": "VUID-VkMemoryGetZirconHandleInfoFUCHSIA-handleType-04775", - "text": " handleType must be VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA" + "text": "handleType must be VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryGetZirconHandleInfoFUCHSIA-handleType-04776", - "text": " handleType must have been included in the handleTypes field of the VkExportMemoryAllocateInfo structure when the external memory was allocated" + "text": "handleType must have been included in the handleTypes field of the VkExportMemoryAllocateInfo structure when the external memory was allocated", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryGetZirconHandleInfoFUCHSIA-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA" + "text": "sType must be VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryGetZirconHandleInfoFUCHSIA-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryGetZirconHandleInfoFUCHSIA-memory-parameter", - "text": " memory must be a valid VkDeviceMemory handle" + "text": "memory must be a valid VkDeviceMemory handle", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryGetZirconHandleInfoFUCHSIA-handleType-parameter", - "text": " handleType must be a valid VkExternalMemoryHandleTypeFlagBits value" + "text": "handleType must be a valid VkExternalMemoryHandleTypeFlagBits value", + "page": "vkspec" } ] }, @@ -15738,11 +19668,13 @@ "core": [ { "vuid": "VUID-VkExportMetalObjectCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkExportMetalObjectCreateInfoEXT-exportObjectType-parameter", - "text": " If exportObjectType is not 0, exportObjectType must be a valid VkExportMetalObjectTypeFlagBitsEXT value" + "text": "If exportObjectType is not 0, exportObjectType must be a valid VkExportMetalObjectTypeFlagBitsEXT value", + "page": "vkspec" } ] }, @@ -15750,11 +19682,13 @@ "core": [ { "vuid": "VUID-vkExportMetalObjectsEXT-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkExportMetalObjectsEXT-pMetalObjectsInfo-parameter", - "text": " pMetalObjectsInfo must be a valid pointer to a VkExportMetalObjectsInfoEXT structure" + "text": "pMetalObjectsInfo must be a valid pointer to a VkExportMetalObjectsInfoEXT structure", + "page": "vkspec" } ] }, @@ -15762,79 +19696,98 @@ "core": [ { "vuid": "VUID-VkExportMetalObjectsInfoEXT-pNext-06791", - "text": " If the pNext chain includes a VkExportMetalDeviceInfoEXT structure, the VkInstance must have been created with VK_EXPORT_METAL_OBJECT_TYPE_METAL_DEVICE_BIT_EXT in the exportObjectType member of a VkExportMetalObjectCreateInfoEXT structure in the pNext chain of the VkInstanceCreateInfo structure in the vkCreateInstance command" + "text": "If the pNext chain includes a VkExportMetalDeviceInfoEXT structure, the VkInstance must have been created with VK_EXPORT_METAL_OBJECT_TYPE_METAL_DEVICE_BIT_EXT in the exportObjectType member of a VkExportMetalObjectCreateInfoEXT structure in the pNext chain of the VkInstanceCreateInfo structure in the vkCreateInstance command", + "page": "vkspec" }, { "vuid": "VUID-VkExportMetalObjectsInfoEXT-pNext-06792", - "text": " If the pNext chain includes a VkExportMetalCommandQueueInfoEXT structure, the VkInstance must have been created with VK_EXPORT_METAL_OBJECT_TYPE_METAL_COMMAND_QUEUE_BIT_EXT in the exportObjectType member of a VkExportMetalObjectCreateInfoEXT structure in the pNext chain of the VkInstanceCreateInfo structure in the vkCreateInstance command" + "text": "If the pNext chain includes a VkExportMetalCommandQueueInfoEXT structure, the VkInstance must have been created with VK_EXPORT_METAL_OBJECT_TYPE_METAL_COMMAND_QUEUE_BIT_EXT in the exportObjectType member of a VkExportMetalObjectCreateInfoEXT structure in the pNext chain of the VkInstanceCreateInfo structure in the vkCreateInstance command", + "page": "vkspec" }, { "vuid": "VUID-VkExportMetalObjectsInfoEXT-pNext-06793", - "text": " If the pNext chain includes a VkExportMetalBufferInfoEXT structure, the VkDeviceMemory in its memory member must have been allocated with VK_EXPORT_METAL_OBJECT_TYPE_METAL_BUFFER_BIT_EXT in the exportObjectType member of a VkExportMetalObjectCreateInfoEXT structure in the pNext chain of the VkMemoryAllocateInfo structure in the vkAllocateMemory command" + "text": "If the pNext chain includes a VkExportMetalBufferInfoEXT structure, the VkDeviceMemory in its memory member must have been allocated with VK_EXPORT_METAL_OBJECT_TYPE_METAL_BUFFER_BIT_EXT in the exportObjectType member of a VkExportMetalObjectCreateInfoEXT structure in the pNext chain of the VkMemoryAllocateInfo structure in the vkAllocateMemory command", + "page": "vkspec" }, { "vuid": "VUID-VkExportMetalObjectsInfoEXT-pNext-06794", - "text": " If the pNext chain includes a VkExportMetalTextureInfoEXT structure, exactly one of its image, imageView, or bufferView members must not be VK_NULL_HANDLE" + "text": "If the pNext chain includes a VkExportMetalTextureInfoEXT structure, exactly one of its image, imageView, or bufferView members must not be VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-VkExportMetalObjectsInfoEXT-pNext-06795", - "text": " If the pNext chain includes a VkExportMetalTextureInfoEXT structure, and its image member is not VK_NULL_HANDLE, the VkImage in its image member must have been created with VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT in the exportObjectType member of a VkExportMetalObjectCreateInfoEXT structure in the pNext chain of the VkImageCreateInfo structure in the vkCreateImage command" + "text": "If the pNext chain includes a VkExportMetalTextureInfoEXT structure, and its image member is not VK_NULL_HANDLE, the VkImage in its image member must have been created with VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT in the exportObjectType member of a VkExportMetalObjectCreateInfoEXT structure in the pNext chain of the VkImageCreateInfo structure in the vkCreateImage command", + "page": "vkspec" }, { "vuid": "VUID-VkExportMetalObjectsInfoEXT-pNext-06796", - "text": " If the pNext chain includes a VkExportMetalTextureInfoEXT structure, and its imageView member is not VK_NULL_HANDLE, the VkImageView in its imageView member must have been created with VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT in the exportObjectType member of a VkExportMetalObjectCreateInfoEXT structure in the pNext chain of the VkImageViewCreateInfo structure in the vkCreateImageView command" + "text": "If the pNext chain includes a VkExportMetalTextureInfoEXT structure, and its imageView member is not VK_NULL_HANDLE, the VkImageView in its imageView member must have been created with VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT in the exportObjectType member of a VkExportMetalObjectCreateInfoEXT structure in the pNext chain of the VkImageViewCreateInfo structure in the vkCreateImageView command", + "page": "vkspec" }, { "vuid": "VUID-VkExportMetalObjectsInfoEXT-pNext-06797", - "text": " If the pNext chain includes a VkExportMetalTextureInfoEXT structure, and its bufferView member is not VK_NULL_HANDLE, the VkBufferView in its bufferView member must have been created with VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT in the exportObjectType member of a VkExportMetalObjectCreateInfoEXT structure in the pNext chain of the VkBufferViewCreateInfo structure in the vkCreateBufferView command" + "text": "If the pNext chain includes a VkExportMetalTextureInfoEXT structure, and its bufferView member is not VK_NULL_HANDLE, the VkBufferView in its bufferView member must have been created with VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT in the exportObjectType member of a VkExportMetalObjectCreateInfoEXT structure in the pNext chain of the VkBufferViewCreateInfo structure in the vkCreateBufferView command", + "page": "vkspec" }, { "vuid": "VUID-VkExportMetalObjectsInfoEXT-pNext-06798", - "text": " If the pNext chain includes a VkExportMetalTextureInfoEXT structure, and if either its image or imageView member is not VK_NULL_HANDLE, then plane must be VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT, or VK_IMAGE_ASPECT_PLANE_2_BIT" + "text": "If the pNext chain includes a VkExportMetalTextureInfoEXT structure, and if either its image or imageView member is not VK_NULL_HANDLE, then plane must be VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT, or VK_IMAGE_ASPECT_PLANE_2_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkExportMetalObjectsInfoEXT-pNext-06799", - "text": " If the pNext chain includes a VkExportMetalTextureInfoEXT structure, and if the VkImage in its image member does not have a multi-planar format, then its plane member must be VK_IMAGE_ASPECT_PLANE_0_BIT" + "text": "If the pNext chain includes a VkExportMetalTextureInfoEXT structure, and if the VkImage in its image member does not have a multi-planar format, then its plane member must be VK_IMAGE_ASPECT_PLANE_0_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkExportMetalObjectsInfoEXT-pNext-06800", - "text": " If the pNext chain includes a VkExportMetalTextureInfoEXT structure, and if the VkImage in its image member has a multi-planar format with only two planes, then its plane member must not be VK_IMAGE_ASPECT_PLANE_2_BIT" + "text": "If the pNext chain includes a VkExportMetalTextureInfoEXT structure, and if the VkImage in its image member has a multi-planar format with only two planes, then its plane member must not be VK_IMAGE_ASPECT_PLANE_2_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkExportMetalObjectsInfoEXT-pNext-06801", - "text": " If the pNext chain includes a VkExportMetalTextureInfoEXT structure, and if the VkImageView in its imageView member does not have a multi-planar format, then its plane member must be VK_IMAGE_ASPECT_PLANE_0_BIT" + "text": "If the pNext chain includes a VkExportMetalTextureInfoEXT structure, and if the VkImageView in its imageView member does not have a multi-planar format, then its plane member must be VK_IMAGE_ASPECT_PLANE_0_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkExportMetalObjectsInfoEXT-pNext-06802", - "text": " If the pNext chain includes a VkExportMetalTextureInfoEXT structure, and if the VkImageView in its imageView member has a multi-planar format with only two planes, then its plane member must not be VK_IMAGE_ASPECT_PLANE_2_BIT" + "text": "If the pNext chain includes a VkExportMetalTextureInfoEXT structure, and if the VkImageView in its imageView member has a multi-planar format with only two planes, then its plane member must not be VK_IMAGE_ASPECT_PLANE_2_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkExportMetalObjectsInfoEXT-pNext-06803", - "text": " If the pNext chain includes a VkExportMetalIOSurfaceInfoEXT structure, the VkImage in its image member must have been created with VK_EXPORT_METAL_OBJECT_TYPE_METAL_IOSURFACE_BIT_EXT in the exportObjectType member of a VkExportMetalObjectCreateInfoEXT structure in the pNext chain of the VkImageCreateInfo structure in the vkCreateImage command" + "text": "If the pNext chain includes a VkExportMetalIOSurfaceInfoEXT structure, the VkImage in its image member must have been created with VK_EXPORT_METAL_OBJECT_TYPE_METAL_IOSURFACE_BIT_EXT in the exportObjectType member of a VkExportMetalObjectCreateInfoEXT structure in the pNext chain of the VkImageCreateInfo structure in the vkCreateImage command", + "page": "vkspec" }, { "vuid": "VUID-VkExportMetalObjectsInfoEXT-pNext-06804", - "text": " If the pNext chain includes a VkExportMetalSharedEventInfoEXT structure, exactly one of its semaphore or event members must not be VK_NULL_HANDLE" + "text": "If the pNext chain includes a VkExportMetalSharedEventInfoEXT structure, exactly one of its semaphore or event members must not be VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-VkExportMetalObjectsInfoEXT-pNext-06805", - "text": " If the pNext chain includes a VkExportMetalSharedEventInfoEXT structure, and its semaphore member is not VK_NULL_HANDLE, the VkSemaphore in its semaphore member must have been created with VK_EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT in the exportObjectType member of a VkExportMetalObjectCreateInfoEXT structure in the pNext chain of the VkSemaphoreCreateInfo structure in the vkCreateSemaphore command" + "text": "If the pNext chain includes a VkExportMetalSharedEventInfoEXT structure, and its semaphore member is not VK_NULL_HANDLE, the VkSemaphore in its semaphore member must have been created with VK_EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT in the exportObjectType member of a VkExportMetalObjectCreateInfoEXT structure in the pNext chain of the VkSemaphoreCreateInfo structure in the vkCreateSemaphore command", + "page": "vkspec" }, { "vuid": "VUID-VkExportMetalObjectsInfoEXT-pNext-06806", - "text": " If the pNext chain includes a VkExportMetalSharedEventInfoEXT structure, and its event member is not VK_NULL_HANDLE, the VkEvent in its event member must have been created with VK_EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT in the exportObjectType member of a VkExportMetalObjectCreateInfoEXT structure in the pNext chain of the VkEventCreateInfo structure in the vkCreateEvent command" + "text": "If the pNext chain includes a VkExportMetalSharedEventInfoEXT structure, and its event member is not VK_NULL_HANDLE, the VkEvent in its event member must have been created with VK_EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT in the exportObjectType member of a VkExportMetalObjectCreateInfoEXT structure in the pNext chain of the VkEventCreateInfo structure in the vkCreateEvent command", + "page": "vkspec" }, { "vuid": "VUID-VkExportMetalObjectsInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkExportMetalObjectsInfoEXT-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 VkExportMetalBufferInfoEXT, VkExportMetalCommandQueueInfoEXT, VkExportMetalDeviceInfoEXT, VkExportMetalIOSurfaceInfoEXT, VkExportMetalSharedEventInfoEXT, or VkExportMetalTextureInfoEXT" + "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 VkExportMetalBufferInfoEXT, VkExportMetalCommandQueueInfoEXT, VkExportMetalDeviceInfoEXT, VkExportMetalIOSurfaceInfoEXT, VkExportMetalSharedEventInfoEXT, or VkExportMetalTextureInfoEXT", + "page": "vkspec" }, { "vuid": "VUID-VkExportMetalObjectsInfoEXT-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique, with the exception of structures of type VkExportMetalBufferInfoEXT, VkExportMetalCommandQueueInfoEXT, VkExportMetalIOSurfaceInfoEXT, VkExportMetalSharedEventInfoEXT, or VkExportMetalTextureInfoEXT" + "text": "The sType value of each struct in the pNext chain must be unique, with the exception of structures of type VkExportMetalBufferInfoEXT, VkExportMetalCommandQueueInfoEXT, VkExportMetalIOSurfaceInfoEXT, VkExportMetalSharedEventInfoEXT, or VkExportMetalTextureInfoEXT", + "page": "vkspec" } ] }, @@ -15842,7 +19795,8 @@ "core": [ { "vuid": "VUID-VkExportMetalDeviceInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT", + "page": "vkspec" } ] }, @@ -15850,11 +19804,13 @@ "core": [ { "vuid": "VUID-VkExportMetalCommandQueueInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkExportMetalCommandQueueInfoEXT-queue-parameter", - "text": " queue must be a valid VkQueue handle" + "text": "queue must be a valid VkQueue handle", + "page": "vkspec" } ] }, @@ -15862,11 +19818,13 @@ "core": [ { "vuid": "VUID-VkExportMetalBufferInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkExportMetalBufferInfoEXT-memory-parameter", - "text": " memory must be a valid VkDeviceMemory handle" + "text": "memory must be a valid VkDeviceMemory handle", + "page": "vkspec" } ] }, @@ -15874,7 +19832,8 @@ "core": [ { "vuid": "VUID-VkImportMetalBufferInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT", + "page": "vkspec" } ] }, @@ -15882,27 +19841,33 @@ "core": [ { "vuid": "VUID-VkExportMetalTextureInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkExportMetalTextureInfoEXT-image-parameter", - "text": " If image is not VK_NULL_HANDLE, image must be a valid VkImage handle" + "text": "If image is not VK_NULL_HANDLE, image must be a valid VkImage handle", + "page": "vkspec" }, { "vuid": "VUID-VkExportMetalTextureInfoEXT-imageView-parameter", - "text": " If imageView is not VK_NULL_HANDLE, imageView must be a valid VkImageView handle" + "text": "If imageView is not VK_NULL_HANDLE, imageView must be a valid VkImageView handle", + "page": "vkspec" }, { "vuid": "VUID-VkExportMetalTextureInfoEXT-bufferView-parameter", - "text": " If bufferView is not VK_NULL_HANDLE, bufferView must be a valid VkBufferView handle" + "text": "If bufferView is not VK_NULL_HANDLE, bufferView must be a valid VkBufferView handle", + "page": "vkspec" }, { "vuid": "VUID-VkExportMetalTextureInfoEXT-plane-parameter", - "text": " plane must be a valid VkImageAspectFlagBits value" + "text": "plane must be a valid VkImageAspectFlagBits value", + "page": "vkspec" }, { "vuid": "VUID-VkExportMetalTextureInfoEXT-commonparent", - "text": " Each of bufferView, image, and imageView that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" + "text": "Each of bufferView, image, and imageView that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -15910,11 +19875,13 @@ "core": [ { "vuid": "VUID-VkImportMetalTextureInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkImportMetalTextureInfoEXT-plane-parameter", - "text": " plane must be a valid VkImageAspectFlagBits value" + "text": "plane must be a valid VkImageAspectFlagBits value", + "page": "vkspec" } ] }, @@ -15922,11 +19889,13 @@ "core": [ { "vuid": "VUID-VkExportMetalIOSurfaceInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkExportMetalIOSurfaceInfoEXT-image-parameter", - "text": " image must be a valid VkImage handle" + "text": "image must be a valid VkImage handle", + "page": "vkspec" } ] }, @@ -15934,7 +19903,8 @@ "core": [ { "vuid": "VUID-VkImportMetalIOSurfaceInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT", + "page": "vkspec" } ] }, @@ -15942,19 +19912,23 @@ "core": [ { "vuid": "VUID-VkExportMetalSharedEventInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkExportMetalSharedEventInfoEXT-semaphore-parameter", - "text": " If semaphore is not VK_NULL_HANDLE, semaphore must be a valid VkSemaphore handle" + "text": "If semaphore is not VK_NULL_HANDLE, semaphore must be a valid VkSemaphore handle", + "page": "vkspec" }, { "vuid": "VUID-VkExportMetalSharedEventInfoEXT-event-parameter", - "text": " If event is not VK_NULL_HANDLE, event must be a valid VkEvent handle" + "text": "If event is not VK_NULL_HANDLE, event must be a valid VkEvent handle", + "page": "vkspec" }, { "vuid": "VUID-VkExportMetalSharedEventInfoEXT-commonparent", - "text": " Both of event, and semaphore that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of event, and semaphore that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -15962,7 +19936,8 @@ "core": [ { "vuid": "VUID-VkImportMetalSharedEventInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT", + "page": "vkspec" } ] }, @@ -15970,15 +19945,18 @@ "core": [ { "vuid": "VUID-VkImportScreenBufferInfoQNX-buffer-08966", - "text": " If buffer is not NULL, QNX Screen Buffers must be supported for import, as reported by VkExternalImageFormatProperties or VkExternalBufferProperties" + "text": "If buffer is not NULL, QNX Screen Buffers must be supported for import, as reported by VkExternalImageFormatProperties or VkExternalBufferProperties", + "page": "vkspec" }, { "vuid": "VUID-VkImportScreenBufferInfoQNX-buffer-08967", - "text": " buffer is not NULL, it must be a pointer to valid QNX Screen buffer" + "text": "buffer is not NULL, it must be a pointer to valid QNX Screen buffer", + "page": "vkspec" }, { "vuid": "VUID-VkImportScreenBufferInfoQNX-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMPORT_SCREEN_BUFFER_INFO_QNX" + "text": "sType must be VK_STRUCTURE_TYPE_IMPORT_SCREEN_BUFFER_INFO_QNX", + "page": "vkspec" } ] }, @@ -15986,19 +19964,23 @@ "core": [ { "vuid": "VUID-vkGetScreenBufferPropertiesQNX-buffer-08968", - "text": " buffer must be a valid QNX Screen buffer" + "text": "buffer must be a valid QNX Screen buffer", + "page": "vkspec" }, { "vuid": "VUID-vkGetScreenBufferPropertiesQNX-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetScreenBufferPropertiesQNX-buffer-parameter", - "text": " buffer must be a valid pointer to a valid _screen_buffer value" + "text": "buffer must be a valid pointer to a valid _screen_buffer value", + "page": "vkspec" }, { "vuid": "VUID-vkGetScreenBufferPropertiesQNX-pProperties-parameter", - "text": " pProperties must be a valid pointer to a VkScreenBufferPropertiesQNX structure" + "text": "pProperties must be a valid pointer to a VkScreenBufferPropertiesQNX structure", + "page": "vkspec" } ] }, @@ -16006,15 +19988,18 @@ "core": [ { "vuid": "VUID-VkScreenBufferPropertiesQNX-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX" + "text": "sType must be VK_STRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX", + "page": "vkspec" }, { "vuid": "VUID-VkScreenBufferPropertiesQNX-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkScreenBufferFormatPropertiesQNX" + "text": "pNext must be NULL or a pointer to a valid instance of VkScreenBufferFormatPropertiesQNX", + "page": "vkspec" }, { "vuid": "VUID-VkScreenBufferPropertiesQNX-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" } ] }, @@ -16022,7 +20007,8 @@ "core": [ { "vuid": "VUID-VkScreenBufferFormatPropertiesQNX-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SCREEN_BUFFER_FORMAT_PROPERTIES_QNX" + "text": "sType must be VK_STRUCTURE_TYPE_SCREEN_BUFFER_FORMAT_PROPERTIES_QNX", + "page": "vkspec" } ] }, @@ -16030,19 +20016,23 @@ "core": [ { "vuid": "VUID-VkMemoryAllocateFlagsInfo-deviceMask-00675", - "text": " If VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT is set, deviceMask must be a valid device mask" + "text": "If VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT is set, deviceMask must be a valid device mask", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryAllocateFlagsInfo-deviceMask-00676", - "text": " If VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT is set, deviceMask must not be zero" + "text": "If VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT is set, deviceMask must not be zero", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryAllocateFlagsInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryAllocateFlagsInfo-flags-parameter", - "text": " flags must be a valid combination of VkMemoryAllocateFlagBits values" + "text": "flags must be a valid combination of VkMemoryAllocateFlagBits values", + "page": "vkspec" } ] }, @@ -16050,7 +20040,8 @@ "core": [ { "vuid": "VUID-VkMemoryOpaqueCaptureAddressAllocateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO", + "page": "vkspec" } ] }, @@ -16058,23 +20049,28 @@ "core": [ { "vuid": "VUID-vkFreeMemory-memory-00677", - "text": " All submitted commands that refer to memory (via images or buffers) must have completed execution" + "text": "All submitted commands that refer to memory (via images or buffers) must have completed execution", + "page": "vkspec" }, { "vuid": "VUID-vkFreeMemory-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkFreeMemory-memory-parameter", - "text": " If memory is not VK_NULL_HANDLE, memory must be a valid VkDeviceMemory handle" + "text": "If memory is not VK_NULL_HANDLE, memory must be a valid VkDeviceMemory handle", + "page": "vkspec" }, { "vuid": "VUID-vkFreeMemory-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkFreeMemory-memory-parent", - "text": " If memory is a valid handle, it must have been created, allocated, or retrieved from device" + "text": "If memory is a valid handle, it must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -16082,47 +20078,58 @@ "core": [ { "vuid": "VUID-vkMapMemory-memory-00678", - "text": " memory must not be currently host mapped" + "text": "memory must not be currently host mapped", + "page": "vkspec" }, { "vuid": "VUID-vkMapMemory-offset-00679", - "text": " offset must be less than the size of memory" + "text": "offset must be less than the size of memory", + "page": "vkspec" }, { "vuid": "VUID-vkMapMemory-size-00680", - "text": " If size is not equal to VK_WHOLE_SIZE, size must be greater than 0" + "text": "If size is not equal to VK_WHOLE_SIZE, size must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-vkMapMemory-size-00681", - "text": " If size is not equal to VK_WHOLE_SIZE, size must be less than or equal to the size of the memory minus offset" + "text": "If size is not equal to VK_WHOLE_SIZE, size must be less than or equal to the size of the memory minus offset", + "page": "vkspec" }, { "vuid": "VUID-vkMapMemory-memory-00682", - "text": " memory must have been created with a memory type that reports VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT" + "text": "memory must have been created with a memory type that reports VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkMapMemory-memory-00683", - "text": " memory must not have been allocated with multiple instances" + "text": "memory must not have been allocated with multiple instances", + "page": "vkspec" }, { "vuid": "VUID-vkMapMemory-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkMapMemory-memory-parameter", - "text": " memory must be a valid VkDeviceMemory handle" + "text": "memory must be a valid VkDeviceMemory handle", + "page": "vkspec" }, { "vuid": "VUID-vkMapMemory-flags-zerobitmask", - "text": " flags must be 0" + "text": "flags must be 0", + "page": "vkspec" }, { "vuid": "VUID-vkMapMemory-ppData-parameter", - "text": " ppData must be a valid pointer to a pointer value" + "text": "ppData must be a valid pointer to a pointer value", + "page": "vkspec" }, { "vuid": "VUID-vkMapMemory-memory-parent", - "text": " memory must have been created, allocated, or retrieved from device" + "text": "memory must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -16130,15 +20137,18 @@ "core": [ { "vuid": "VUID-vkMapMemory2KHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkMapMemory2KHR-pMemoryMapInfo-parameter", - "text": " pMemoryMapInfo must be a valid pointer to a valid VkMemoryMapInfoKHR structure" + "text": "pMemoryMapInfo must be a valid pointer to a valid VkMemoryMapInfoKHR structure", + "page": "vkspec" }, { "vuid": "VUID-vkMapMemory2KHR-ppData-parameter", - "text": " ppData must be a valid pointer to a pointer value" + "text": "ppData must be a valid pointer to a pointer value", + "page": "vkspec" } ] }, @@ -16146,43 +20156,53 @@ "core": [ { "vuid": "VUID-VkMemoryMapInfoKHR-memory-07958", - "text": " memory must not be currently host mapped" + "text": "memory must not be currently host mapped", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryMapInfoKHR-offset-07959", - "text": " offset must be less than the size of memory" + "text": "offset must be less than the size of memory", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryMapInfoKHR-size-07960", - "text": " If size is not equal to VK_WHOLE_SIZE, size must be greater than 0" + "text": "If size is not equal to VK_WHOLE_SIZE, size must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryMapInfoKHR-size-07961", - "text": " If size is not equal to VK_WHOLE_SIZE, size must be less than or equal to the size of the memory minus offset" + "text": "If size is not equal to VK_WHOLE_SIZE, size must be less than or equal to the size of the memory minus offset", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryMapInfoKHR-memory-07962", - "text": " memory must have been created with a memory type that reports VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT" + "text": "memory must have been created with a memory type that reports VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryMapInfoKHR-memory-07963", - "text": " memory must not have been allocated with multiple instances" + "text": "memory must not have been allocated with multiple instances", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryMapInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_MEMORY_MAP_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_MEMORY_MAP_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryMapInfoKHR-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryMapInfoKHR-flags-zerobitmask", - "text": " flags must be 0" + "text": "flags must be 0", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryMapInfoKHR-memory-parameter", - "text": " memory must be a valid VkDeviceMemory handle" + "text": "memory must be a valid VkDeviceMemory handle", + "page": "vkspec" } ] }, @@ -16190,15 +20210,18 @@ "core": [ { "vuid": "VUID-vkFlushMappedMemoryRanges-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkFlushMappedMemoryRanges-pMemoryRanges-parameter", - "text": " pMemoryRanges must be a valid pointer to an array of memoryRangeCount valid VkMappedMemoryRange structures" + "text": "pMemoryRanges must be a valid pointer to an array of memoryRangeCount valid VkMappedMemoryRange structures", + "page": "vkspec" }, { "vuid": "VUID-vkFlushMappedMemoryRanges-memoryRangeCount-arraylength", - "text": " memoryRangeCount must be greater than 0" + "text": "memoryRangeCount must be greater than 0", + "page": "vkspec" } ] }, @@ -16206,15 +20229,18 @@ "core": [ { "vuid": "VUID-vkInvalidateMappedMemoryRanges-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkInvalidateMappedMemoryRanges-pMemoryRanges-parameter", - "text": " pMemoryRanges must be a valid pointer to an array of memoryRangeCount valid VkMappedMemoryRange structures" + "text": "pMemoryRanges must be a valid pointer to an array of memoryRangeCount valid VkMappedMemoryRange structures", + "page": "vkspec" }, { "vuid": "VUID-vkInvalidateMappedMemoryRanges-memoryRangeCount-arraylength", - "text": " memoryRangeCount must be greater than 0" + "text": "memoryRangeCount must be greater than 0", + "page": "vkspec" } ] }, @@ -16222,39 +20248,48 @@ "core": [ { "vuid": "VUID-VkMappedMemoryRange-memory-00684", - "text": " memory must be currently host mapped" + "text": "memory must be currently host mapped", + "page": "vkspec" }, { "vuid": "VUID-VkMappedMemoryRange-size-00685", - "text": " If size is not equal to VK_WHOLE_SIZE, offset and size must specify a range contained within the currently mapped range of memory" + "text": "If size is not equal to VK_WHOLE_SIZE, offset and size must specify a range contained within the currently mapped range of memory", + "page": "vkspec" }, { "vuid": "VUID-VkMappedMemoryRange-size-00686", - "text": " If size is equal to VK_WHOLE_SIZE, offset must be within the currently mapped range of memory" + "text": "If size is equal to VK_WHOLE_SIZE, offset must be within the currently mapped range of memory", + "page": "vkspec" }, { "vuid": "VUID-VkMappedMemoryRange-offset-00687", - "text": " offset must be a multiple of VkPhysicalDeviceLimits::nonCoherentAtomSize" + "text": "offset must be a multiple of VkPhysicalDeviceLimits::nonCoherentAtomSize", + "page": "vkspec" }, { "vuid": "VUID-VkMappedMemoryRange-size-01389", - "text": " If size is equal to VK_WHOLE_SIZE, the end of the current mapping of memory must either be a multiple of VkPhysicalDeviceLimits::nonCoherentAtomSize bytes from the beginning of the memory object, or be equal to the end of the memory object" + "text": "If size is equal to VK_WHOLE_SIZE, the end of the current mapping of memory must either be a multiple of VkPhysicalDeviceLimits::nonCoherentAtomSize bytes from the beginning of the memory object, or be equal to the end of the memory object", + "page": "vkspec" }, { "vuid": "VUID-VkMappedMemoryRange-size-01390", - "text": " If size is not equal to VK_WHOLE_SIZE, size must either be a multiple of VkPhysicalDeviceLimits::nonCoherentAtomSize, or offset plus size must equal the size of memory" + "text": "If size is not equal to VK_WHOLE_SIZE, size must either be a multiple of VkPhysicalDeviceLimits::nonCoherentAtomSize, or offset plus size must equal the size of memory", + "page": "vkspec" }, { "vuid": "VUID-VkMappedMemoryRange-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE" + "text": "sType must be VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE", + "page": "vkspec" }, { "vuid": "VUID-VkMappedMemoryRange-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkMappedMemoryRange-memory-parameter", - "text": " memory must be a valid VkDeviceMemory handle" + "text": "memory must be a valid VkDeviceMemory handle", + "page": "vkspec" } ] }, @@ -16262,19 +20297,23 @@ "core": [ { "vuid": "VUID-vkUnmapMemory-memory-00689", - "text": " memory must be currently host mapped" + "text": "memory must be currently host mapped", + "page": "vkspec" }, { "vuid": "VUID-vkUnmapMemory-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkUnmapMemory-memory-parameter", - "text": " memory must be a valid VkDeviceMemory handle" + "text": "memory must be a valid VkDeviceMemory handle", + "page": "vkspec" }, { "vuid": "VUID-vkUnmapMemory-memory-parent", - "text": " memory must have been created, allocated, or retrieved from device" + "text": "memory must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -16282,11 +20321,13 @@ "core": [ { "vuid": "VUID-vkUnmapMemory2KHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkUnmapMemory2KHR-pMemoryUnmapInfo-parameter", - "text": " pMemoryUnmapInfo must be a valid pointer to a valid VkMemoryUnmapInfoKHR structure" + "text": "pMemoryUnmapInfo must be a valid pointer to a valid VkMemoryUnmapInfoKHR structure", + "page": "vkspec" } ] }, @@ -16294,23 +20335,28 @@ "core": [ { "vuid": "VUID-VkMemoryUnmapInfoKHR-memory-07964", - "text": " memory must be currently host mapped" + "text": "memory must be currently host mapped", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryUnmapInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_MEMORY_UNMAP_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_MEMORY_UNMAP_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryUnmapInfoKHR-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryUnmapInfoKHR-flags-zerobitmask", - "text": " flags must be 0" + "text": "flags must be 0", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryUnmapInfoKHR-memory-parameter", - "text": " memory must be a valid VkDeviceMemory handle" + "text": "memory must be a valid VkDeviceMemory handle", + "page": "vkspec" } ] }, @@ -16318,23 +20364,28 @@ "core": [ { "vuid": "VUID-vkGetDeviceMemoryCommitment-memory-00690", - "text": " memory must have been created with a memory type that reports VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT" + "text": "memory must have been created with a memory type that reports VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkGetDeviceMemoryCommitment-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetDeviceMemoryCommitment-memory-parameter", - "text": " memory must be a valid VkDeviceMemory handle" + "text": "memory must be a valid VkDeviceMemory handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetDeviceMemoryCommitment-pCommittedMemoryInBytes-parameter", - "text": " pCommittedMemoryInBytes must be a valid pointer to a VkDeviceSize value" + "text": "pCommittedMemoryInBytes must be a valid pointer to a VkDeviceSize value", + "page": "vkspec" }, { "vuid": "VUID-vkGetDeviceMemoryCommitment-memory-parent", - "text": " memory must have been created, allocated, or retrieved from device" + "text": "memory must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -16342,27 +20393,33 @@ "core": [ { "vuid": "VUID-vkGetDeviceGroupPeerMemoryFeatures-heapIndex-00691", - "text": " heapIndex must be less than memoryHeapCount" + "text": "heapIndex must be less than memoryHeapCount", + "page": "vkspec" }, { "vuid": "VUID-vkGetDeviceGroupPeerMemoryFeatures-localDeviceIndex-00692", - "text": " localDeviceIndex must be a valid device index" + "text": "localDeviceIndex must be a valid device index", + "page": "vkspec" }, { "vuid": "VUID-vkGetDeviceGroupPeerMemoryFeatures-remoteDeviceIndex-00693", - "text": " remoteDeviceIndex must be a valid device index" + "text": "remoteDeviceIndex must be a valid device index", + "page": "vkspec" }, { "vuid": "VUID-vkGetDeviceGroupPeerMemoryFeatures-localDeviceIndex-00694", - "text": " localDeviceIndex must not equal remoteDeviceIndex" + "text": "localDeviceIndex must not equal remoteDeviceIndex", + "page": "vkspec" }, { "vuid": "VUID-vkGetDeviceGroupPeerMemoryFeatures-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetDeviceGroupPeerMemoryFeatures-pPeerMemoryFeatures-parameter", - "text": " pPeerMemoryFeatures must be a valid pointer to a VkPeerMemoryFeatureFlags value" + "text": "pPeerMemoryFeatures must be a valid pointer to a VkPeerMemoryFeatureFlags value", + "page": "vkspec" } ] }, @@ -16370,19 +20427,23 @@ "core": [ { "vuid": "VUID-vkGetDeviceMemoryOpaqueCaptureAddress-None-03334", - "text": " The bufferDeviceAddress feature must be enabled" + "text": "The bufferDeviceAddress feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkGetDeviceMemoryOpaqueCaptureAddress-device-03335", - "text": " If device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled" + "text": "If device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkGetDeviceMemoryOpaqueCaptureAddress-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetDeviceMemoryOpaqueCaptureAddress-pInfo-parameter", - "text": " pInfo must be a valid pointer to a valid VkDeviceMemoryOpaqueCaptureAddressInfo structure" + "text": "pInfo must be a valid pointer to a valid VkDeviceMemoryOpaqueCaptureAddressInfo structure", + "page": "vkspec" } ] }, @@ -16390,19 +20451,23 @@ "core": [ { "vuid": "VUID-VkDeviceMemoryOpaqueCaptureAddressInfo-memory-03336", - "text": " memory must have been allocated with VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT" + "text": "memory must have been allocated with VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceMemoryOpaqueCaptureAddressInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceMemoryOpaqueCaptureAddressInfo-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceMemoryOpaqueCaptureAddressInfo-memory-parameter", - "text": " memory must be a valid VkDeviceMemory handle" + "text": "memory must be a valid VkDeviceMemory handle", + "page": "vkspec" } ] }, @@ -16410,27 +20475,43 @@ "core": [ { "vuid": "VUID-vkCreateBuffer-flags-00911", - "text": " If the flags member of pCreateInfo includes VK_BUFFER_CREATE_SPARSE_BINDING_BIT, creating this VkBuffer must not cause the total required sparse memory for all currently valid sparse resources on the device to exceed VkPhysicalDeviceLimits::sparseAddressSpaceSize" + "text": "If the flags member of pCreateInfo includes VK_BUFFER_CREATE_SPARSE_BINDING_BIT, and the extendedSparseAddressSpace feature is not enabled, creating this VkBuffer must not cause the total required sparse memory for all currently valid sparse resources on the device to exceed VkPhysicalDeviceLimits::sparseAddressSpaceSize", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCreateBuffer-flags-09383", + "text": "If the flags member of pCreateInfo includes VK_BUFFER_CREATE_SPARSE_BINDING_BIT, the extendedSparseAddressSpace feature is enabled, and the usage member of pCreateInfo contains bits not in VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV::extendedSparseBufferUsageFlags, creating this VkBuffer must not cause the total required sparse memory for all currently valid sparse resources on the device, excluding VkBuffer created with usage member of pCreateInfo containing bits in VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV::extendedSparseBufferUsageFlags and VkImage created with usage member of pCreateInfo containing bits in VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV::extendedSparseImageUsageFlags, to exceed VkPhysicalDeviceLimits::sparseAddressSpaceSize", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCreateBuffer-flags-09384", + "text": "If the flags member of pCreateInfo includes VK_BUFFER_CREATE_SPARSE_BINDING_BIT and the extendedSparseAddressSpace feature is enabled, creating this VkBuffer must not cause the total required sparse memory for all currently valid sparse resources on the device to exceed VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV::extendedSparseAddressSpaceSize", + "page": "vkspec" }, { "vuid": "VUID-vkCreateBuffer-pNext-06387", - "text": " If using the VkBuffer for an import operation from a VkBufferCollectionFUCHSIA where a VkBufferCollectionBufferCreateInfoFUCHSIA has been chained to pNext, pCreateInfo must match the VkBufferConstraintsInfoFUCHSIA::createInfo used when setting the constraints on the buffer collection with vkSetBufferCollectionBufferConstraintsFUCHSIA" + "text": "If using the VkBuffer for an import operation from a VkBufferCollectionFUCHSIA where a VkBufferCollectionBufferCreateInfoFUCHSIA has been chained to pNext, pCreateInfo must match the VkBufferConstraintsInfoFUCHSIA::createInfo used when setting the constraints on the buffer collection with vkSetBufferCollectionBufferConstraintsFUCHSIA", + "page": "vkspec" }, { "vuid": "VUID-vkCreateBuffer-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkCreateBuffer-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkBufferCreateInfo structure" + "text": "pCreateInfo must be a valid pointer to a valid VkBufferCreateInfo structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateBuffer-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateBuffer-pBuffer-parameter", - "text": " pBuffer must be a valid pointer to a VkBuffer handle" + "text": "pBuffer must be a valid pointer to a VkBuffer handle", + "page": "vkspec" } ] }, @@ -16438,131 +20519,163 @@ "core": [ { "vuid": "VUID-VkBufferCreateInfo-size-00912", - "text": " size must be greater than 0" + "text": "size must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-VkBufferCreateInfo-sharingMode-00913", - "text": " If sharingMode is VK_SHARING_MODE_CONCURRENT, pQueueFamilyIndices must be a valid pointer to an array of queueFamilyIndexCount uint32_t values" + "text": "If sharingMode is VK_SHARING_MODE_CONCURRENT, pQueueFamilyIndices must be a valid pointer to an array of queueFamilyIndexCount uint32_t values", + "page": "vkspec" }, { "vuid": "VUID-VkBufferCreateInfo-sharingMode-00914", - "text": " If sharingMode is VK_SHARING_MODE_CONCURRENT, queueFamilyIndexCount must be greater than 1" + "text": "If sharingMode is VK_SHARING_MODE_CONCURRENT, queueFamilyIndexCount must be greater than 1", + "page": "vkspec" }, { "vuid": "VUID-VkBufferCreateInfo-sharingMode-01419", - "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" + "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": "vkspec" }, { "vuid": "VUID-VkBufferCreateInfo-flags-00915", - "text": " If the sparseBinding feature is not enabled, flags must not contain VK_BUFFER_CREATE_SPARSE_BINDING_BIT" + "text": "If the sparseBinding feature is not enabled, flags must not contain VK_BUFFER_CREATE_SPARSE_BINDING_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferCreateInfo-flags-00916", - "text": " If the sparseResidencyBuffer feature is not enabled, flags must not contain VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT" + "text": "If the sparseResidencyBuffer feature is not enabled, flags must not contain VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferCreateInfo-flags-00917", - "text": " If the sparseResidencyAliased feature is not enabled, flags must not contain VK_BUFFER_CREATE_SPARSE_ALIASED_BIT" + "text": "If the sparseResidencyAliased feature is not enabled, flags must not contain VK_BUFFER_CREATE_SPARSE_ALIASED_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferCreateInfo-flags-00918", - "text": " If flags contains VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT or VK_BUFFER_CREATE_SPARSE_ALIASED_BIT, it must also contain VK_BUFFER_CREATE_SPARSE_BINDING_BIT" + "text": "If flags contains VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT or VK_BUFFER_CREATE_SPARSE_ALIASED_BIT, it must also contain VK_BUFFER_CREATE_SPARSE_BINDING_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferCreateInfo-pNext-00920", - "text": " If the pNext chain includes a VkExternalMemoryBufferCreateInfo structure, its handleTypes member must only contain bits that are also in VkExternalBufferProperties::externalMemoryProperties.compatibleHandleTypes, as returned by vkGetPhysicalDeviceExternalBufferProperties with pExternalBufferInfo->handleType equal to any one of the handle types specified in VkExternalMemoryBufferCreateInfo::handleTypes" + "text": "If the pNext chain includes a VkExternalMemoryBufferCreateInfo structure, its handleTypes member must only contain bits that are also in VkExternalBufferProperties::externalMemoryProperties.compatibleHandleTypes, as returned by vkGetPhysicalDeviceExternalBufferProperties with pExternalBufferInfo->handleType equal to any one of the handle types specified in VkExternalMemoryBufferCreateInfo::handleTypes", + "page": "vkspec" }, { "vuid": "VUID-VkBufferCreateInfo-flags-01887", - "text": " If the protectedMemory feature is not enabled, flags must not contain VK_BUFFER_CREATE_PROTECTED_BIT" + "text": "If the protectedMemory feature is not enabled, flags must not contain VK_BUFFER_CREATE_PROTECTED_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferCreateInfo-None-01888", - "text": " If any of the bits VK_BUFFER_CREATE_SPARSE_BINDING_BIT, VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT, or VK_BUFFER_CREATE_SPARSE_ALIASED_BIT are set, VK_BUFFER_CREATE_PROTECTED_BIT must not also be set" + "text": "If any of the bits VK_BUFFER_CREATE_SPARSE_BINDING_BIT, VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT, or VK_BUFFER_CREATE_SPARSE_ALIASED_BIT are set, VK_BUFFER_CREATE_PROTECTED_BIT must not also be set", + "page": "vkspec" }, { "vuid": "VUID-VkBufferCreateInfo-pNext-01571", - "text": " If the pNext chain includes a VkDedicatedAllocationBufferCreateInfoNV structure, and the dedicatedAllocation member of the chained structure is VK_TRUE, then flags must not include VK_BUFFER_CREATE_SPARSE_BINDING_BIT, VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT, or VK_BUFFER_CREATE_SPARSE_ALIASED_BIT" + "text": "If the pNext chain includes a VkDedicatedAllocationBufferCreateInfoNV structure, and the dedicatedAllocation member of the chained structure is VK_TRUE, then flags must not include VK_BUFFER_CREATE_SPARSE_BINDING_BIT, VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT, or VK_BUFFER_CREATE_SPARSE_ALIASED_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferCreateInfo-deviceAddress-02604", - "text": " If VkBufferDeviceAddressCreateInfoEXT::deviceAddress is not zero, flags must include VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT" + "text": "If VkBufferDeviceAddressCreateInfoEXT::deviceAddress is not zero, flags must include VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferCreateInfo-opaqueCaptureAddress-03337", - "text": " If VkBufferOpaqueCaptureAddressCreateInfo::opaqueCaptureAddress is not zero, flags must include VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT" + "text": "If VkBufferOpaqueCaptureAddressCreateInfo::opaqueCaptureAddress is not zero, flags must include VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferCreateInfo-flags-03338", - "text": " If flags includes VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT, the bufferDeviceAddressCaptureReplay or bufferDeviceAddressCaptureReplayEXT feature must be enabled" + "text": "If flags includes VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT, the bufferDeviceAddressCaptureReplay or bufferDeviceAddressCaptureReplayEXT feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-VkBufferCreateInfo-usage-04813", - "text": " If usage includes VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR or VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR, then the pNext chain must include a VkVideoProfileListInfoKHR structure with profileCount greater than 0 and pProfiles including at least one VkVideoProfileInfoKHR structure with a videoCodecOperation member specifying a decode operation" + "text": "If usage includes VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR or VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR, then the pNext chain must include a VkVideoProfileListInfoKHR structure with profileCount greater than 0 and pProfiles including at least one VkVideoProfileInfoKHR structure with a videoCodecOperation member specifying a decode operation", + "page": "vkspec" }, { "vuid": "VUID-VkBufferCreateInfo-usage-04814", - "text": " If usage includes VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR or VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR, then the pNext chain must include a VkVideoProfileListInfoKHR structure with profileCount greater than 0 and pProfiles including at least one VkVideoProfileInfoKHR structure with a videoCodecOperation member specifying an encode operation" + "text": "If usage includes VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR or VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR, then the pNext chain must include a VkVideoProfileListInfoKHR structure with profileCount greater than 0 and pProfiles including at least one VkVideoProfileInfoKHR structure with a videoCodecOperation member specifying an encode operation", + "page": "vkspec" }, { "vuid": "VUID-VkBufferCreateInfo-size-06409", - "text": " size must be less than or equal to VkPhysicalDeviceMaintenance4Properties::maxBufferSize" + "text": "size must be less than or equal to VkPhysicalDeviceMaintenance4Properties::maxBufferSize", + "page": "vkspec" }, { "vuid": "VUID-VkBufferCreateInfo-usage-08097", - "text": " If usage includes VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT, creating this VkBuffer must not cause the total required space for all currently valid buffers using this flag on the device to exceed VkPhysicalDeviceDescriptorBufferPropertiesEXT::samplerDescriptorBufferAddressSpaceSize or VkPhysicalDeviceDescriptorBufferPropertiesEXT::descriptorBufferAddressSpaceSize" + "text": "If usage includes VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT, creating this VkBuffer must not cause the total required space for all currently valid buffers using this flag on the device to exceed VkPhysicalDeviceDescriptorBufferPropertiesEXT::samplerDescriptorBufferAddressSpaceSize or VkPhysicalDeviceDescriptorBufferPropertiesEXT::descriptorBufferAddressSpaceSize", + "page": "vkspec" }, { "vuid": "VUID-VkBufferCreateInfo-usage-08098", - "text": " If usage includes VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT, creating this VkBuffer must not cause the total required space for all currently valid buffers using this flag on the device to exceed VkPhysicalDeviceDescriptorBufferPropertiesEXT::resourceDescriptorBufferAddressSpaceSize or VkPhysicalDeviceDescriptorBufferPropertiesEXT::descriptorBufferAddressSpaceSize" + "text": "If usage includes VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT, creating this VkBuffer must not cause the total required space for all currently valid buffers using this flag on the device to exceed VkPhysicalDeviceDescriptorBufferPropertiesEXT::resourceDescriptorBufferAddressSpaceSize or VkPhysicalDeviceDescriptorBufferPropertiesEXT::descriptorBufferAddressSpaceSize", + "page": "vkspec" }, { "vuid": "VUID-VkBufferCreateInfo-flags-08099", - "text": " If flags includes VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT, the descriptorBufferCaptureReplay feature must be enabled" + "text": "If flags includes VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT, the descriptorBufferCaptureReplay feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-VkBufferCreateInfo-pNext-08100", - "text": " If the pNext chain includes a VkOpaqueCaptureDescriptorDataCreateInfoEXT structure, flags must contain VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT" + "text": "If the pNext chain includes a VkOpaqueCaptureDescriptorDataCreateInfoEXT structure, flags must contain VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferCreateInfo-usage-08101", - "text": " If usage includes VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT, the descriptorBufferPushDescriptors feature must be enabled" + "text": "If usage includes VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT, the descriptorBufferPushDescriptors feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-VkBufferCreateInfo-usage-08102", - "text": " If usage includes VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT VkPhysicalDeviceDescriptorBufferPropertiesEXT::bufferlessPushDescriptors must be VK_FALSE" + "text": "If usage includes VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT VkPhysicalDeviceDescriptorBufferPropertiesEXT::bufferlessPushDescriptors must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-VkBufferCreateInfo-usage-08103", - "text": " If usage includes VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT, usage must contain at least one of VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT or VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "If usage includes VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT, usage must contain at least one of VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT or VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" + }, + { + "vuid": "VUID-VkBufferCreateInfo-None-09205", + "text": "If the pNext chain does not include a VkBufferUsageFlags2CreateInfoKHR structure, usage must be a valid combination of VkBufferUsageFlagBits values", + "page": "vkspec" + }, + { + "vuid": "VUID-VkBufferCreateInfo-None-09206", + "text": "If the pNext chain does not include a VkBufferUsageFlags2CreateInfoKHR structure, usage must not be 0", + "page": "vkspec" }, { "vuid": "VUID-VkBufferCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkBufferCreateInfo-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 VkBufferCollectionBufferCreateInfoFUCHSIA, VkBufferDeviceAddressCreateInfoEXT, VkBufferOpaqueCaptureAddressCreateInfo, VkBufferUsageFlags2CreateInfoKHR, VkDedicatedAllocationBufferCreateInfoNV, VkExternalMemoryBufferCreateInfo, VkOpaqueCaptureDescriptorDataCreateInfoEXT, or VkVideoProfileListInfoKHR" + "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 VkBufferCollectionBufferCreateInfoFUCHSIA, VkBufferDeviceAddressCreateInfoEXT, VkBufferOpaqueCaptureAddressCreateInfo, VkBufferUsageFlags2CreateInfoKHR, VkDedicatedAllocationBufferCreateInfoNV, VkExternalMemoryBufferCreateInfo, VkOpaqueCaptureDescriptorDataCreateInfoEXT, or VkVideoProfileListInfoKHR", + "page": "vkspec" }, { "vuid": "VUID-VkBufferCreateInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" }, { "vuid": "VUID-VkBufferCreateInfo-flags-parameter", - "text": " flags must be a valid combination of VkBufferCreateFlagBits values" - }, - { - "vuid": "VUID-VkBufferCreateInfo-usage-parameter", - "text": " usage must be a valid combination of VkBufferUsageFlagBits values" - }, - { - "vuid": "VUID-VkBufferCreateInfo-usage-requiredbitmask", - "text": " usage must not be 0" + "text": "flags must be a valid combination of VkBufferCreateFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkBufferCreateInfo-sharingMode-parameter", - "text": " sharingMode must be a valid VkSharingMode value" + "text": "sharingMode must be a valid VkSharingMode value", + "page": "vkspec" } ] }, @@ -16570,15 +20683,18 @@ "core": [ { "vuid": "VUID-VkBufferUsageFlags2CreateInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkBufferUsageFlags2CreateInfoKHR-usage-parameter", - "text": " usage must be a valid combination of VkBufferUsageFlagBits2KHR values" + "text": "usage must be a valid combination of VkBufferUsageFlagBits2KHR values", + "page": "vkspec" }, { "vuid": "VUID-VkBufferUsageFlags2CreateInfoKHR-usage-requiredbitmask", - "text": " usage must not be 0" + "text": "usage must not be 0", + "page": "vkspec" } ] }, @@ -16586,7 +20702,8 @@ "core": [ { "vuid": "VUID-VkDedicatedAllocationBufferCreateInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV" + "text": "sType must be VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV", + "page": "vkspec" } ] }, @@ -16594,11 +20711,13 @@ "core": [ { "vuid": "VUID-VkExternalMemoryBufferCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkExternalMemoryBufferCreateInfo-handleTypes-parameter", - "text": " handleTypes must be a valid combination of VkExternalMemoryHandleTypeFlagBits values" + "text": "handleTypes must be a valid combination of VkExternalMemoryHandleTypeFlagBits values", + "page": "vkspec" } ] }, @@ -16606,7 +20725,8 @@ "core": [ { "vuid": "VUID-VkBufferOpaqueCaptureAddressCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO", + "page": "vkspec" } ] }, @@ -16614,7 +20734,8 @@ "core": [ { "vuid": "VUID-VkBufferDeviceAddressCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT", + "page": "vkspec" } ] }, @@ -16622,15 +20743,18 @@ "core": [ { "vuid": "VUID-VkBufferCollectionBufferCreateInfoFUCHSIA-index-06388", - "text": " index must be less than VkBufferCollectionPropertiesFUCHSIA::bufferCount" + "text": "index must be less than VkBufferCollectionPropertiesFUCHSIA::bufferCount", + "page": "vkspec" }, { "vuid": "VUID-VkBufferCollectionBufferCreateInfoFUCHSIA-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA" + "text": "sType must be VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA", + "page": "vkspec" }, { "vuid": "VUID-VkBufferCollectionBufferCreateInfoFUCHSIA-collection-parameter", - "text": " collection must be a valid VkBufferCollectionFUCHSIA handle" + "text": "collection must be a valid VkBufferCollectionFUCHSIA handle", + "page": "vkspec" } ] }, @@ -16638,31 +20762,38 @@ "core": [ { "vuid": "VUID-vkDestroyBuffer-buffer-00922", - "text": " All submitted commands that refer to buffer, either directly or via a VkBufferView, must have completed execution" + "text": "All submitted commands that refer to buffer, either directly or via a VkBufferView, must have completed execution", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyBuffer-buffer-00923", - "text": " If VkAllocationCallbacks were provided when buffer was created, a compatible set of callbacks must be provided here" + "text": "If VkAllocationCallbacks were provided when buffer was created, a compatible set of callbacks must be provided here", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyBuffer-buffer-00924", - "text": " If no VkAllocationCallbacks were provided when buffer was created, pAllocator must be NULL" + "text": "If no VkAllocationCallbacks were provided when buffer was created, pAllocator must be NULL", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyBuffer-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyBuffer-buffer-parameter", - "text": " If buffer is not VK_NULL_HANDLE, buffer must be a valid VkBuffer handle" + "text": "If buffer is not VK_NULL_HANDLE, buffer must be a valid VkBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyBuffer-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyBuffer-buffer-parent", - "text": " If buffer is a valid handle, it must have been created, allocated, or retrieved from device" + "text": "If buffer is a valid handle, it must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -16670,19 +20801,23 @@ "core": [ { "vuid": "VUID-vkCreateBufferView-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkCreateBufferView-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkBufferViewCreateInfo structure" + "text": "pCreateInfo must be a valid pointer to a valid VkBufferViewCreateInfo structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateBufferView-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateBufferView-pView-parameter", - "text": " pView must be a valid pointer to a VkBufferView handle" + "text": "pView must be a valid pointer to a VkBufferView handle", + "page": "vkspec" } ] }, @@ -16690,91 +20825,113 @@ "core": [ { "vuid": "VUID-VkBufferViewCreateInfo-offset-00925", - "text": " offset must be less than the size of buffer" + "text": "offset must be less than the size of buffer", + "page": "vkspec" }, { "vuid": "VUID-VkBufferViewCreateInfo-range-00928", - "text": " If range is not equal to VK_WHOLE_SIZE, range must be greater than 0" + "text": "If range is not equal to VK_WHOLE_SIZE, range must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-VkBufferViewCreateInfo-range-00929", - "text": " If range is not equal to VK_WHOLE_SIZE, range must be an integer multiple of the texel block size of format" + "text": "If range is not equal to VK_WHOLE_SIZE, range must be an integer multiple of the texel block size of format", + "page": "vkspec" }, { "vuid": "VUID-VkBufferViewCreateInfo-range-00930", - "text": " If range is not equal to VK_WHOLE_SIZE, the number of texel buffer elements given by ({lfloor}range / (texel block size){rfloor} {times} (texels per block)) where texel block size and texels per block are as defined in the Compatible Formats table for format, must be less than or equal to VkPhysicalDeviceLimits::maxTexelBufferElements" + "text": "If range is not equal to VK_WHOLE_SIZE, the number of texel buffer elements given by (⌊range / (texel block size)⌋ × (texels per block)) where texel block size and texels per block are as defined in the Compatible Formats table for format, must be less than or equal to VkPhysicalDeviceLimits::maxTexelBufferElements", + "page": "vkspec" }, { "vuid": "VUID-VkBufferViewCreateInfo-offset-00931", - "text": " If range is not equal to VK_WHOLE_SIZE, the sum of offset and range must be less than or equal to the size of buffer" + "text": "If range is not equal to VK_WHOLE_SIZE, the sum of offset and range must be less than or equal to the size of buffer", + "page": "vkspec" }, { "vuid": "VUID-VkBufferViewCreateInfo-range-04059", - "text": " If range is equal to VK_WHOLE_SIZE, the number of texel buffer elements given by ({lfloor}(size - offset) / (texel block size){rfloor} {times} (texels per block)) where size is the size of buffer, and texel block size and texels per block are as defined in the Compatible Formats table for format, must be less than or equal to VkPhysicalDeviceLimits::maxTexelBufferElements" + "text": "If range is equal to VK_WHOLE_SIZE, the number of texel buffer elements given by (⌊(size - offset) / (texel block size)⌋ × (texels per block)) where size is the size of buffer, and texel block size and texels per block are as defined in the Compatible Formats table for format, must be less than or equal to VkPhysicalDeviceLimits::maxTexelBufferElements", + "page": "vkspec" }, { "vuid": "VUID-VkBufferViewCreateInfo-buffer-00932", - "text": " buffer must have been created with a usage value containing at least one of VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT or VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT" + "text": "buffer must have been created with a usage value containing at least one of VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT or VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferViewCreateInfo-format-08778", - "text": " If the buffer view usage contains VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT, then format features of format must contain VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT" + "text": "If the buffer view usage contains VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT, then format features of format must contain VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferViewCreateInfo-format-08779", - "text": " If the buffer view usage contains VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT, then format features of format must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT" + "text": "If the buffer view usage contains VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT, then format features of format must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferViewCreateInfo-buffer-00935", - "text": " If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-VkBufferViewCreateInfo-offset-02749", - "text": " If the texelBufferAlignment feature is not enabled, offset must be a multiple of VkPhysicalDeviceLimits::minTexelBufferOffsetAlignment" + "text": "If the texelBufferAlignment feature is not enabled, offset must be a multiple of VkPhysicalDeviceLimits::minTexelBufferOffsetAlignment", + "page": "vkspec" }, { "vuid": "VUID-VkBufferViewCreateInfo-buffer-02750", - "text": " If the texelBufferAlignment feature is enabled and if buffer was created with usage containing VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT, offset must be a multiple of the lesser of VkPhysicalDeviceTexelBufferAlignmentProperties::storageTexelBufferOffsetAlignmentBytes or, if VkPhysicalDeviceTexelBufferAlignmentProperties::storageTexelBufferOffsetSingleTexelAlignment is VK_TRUE, the size of a texel of the requested format. If the size of a texel is a multiple of three bytes, then the size of a single component of format is used instead" + "text": "If the texelBufferAlignment feature is enabled and if buffer was created with usage containing VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT, offset must be a multiple of the lesser of VkPhysicalDeviceTexelBufferAlignmentProperties::storageTexelBufferOffsetAlignmentBytes or, if VkPhysicalDeviceTexelBufferAlignmentProperties::storageTexelBufferOffsetSingleTexelAlignment is VK_TRUE, the size of a texel of the requested format. If the size of a texel is a multiple of three bytes, then the size of a single component of format is used instead", + "page": "vkspec" }, { "vuid": "VUID-VkBufferViewCreateInfo-buffer-02751", - "text": " If the texelBufferAlignment feature is enabled and if buffer was created with usage containing VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT, offset must be a multiple of the lesser of VkPhysicalDeviceTexelBufferAlignmentProperties::uniformTexelBufferOffsetAlignmentBytes or, if VkPhysicalDeviceTexelBufferAlignmentProperties::uniformTexelBufferOffsetSingleTexelAlignment is VK_TRUE, the size of a texel of the requested format. If the size of a texel is a multiple of three bytes, then the size of a single component of format is used instead" + "text": "If the texelBufferAlignment feature is enabled and if buffer was created with usage containing VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT, offset must be a multiple of the lesser of VkPhysicalDeviceTexelBufferAlignmentProperties::uniformTexelBufferOffsetAlignmentBytes or, if VkPhysicalDeviceTexelBufferAlignmentProperties::uniformTexelBufferOffsetSingleTexelAlignment is VK_TRUE, the size of a texel of the requested format. If the size of a texel is a multiple of three bytes, then the size of a single component of format is used instead", + "page": "vkspec" }, { "vuid": "VUID-VkBufferViewCreateInfo-pNext-06782", - "text": " If the pNext chain includes a VkExportMetalObjectCreateInfoEXT structure, its exportObjectType member must be VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT" + "text": "If the pNext chain includes a VkExportMetalObjectCreateInfoEXT structure, its exportObjectType member must be VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferViewCreateInfo-pNext-08780", - "text": " If the pNext chain includes a VkBufferUsageFlags2CreateInfoKHR, its usage must not contain any other bit than VK_BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR or VK_BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT_KHR" + "text": "If the pNext chain includes a VkBufferUsageFlags2CreateInfoKHR, its usage must not contain any other bit than VK_BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR or VK_BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkBufferViewCreateInfo-pNext-08781", - "text": " If the pNext chain includes a VkBufferUsageFlags2CreateInfoKHR, its usage must be a subset of the VkBufferCreateInfo::usage specified or VkBufferUsageFlags2CreateInfoKHR::usage from VkBufferCreateInfo::pNext when creating buffer" + "text": "If the pNext chain includes a VkBufferUsageFlags2CreateInfoKHR, its usage must be a subset of the VkBufferCreateInfo::usage specified or VkBufferUsageFlags2CreateInfoKHR::usage from VkBufferCreateInfo::pNext when creating buffer", + "page": "vkspec" }, { "vuid": "VUID-VkBufferViewCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkBufferViewCreateInfo-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 VkBufferUsageFlags2CreateInfoKHR or VkExportMetalObjectCreateInfoEXT" + "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 VkBufferUsageFlags2CreateInfoKHR or VkExportMetalObjectCreateInfoEXT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferViewCreateInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique, with the exception of structures of type VkExportMetalObjectCreateInfoEXT" + "text": "The sType value of each struct in the pNext chain must be unique, with the exception of structures of type VkExportMetalObjectCreateInfoEXT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferViewCreateInfo-flags-zerobitmask", - "text": " flags must be 0" + "text": "flags must be 0", + "page": "vkspec" }, { "vuid": "VUID-VkBufferViewCreateInfo-buffer-parameter", - "text": " buffer must be a valid VkBuffer handle" + "text": "buffer must be a valid VkBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-VkBufferViewCreateInfo-format-parameter", - "text": " format must be a valid VkFormat value" + "text": "format must be a valid VkFormat value", + "page": "vkspec" } ] }, @@ -16782,31 +20939,38 @@ "core": [ { "vuid": "VUID-vkDestroyBufferView-bufferView-00936", - "text": " All submitted commands that refer to bufferView must have completed execution" + "text": "All submitted commands that refer to bufferView must have completed execution", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyBufferView-bufferView-00937", - "text": " If VkAllocationCallbacks were provided when bufferView was created, a compatible set of callbacks must be provided here" + "text": "If VkAllocationCallbacks were provided when bufferView was created, a compatible set of callbacks must be provided here", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyBufferView-bufferView-00938", - "text": " If no VkAllocationCallbacks were provided when bufferView was created, pAllocator must be NULL" + "text": "If no VkAllocationCallbacks were provided when bufferView was created, pAllocator must be NULL", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyBufferView-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyBufferView-bufferView-parameter", - "text": " If bufferView is not VK_NULL_HANDLE, bufferView must be a valid VkBufferView handle" + "text": "If bufferView is not VK_NULL_HANDLE, bufferView must be a valid VkBufferView handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyBufferView-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyBufferView-bufferView-parent", - "text": " If bufferView is a valid handle, it must have been created, allocated, or retrieved from device" + "text": "If bufferView is a valid handle, it must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -16814,27 +20978,43 @@ "core": [ { "vuid": "VUID-vkCreateImage-flags-00939", - "text": " If the flags member of pCreateInfo includes VK_IMAGE_CREATE_SPARSE_BINDING_BIT, creating this VkImage must not cause the total required sparse memory for all currently valid sparse resources on the device to exceed VkPhysicalDeviceLimits::sparseAddressSpaceSize" + "text": "If the flags member of pCreateInfo includes VK_IMAGE_CREATE_SPARSE_BINDING_BIT, and the extendedSparseAddressSpace feature is not enabled, creating this VkImage must not cause the total required sparse memory for all currently valid sparse resources on the device to exceed VkPhysicalDeviceLimits::sparseAddressSpaceSize", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCreateImage-flags-09385", + "text": "If the flags member of pCreateInfo includes VK_IMAGE_CREATE_SPARSE_BINDING_BIT, the extendedSparseAddressSpace feature is enabled, and the usage member of pCreateInfo contains bits not in VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV::extendedSparseImageUsageFlags, creating this VkImage must not cause the total required sparse memory for all currently valid sparse resources on the device, excluding VkBuffer created with usage member of pCreateInfo containing bits in VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV::extendedSparseBufferUsageFlags and VkImage created with usage member of pCreateInfo containing bits in VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV::extendedSparseImageUsageFlags, to exceed VkPhysicalDeviceLimits::sparseAddressSpaceSize", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCreateImage-flags-09386", + "text": "If the flags member of pCreateInfo includes VK_IMAGE_CREATE_SPARSE_BINDING_BIT and the extendedSparseAddressSpace feature is enabled, creating this VkImage must not cause the total required sparse memory for all currently valid sparse resources on the device to exceed VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV::extendedSparseAddressSpaceSize", + "page": "vkspec" }, { "vuid": "VUID-vkCreateImage-pNext-06389", - "text": " If a VkBufferCollectionImageCreateInfoFUCHSIA has been chained to pNext, pCreateInfo must match the Sysmem chosen VkImageCreateInfo excepting members VkImageCreateInfo::extent and VkImageCreateInfo::usage in the match criteria" + "text": "If a VkBufferCollectionImageCreateInfoFUCHSIA has been chained to pNext, pCreateInfo must match the Sysmem chosen VkImageCreateInfo excepting members VkImageCreateInfo::extent and VkImageCreateInfo::usage in the match criteria", + "page": "vkspec" }, { "vuid": "VUID-vkCreateImage-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkCreateImage-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkImageCreateInfo structure" + "text": "pCreateInfo must be a valid pointer to a valid VkImageCreateInfo structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateImage-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateImage-pImage-parameter", - "text": " pImage must be a valid pointer to a VkImage handle" + "text": "pImage must be a valid pointer to a VkImage handle", + "page": "vkspec" } ] }, @@ -16842,527 +21022,658 @@ "core": [ { "vuid": "VUID-VkImageCreateInfo-imageCreateMaxMipLevels-02251", - "text": " Each of the following values (as described in Image Creation Limits) must not be undefined : imageCreateMaxMipLevels, imageCreateMaxArrayLayers, imageCreateMaxExtent, and imageCreateSampleCounts" + "text": "Each of the following values (as described in Image Creation Limits) must not be undefined : imageCreateMaxMipLevels, imageCreateMaxArrayLayers, imageCreateMaxExtent, and imageCreateSampleCounts", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-sharingMode-00941", - "text": " If sharingMode is VK_SHARING_MODE_CONCURRENT, pQueueFamilyIndices must be a valid pointer to an array of queueFamilyIndexCount uint32_t values" + "text": "If sharingMode is VK_SHARING_MODE_CONCURRENT, pQueueFamilyIndices must be a valid pointer to an array of queueFamilyIndexCount uint32_t values", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-sharingMode-00942", - "text": " If sharingMode is VK_SHARING_MODE_CONCURRENT, queueFamilyIndexCount must be greater than 1" + "text": "If sharingMode is VK_SHARING_MODE_CONCURRENT, queueFamilyIndexCount must be greater than 1", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-sharingMode-01420", - "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" + "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": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-pNext-01974", - "text": " If the pNext chain includes a VkExternalFormatANDROID structure, and its externalFormat member is non-zero the format must be VK_FORMAT_UNDEFINED" + "text": "If the pNext chain includes a VkExternalFormatANDROID structure, and its externalFormat member is non-zero the format must be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-pNext-01975", - "text": " If the pNext chain does not include a VkExternalFormatANDROID structure, or does and its externalFormat member is 0, the format must not be VK_FORMAT_UNDEFINED" + "text": "If the pNext chain does not include a VkExternalFormatANDROID structure, or does and its externalFormat member is 0, the format must not be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-extent-00944", - "text": " extent.width must be greater than 0" + "text": "extent.width must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-extent-00945", - "text": " extent.height must be greater than 0" + "text": "extent.height must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-extent-00946", - "text": " extent.depth must be greater than 0" + "text": "extent.depth must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-mipLevels-00947", - "text": " mipLevels must be greater than 0" + "text": "mipLevels must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-arrayLayers-00948", - "text": " arrayLayers must be greater than 0" + "text": "arrayLayers must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-flags-00949", - "text": " If flags contains VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT, imageType must be VK_IMAGE_TYPE_2D" + "text": "If flags contains VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT, imageType must be VK_IMAGE_TYPE_2D", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-flags-08865", - "text": " If flags contains VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT, extent.width and extent.height must be equal" + "text": "If flags contains VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT, extent.width and extent.height must be equal", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-flags-08866", - "text": " If flags contains VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT, arrayLayers must be greater than or equal to 6" + "text": "If flags contains VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT, arrayLayers must be greater than or equal to 6", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-flags-02557", - "text": " If flags contains VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT, imageType must be VK_IMAGE_TYPE_2D" + "text": "If flags contains VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT, imageType must be VK_IMAGE_TYPE_2D", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-flags-00950", - "text": " If flags contains VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT, imageType must be VK_IMAGE_TYPE_3D" + "text": "If flags contains VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT, imageType must be VK_IMAGE_TYPE_3D", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-flags-07755", - "text": " If flags contains VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT, imageType must be VK_IMAGE_TYPE_3D" + "text": "If flags contains VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT, imageType must be VK_IMAGE_TYPE_3D", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-extent-02252", - "text": " extent.width must be less than or equal to imageCreateMaxExtent.width (as defined in Image Creation Limits)" + "text": "extent.width must be less than or equal to imageCreateMaxExtent.width (as defined in Image Creation Limits)", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-extent-02253", - "text": " extent.height must be less than or equal to imageCreateMaxExtent.height (as defined in Image Creation Limits)" + "text": "extent.height must be less than or equal to imageCreateMaxExtent.height (as defined in Image Creation Limits)", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-extent-02254", - "text": " extent.depth must be less than or equal to imageCreateMaxExtent.depth (as defined in Image Creation Limits)" + "text": "extent.depth must be less than or equal to imageCreateMaxExtent.depth (as defined in Image Creation Limits)", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-imageType-00956", - "text": " If imageType is VK_IMAGE_TYPE_1D, both extent.height and extent.depth must be 1" + "text": "If imageType is VK_IMAGE_TYPE_1D, both extent.height and extent.depth must be 1", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-imageType-00957", - "text": " If imageType is VK_IMAGE_TYPE_2D, extent.depth must be 1" + "text": "If imageType is VK_IMAGE_TYPE_2D, extent.depth must be 1", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-mipLevels-00958", - "text": " mipLevels must be less than or equal to the number of levels in the complete mipmap chain based on extent.width, extent.height, and extent.depth" + "text": "mipLevels must be less than or equal to the number of levels in the complete mipmap chain based on extent.width, extent.height, and extent.depth", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-mipLevels-02255", - "text": " mipLevels must be less than or equal to imageCreateMaxMipLevels (as defined in Image Creation Limits)" + "text": "mipLevels must be less than or equal to imageCreateMaxMipLevels (as defined in Image Creation Limits)", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-arrayLayers-02256", - "text": " arrayLayers must be less than or equal to imageCreateMaxArrayLayers (as defined in Image Creation Limits)" + "text": "arrayLayers must be less than or equal to imageCreateMaxArrayLayers (as defined in Image Creation Limits)", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-imageType-00961", - "text": " If imageType is VK_IMAGE_TYPE_3D, arrayLayers must be 1" + "text": "If imageType is VK_IMAGE_TYPE_3D, arrayLayers must be 1", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-samples-02257", - "text": " If samples is not VK_SAMPLE_COUNT_1_BIT, then imageType must be VK_IMAGE_TYPE_2D, flags must not contain VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT, mipLevels must be equal to 1, and imageCreateMaybeLinear (as defined in Image Creation Limits) must be VK_FALSE," + "text": "If samples is not VK_SAMPLE_COUNT_1_BIT, then imageType must be VK_IMAGE_TYPE_2D, flags must not contain VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT, mipLevels must be equal to 1, and imageCreateMaybeLinear (as defined in Image Creation Limits) must be VK_FALSE,", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-samples-02558", - "text": " If samples is not VK_SAMPLE_COUNT_1_BIT, usage must not contain VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT" + "text": "If samples is not VK_SAMPLE_COUNT_1_BIT, usage must not contain VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-usage-00963", - "text": " If usage includes VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, then bits other than VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, and VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT must not be set" + "text": "If usage includes VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, then bits other than VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, and VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT must not be set", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-usage-00964", - "text": " If usage includes VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, extent.width must be less than or equal to VkPhysicalDeviceLimits::maxFramebufferWidth" + "text": "If usage includes VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, extent.width must be less than or equal to VkPhysicalDeviceLimits::maxFramebufferWidth", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-usage-00965", - "text": " If usage includes VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, extent.height must be less than or equal to VkPhysicalDeviceLimits::maxFramebufferHeight" + "text": "If usage includes VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, extent.height must be less than or equal to VkPhysicalDeviceLimits::maxFramebufferHeight", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-fragmentDensityMapOffset-06514", - "text": " If the fragmentDensityMapOffset feature is not enabled and usage includes VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT, extent.width must be less than or equal to \\(\\left\\lceil{\\frac{maxFramebufferWidth}{minFragmentDensityTexelSize_{width}}}\\right\\rceil\\)" + "text": "If the fragmentDensityMapOffset feature is not enabled and usage includes VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT, extent.width must be less than or equal to \\(\\left\\lceil{\\frac{maxFramebufferWidth}{minFragmentDensityTexelSize_{width}}}\\right\\rceil\\)", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-fragmentDensityMapOffset-06515", - "text": " If the fragmentDensityMapOffset feature is not enabled and usage includes VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT, extent.height must be less than or equal to \\(\\left\\lceil{\\frac{maxFramebufferHeight}{minFragmentDensityTexelSize_{height}}}\\right\\rceil\\)" + "text": "If the fragmentDensityMapOffset feature is not enabled and usage includes VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT, extent.height must be less than or equal to \\(\\left\\lceil{\\frac{maxFramebufferHeight}{minFragmentDensityTexelSize_{height}}}\\right\\rceil\\)", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-usage-00966", - "text": " If usage includes VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, usage must also contain at least one of VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT" + "text": "If usage includes VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, usage must also contain at least one of VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-samples-02258", - "text": " samples must be a bit value that is set in imageCreateSampleCounts (as defined in Image Creation Limits)" + "text": "samples must be a bit value that is set in imageCreateSampleCounts (as defined in Image Creation Limits)", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-usage-00968", - "text": " If the shaderStorageImageMultisample feature is not enabled, and usage contains VK_IMAGE_USAGE_STORAGE_BIT, samples must be VK_SAMPLE_COUNT_1_BIT" + "text": "If the shaderStorageImageMultisample feature is not enabled, and usage contains VK_IMAGE_USAGE_STORAGE_BIT, samples must be VK_SAMPLE_COUNT_1_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-flags-00969", - "text": " If the sparseBinding feature is not enabled, flags must not contain VK_IMAGE_CREATE_SPARSE_BINDING_BIT" + "text": "If the sparseBinding feature is not enabled, flags must not contain VK_IMAGE_CREATE_SPARSE_BINDING_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-flags-01924", - "text": " If the sparseResidencyAliased feature is not enabled, flags must not contain VK_IMAGE_CREATE_SPARSE_ALIASED_BIT" + "text": "If the sparseResidencyAliased feature is not enabled, flags must not contain VK_IMAGE_CREATE_SPARSE_ALIASED_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-tiling-04121", - "text": " If tiling is VK_IMAGE_TILING_LINEAR, flags must not contain VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT" + "text": "If tiling is VK_IMAGE_TILING_LINEAR, flags must not contain VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-imageType-00970", - "text": " If imageType is VK_IMAGE_TYPE_1D, flags must not contain VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT" + "text": "If imageType is VK_IMAGE_TYPE_1D, flags must not contain VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-imageType-00971", - "text": " If the sparseResidencyImage2D feature is not enabled, and imageType is VK_IMAGE_TYPE_2D, flags must not contain VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT" + "text": "If the sparseResidencyImage2D feature is not enabled, and imageType is VK_IMAGE_TYPE_2D, flags must not contain VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-imageType-00972", - "text": " If the sparseResidencyImage3D feature is not enabled, and imageType is VK_IMAGE_TYPE_3D, flags must not contain VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT" + "text": "If the sparseResidencyImage3D feature is not enabled, and imageType is VK_IMAGE_TYPE_3D, flags must not contain VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-imageType-00973", - "text": " If the sparseResidency2Samples feature is not enabled, imageType is VK_IMAGE_TYPE_2D, and samples is VK_SAMPLE_COUNT_2_BIT, flags must not contain VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT" + "text": "If the sparseResidency2Samples feature is not enabled, imageType is VK_IMAGE_TYPE_2D, and samples is VK_SAMPLE_COUNT_2_BIT, flags must not contain VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-imageType-00974", - "text": " If the sparseResidency4Samples feature is not enabled, imageType is VK_IMAGE_TYPE_2D, and samples is VK_SAMPLE_COUNT_4_BIT, flags must not contain VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT" + "text": "If the sparseResidency4Samples feature is not enabled, imageType is VK_IMAGE_TYPE_2D, and samples is VK_SAMPLE_COUNT_4_BIT, flags must not contain VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-imageType-00975", - "text": " If the sparseResidency8Samples feature is not enabled, imageType is VK_IMAGE_TYPE_2D, and samples is VK_SAMPLE_COUNT_8_BIT, flags must not contain VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT" + "text": "If the sparseResidency8Samples feature is not enabled, imageType is VK_IMAGE_TYPE_2D, and samples is VK_SAMPLE_COUNT_8_BIT, flags must not contain VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-imageType-00976", - "text": " If the sparseResidency16Samples feature is not enabled, imageType is VK_IMAGE_TYPE_2D, and samples is VK_SAMPLE_COUNT_16_BIT, flags must not contain VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT" + "text": "If the sparseResidency16Samples feature is not enabled, imageType is VK_IMAGE_TYPE_2D, and samples is VK_SAMPLE_COUNT_16_BIT, flags must not contain VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-flags-00987", - "text": " If flags contains VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT or VK_IMAGE_CREATE_SPARSE_ALIASED_BIT, it must also contain VK_IMAGE_CREATE_SPARSE_BINDING_BIT" + "text": "If flags contains VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT or VK_IMAGE_CREATE_SPARSE_ALIASED_BIT, it must also contain VK_IMAGE_CREATE_SPARSE_BINDING_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-None-01925", - "text": " If any of the bits VK_IMAGE_CREATE_SPARSE_BINDING_BIT, VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT, or VK_IMAGE_CREATE_SPARSE_ALIASED_BIT are set, VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT must not also be set" + "text": "If any of the bits VK_IMAGE_CREATE_SPARSE_BINDING_BIT, VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT, or VK_IMAGE_CREATE_SPARSE_ALIASED_BIT are set, VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT must not also be set", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-flags-01890", - "text": " If the protectedMemory feature is not enabled, flags must not contain VK_IMAGE_CREATE_PROTECTED_BIT" + "text": "If the protectedMemory feature is not enabled, flags must not contain VK_IMAGE_CREATE_PROTECTED_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-None-01891", - "text": " If any of the bits VK_IMAGE_CREATE_SPARSE_BINDING_BIT, VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT, or VK_IMAGE_CREATE_SPARSE_ALIASED_BIT are set, VK_IMAGE_CREATE_PROTECTED_BIT must not also be set" + "text": "If any of the bits VK_IMAGE_CREATE_SPARSE_BINDING_BIT, VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT, or VK_IMAGE_CREATE_SPARSE_ALIASED_BIT are set, VK_IMAGE_CREATE_PROTECTED_BIT must not also be set", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-pNext-00988", - "text": " If the pNext chain includes a VkExternalMemoryImageCreateInfoNV structure, it must not contain a VkExternalMemoryImageCreateInfo structure" + "text": "If the pNext chain includes a VkExternalMemoryImageCreateInfoNV structure, it must not contain a VkExternalMemoryImageCreateInfo structure", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-pNext-00990", - "text": " If the pNext chain includes a VkExternalMemoryImageCreateInfo structure, its handleTypes member must only contain bits that are also in VkExternalImageFormatProperties::externalMemoryProperties.compatibleHandleTypes, as returned by vkGetPhysicalDeviceImageFormatProperties2 with format, imageType, tiling, usage, and flags equal to those in this structure, and with a VkPhysicalDeviceExternalImageFormatInfo structure included in the pNext chain, with a handleType equal to any one of the handle types specified in VkExternalMemoryImageCreateInfo::handleTypes" + "text": "If the pNext chain includes a VkExternalMemoryImageCreateInfo structure, its handleTypes member must only contain bits that are also in VkExternalImageFormatProperties::externalMemoryProperties.compatibleHandleTypes, as returned by vkGetPhysicalDeviceImageFormatProperties2 with format, imageType, tiling, usage, and flags equal to those in this structure, and with a VkPhysicalDeviceExternalImageFormatInfo structure included in the pNext chain, with a handleType equal to any one of the handle types specified in VkExternalMemoryImageCreateInfo::handleTypes", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-pNext-00991", - "text": " If the pNext chain includes a VkExternalMemoryImageCreateInfoNV structure, its handleTypes member must only contain bits that are also in VkExternalImageFormatPropertiesNV::externalMemoryProperties.compatibleHandleTypes, as returned by vkGetPhysicalDeviceExternalImageFormatPropertiesNV with format, imageType, tiling, usage, and flags equal to those in this structure, and with externalHandleType equal to any one of the handle types specified in VkExternalMemoryImageCreateInfoNV::handleTypes" + "text": "If the pNext chain includes a VkExternalMemoryImageCreateInfoNV structure, its handleTypes member must only contain bits that are also in VkExternalImageFormatPropertiesNV::externalMemoryProperties.compatibleHandleTypes, as returned by vkGetPhysicalDeviceExternalImageFormatPropertiesNV with format, imageType, tiling, usage, and flags equal to those in this structure, and with externalHandleType equal to any one of the handle types specified in VkExternalMemoryImageCreateInfoNV::handleTypes", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-physicalDeviceCount-01421", - "text": " If the logical device was created with VkDeviceGroupDeviceCreateInfo::physicalDeviceCount equal to 1, flags must not contain VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT" + "text": "If the logical device was created with VkDeviceGroupDeviceCreateInfo::physicalDeviceCount equal to 1, flags must not contain VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-flags-02259", - "text": " If flags contains VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT, then mipLevels must be one, arrayLayers must be one, imageType must be VK_IMAGE_TYPE_2D. and imageCreateMaybeLinear (as defined in Image Creation Limits) must be VK_FALSE" + "text": "If flags contains VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT, then mipLevels must be one, arrayLayers must be one, imageType must be VK_IMAGE_TYPE_2D. and imageCreateMaybeLinear (as defined in Image Creation Limits) must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-flags-01572", - "text": " If flags contains VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT, then format must be a compressed image format" + "text": "If flags contains VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT, then format must be a compressed image format", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-flags-01573", - "text": " If flags contains VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT, then flags must also contain VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT" + "text": "If flags contains VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT, then flags must also contain VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-initialLayout-00993", - "text": " initialLayout must be VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_PREINITIALIZED" + "text": "initialLayout must be VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_PREINITIALIZED", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-pNext-01443", - "text": " If the pNext chain includes a VkExternalMemoryImageCreateInfo or VkExternalMemoryImageCreateInfoNV structure whose handleTypes member is not 0, initialLayout must be VK_IMAGE_LAYOUT_UNDEFINED" + "text": "If the pNext chain includes a VkExternalMemoryImageCreateInfo or VkExternalMemoryImageCreateInfoNV structure whose handleTypes member is not 0, initialLayout must be VK_IMAGE_LAYOUT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-format-06410", - "text": " If the image format is one of the formats that require a sampler {YCbCr} conversion, mipLevels must be 1" + "text": "If the image format is one of the formats that require a sampler Y′CBCR conversion, mipLevels must be 1", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-format-06411", - "text": " If the image format is one of the formats that require a sampler {YCbCr} conversion, samples must be VK_SAMPLE_COUNT_1_BIT" + "text": "If the image format is one of the formats that require a sampler Y′CBCR conversion, samples must be VK_SAMPLE_COUNT_1_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-format-06412", - "text": " If the image format is one of the formats that require a sampler {YCbCr} conversion, imageType must be VK_IMAGE_TYPE_2D" + "text": "If the image format is one of the formats that require a sampler Y′CBCR conversion, imageType must be VK_IMAGE_TYPE_2D", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-imageCreateFormatFeatures-02260", - "text": " If format is a multi-planar format, and if imageCreateFormatFeatures (as defined in Image Creation Limits) does not contain VK_FORMAT_FEATURE_DISJOINT_BIT, then flags must not contain VK_IMAGE_CREATE_DISJOINT_BIT" + "text": "If format is a multi-planar format, and if imageCreateFormatFeatures (as defined in Image Creation Limits) does not contain VK_FORMAT_FEATURE_DISJOINT_BIT, then flags must not contain VK_IMAGE_CREATE_DISJOINT_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-format-01577", - "text": " If format is not a multi-planar format, and flags does not include VK_IMAGE_CREATE_ALIAS_BIT, flags must not contain VK_IMAGE_CREATE_DISJOINT_BIT" + "text": "If format is not a multi-planar format, and flags does not include VK_IMAGE_CREATE_ALIAS_BIT, flags must not contain VK_IMAGE_CREATE_DISJOINT_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-format-04712", - "text": " If format has a _422 or _420 suffix, width must be a multiple of 2" + "text": "If format has a _422 or _420 suffix, width must be a multiple of 2", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-format-04713", - "text": " If format has a _420 suffix, height must be a multiple of 2" + "text": "If format has a _420 suffix, height must be a multiple of 2", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-tiling-02261", - "text": " If tiling is VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, then the pNext chain must include exactly one of VkImageDrmFormatModifierListCreateInfoEXT or VkImageDrmFormatModifierExplicitCreateInfoEXT structures" + "text": "If tiling is VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, then the pNext chain must include exactly one of VkImageDrmFormatModifierListCreateInfoEXT or VkImageDrmFormatModifierExplicitCreateInfoEXT structures", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-pNext-02262", - "text": " If the pNext chain includes a VkImageDrmFormatModifierListCreateInfoEXT or VkImageDrmFormatModifierExplicitCreateInfoEXT structure, then tiling must be VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT" + "text": "If the pNext chain includes a VkImageDrmFormatModifierListCreateInfoEXT or VkImageDrmFormatModifierExplicitCreateInfoEXT structure, then tiling must be VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-tiling-02353", - "text": " If tiling is VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT and flags contains VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT, then the pNext chain must include a VkImageFormatListCreateInfo structure with non-zero viewFormatCount" + "text": "If tiling is VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT and flags contains VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT, then the pNext chain must include a VkImageFormatListCreateInfo structure with non-zero viewFormatCount", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-flags-01533", - "text": " If flags contains VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT format must be a depth or depth/stencil format" + "text": "If flags contains VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT format must be a depth or depth/stencil format", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-pNext-02393", - "text": " If the pNext chain includes a VkExternalMemoryImageCreateInfo structure whose handleTypes member includes VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID, imageType must be VK_IMAGE_TYPE_2D" + "text": "If the pNext chain includes a VkExternalMemoryImageCreateInfo structure whose handleTypes member includes VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID, imageType must be VK_IMAGE_TYPE_2D", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-pNext-02394", - "text": " If the pNext chain includes a VkExternalMemoryImageCreateInfo structure whose handleTypes member includes VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID, mipLevels must either be 1 or equal to the number of levels in the complete mipmap chain based on extent.width, extent.height, and extent.depth" + "text": "If the pNext chain includes a VkExternalMemoryImageCreateInfo structure whose handleTypes member includes VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID, mipLevels must either be 1 or equal to the number of levels in the complete mipmap chain based on extent.width, extent.height, and extent.depth", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-pNext-02396", - "text": " If the pNext chain includes a VkExternalFormatANDROID structure whose externalFormat member is not 0, flags must not include VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT" + "text": "If the pNext chain includes a VkExternalFormatANDROID structure whose externalFormat member is not 0, flags must not include VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-pNext-02397", - "text": " If the pNext chain includes a VkExternalFormatANDROID structure whose externalFormat member is not 0, usage must not include any usages except VK_IMAGE_USAGE_SAMPLED_BIT" + "text": "If the pNext chain includes a VkExternalFormatANDROID structure whose externalFormat member is not 0, usage must not include any usages except VK_IMAGE_USAGE_SAMPLED_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-pNext-02398", - "text": " If the pNext chain includes a VkExternalFormatANDROID structure whose externalFormat member is not 0, tiling must be VK_IMAGE_TILING_OPTIMAL" + "text": "If the pNext chain includes a VkExternalFormatANDROID structure whose externalFormat member is not 0, tiling must be VK_IMAGE_TILING_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-pNext-08951", - "text": " If the pNext chain includes a VkExternalMemoryImageCreateInfo structure whose handleTypes member includes VK_EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX, imageType must be VK_IMAGE_TYPE_2D" + "text": "If the pNext chain includes a VkExternalMemoryImageCreateInfo structure whose handleTypes member includes VK_EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX, imageType must be VK_IMAGE_TYPE_2D", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-pNext-08952", - "text": " If the pNext chain includes a VkExternalMemoryImageCreateInfo structure whose handleTypes member includes VK_EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX, mipLevels must either be 1 or equal to the number of levels in the complete mipmap chain based on extent.width, extent.height, and extent.depth" + "text": "If the pNext chain includes a VkExternalMemoryImageCreateInfo structure whose handleTypes member includes VK_EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX, mipLevels must either be 1 or equal to the number of levels in the complete mipmap chain based on extent.width, extent.height, and extent.depth", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-pNext-08953", - "text": " If the pNext chain includes a VkExternalFormatQNX structure whose externalFormat member is not 0, flags must not include VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT" + "text": "If the pNext chain includes a VkExternalFormatQNX structure whose externalFormat member is not 0, flags must not include VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-pNext-08954", - "text": " If the pNext chain includes a VkExternalFormatQNX structure whose externalFormat member is not 0, usage must not include any usages except VK_IMAGE_USAGE_SAMPLED_BIT" + "text": "If the pNext chain includes a VkExternalFormatQNX structure whose externalFormat member is not 0, usage must not include any usages except VK_IMAGE_USAGE_SAMPLED_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-pNext-08955", - "text": " If the pNext chain includes a VkExternalFormatQNX structure whose externalFormat member is not 0, tiling must be VK_IMAGE_TILING_OPTIMAL" + "text": "If the pNext chain includes a VkExternalFormatQNX structure whose externalFormat member is not 0, tiling must be VK_IMAGE_TILING_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-format-02795", - "text": " If format is a depth-stencil format, usage includes VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, and the pNext chain includes a VkImageStencilUsageCreateInfo structure, then its VkImageStencilUsageCreateInfo::stencilUsage member must also include VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT" + "text": "If format is a depth-stencil format, usage includes VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, and the pNext chain includes a VkImageStencilUsageCreateInfo structure, then its VkImageStencilUsageCreateInfo::stencilUsage member must also include VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-format-02796", - "text": " If format is a depth-stencil format, usage does not include VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, and the pNext chain includes a VkImageStencilUsageCreateInfo structure, then its VkImageStencilUsageCreateInfo::stencilUsage member must also not include VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT" + "text": "If format is a depth-stencil format, usage does not include VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, and the pNext chain includes a VkImageStencilUsageCreateInfo structure, then its VkImageStencilUsageCreateInfo::stencilUsage member must also not include VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-format-02797", - "text": " If format is a depth-stencil format, usage includes VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, and the pNext chain includes a VkImageStencilUsageCreateInfo structure, then its VkImageStencilUsageCreateInfo::stencilUsage member must also include VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT" + "text": "If format is a depth-stencil format, usage includes VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, and the pNext chain includes a VkImageStencilUsageCreateInfo structure, then its VkImageStencilUsageCreateInfo::stencilUsage member must also include VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-format-02798", - "text": " If format is a depth-stencil format, usage does not include VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, and the pNext chain includes a VkImageStencilUsageCreateInfo structure, then its VkImageStencilUsageCreateInfo::stencilUsage member must also not include VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT" + "text": "If format is a depth-stencil format, usage does not include VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, and the pNext chain includes a VkImageStencilUsageCreateInfo structure, then its VkImageStencilUsageCreateInfo::stencilUsage member must also not include VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-Format-02536", - "text": " If Format is a depth-stencil format and the pNext chain includes a VkImageStencilUsageCreateInfo structure with its stencilUsage member including VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, extent.width must be less than or equal to VkPhysicalDeviceLimits::maxFramebufferWidth" + "text": "If Format is a depth-stencil format and the pNext chain includes a VkImageStencilUsageCreateInfo structure with its stencilUsage member including VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, extent.width must be less than or equal to VkPhysicalDeviceLimits::maxFramebufferWidth", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-format-02537", - "text": " If format is a depth-stencil format and the pNext chain includes a VkImageStencilUsageCreateInfo structure with its stencilUsage member including VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, extent.height must be less than or equal to VkPhysicalDeviceLimits::maxFramebufferHeight" + "text": "If format is a depth-stencil format and the pNext chain includes a VkImageStencilUsageCreateInfo structure with its stencilUsage member including VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, extent.height must be less than or equal to VkPhysicalDeviceLimits::maxFramebufferHeight", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-format-02538", - "text": " If the shaderStorageImageMultisample feature is not enabled, format is a depth-stencil format and the pNext chain includes a VkImageStencilUsageCreateInfo structure with its stencilUsage including VK_IMAGE_USAGE_STORAGE_BIT, samples must be VK_SAMPLE_COUNT_1_BIT" + "text": "If the shaderStorageImageMultisample feature is not enabled, format is a depth-stencil format and the pNext chain includes a VkImageStencilUsageCreateInfo structure with its stencilUsage including VK_IMAGE_USAGE_STORAGE_BIT, samples must be VK_SAMPLE_COUNT_1_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-flags-02050", - "text": " If flags contains VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV, imageType must be VK_IMAGE_TYPE_2D or VK_IMAGE_TYPE_3D" + "text": "If flags contains VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV, imageType must be VK_IMAGE_TYPE_2D or VK_IMAGE_TYPE_3D", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-flags-02051", - "text": " If flags contains VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV, it must not contain VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT and the format must not be a depth/stencil format" + "text": "If flags contains VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV, it must not contain VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT and the format must not be a depth/stencil format", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-flags-02052", - "text": " If flags contains VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV and imageType is VK_IMAGE_TYPE_2D, extent.width and extent.height must be greater than 1" + "text": "If flags contains VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV and imageType is VK_IMAGE_TYPE_2D, extent.width and extent.height must be greater than 1", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-flags-02053", - "text": " If flags contains VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV and imageType is VK_IMAGE_TYPE_3D, extent.width, extent.height, and extent.depth must be greater than 1" + "text": "If flags contains VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV and imageType is VK_IMAGE_TYPE_3D, extent.width, extent.height, and extent.depth must be greater than 1", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-imageType-02082", - "text": " If usage includes VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, imageType must be VK_IMAGE_TYPE_2D" + "text": "If usage includes VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, imageType must be VK_IMAGE_TYPE_2D", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-samples-02083", - "text": " If usage includes VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, samples must be VK_SAMPLE_COUNT_1_BIT" + "text": "If usage includes VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, samples must be VK_SAMPLE_COUNT_1_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-shadingRateImage-07727", - "text": " If the shadingRateImage feature is enabled and usage includes VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV, tiling must be VK_IMAGE_TILING_OPTIMAL" + "text": "If the shadingRateImage feature is enabled and usage includes VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV, tiling must be VK_IMAGE_TILING_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-flags-02565", - "text": " If flags contains VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT, tiling must be VK_IMAGE_TILING_OPTIMAL" + "text": "If flags contains VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT, tiling must be VK_IMAGE_TILING_OPTIMAL", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-flags-02566", - "text": " If flags contains VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT, imageType must be VK_IMAGE_TYPE_2D" + "text": "If flags contains VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT, imageType must be VK_IMAGE_TYPE_2D", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-flags-02567", - "text": " If flags contains VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT, flags must not contain VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT" + "text": "If flags contains VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT, flags must not contain VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-flags-02568", - "text": " If flags contains VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT, mipLevels must be 1" + "text": "If flags contains VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT, mipLevels must be 1", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-usage-04992", - "text": " If usage includes VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI, tiling must be VK_IMAGE_TILING_LINEAR" + "text": "If usage includes VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI, tiling must be VK_IMAGE_TILING_LINEAR", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-imageView2DOn3DImage-04459", - "text": " If the VK_KHR_portability_subset extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::imageView2DOn3DImage is VK_FALSE, flags must not contain VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT" + "text": "If the VK_KHR_portability_subset extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::imageView2DOn3DImage is VK_FALSE, flags must not contain VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-multisampleArrayImage-04460", - "text": " If the VK_KHR_portability_subset extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::multisampleArrayImage is VK_FALSE, and samples is not VK_SAMPLE_COUNT_1_BIT, then arrayLayers must be 1" + "text": "If the VK_KHR_portability_subset extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::multisampleArrayImage is VK_FALSE, and samples is not VK_SAMPLE_COUNT_1_BIT, then arrayLayers must be 1", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-pNext-06722", - "text": " If a VkImageFormatListCreateInfo structure was included in the pNext chain and VkImageFormatListCreateInfo::viewFormatCount is not zero, then each format in VkImageFormatListCreateInfo::pViewFormats must either be compatible with the format as described in the compatibility table or, if flags contains VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT, be an uncompressed format that is size-compatible with format" + "text": "If a VkImageFormatListCreateInfo structure was included in the pNext chain and VkImageFormatListCreateInfo::viewFormatCount is not zero, then each format in VkImageFormatListCreateInfo::pViewFormats must either be compatible with the format as described in the compatibility table or, if flags contains VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT, be an uncompressed format that is size-compatible with format", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-flags-04738", - "text": " If flags does not contain VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT and the pNext chain includes a VkImageFormatListCreateInfo structure, then VkImageFormatListCreateInfo::viewFormatCount must be 0 or 1" + "text": "If flags does not contain VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT and the pNext chain includes a VkImageFormatListCreateInfo structure, then VkImageFormatListCreateInfo::viewFormatCount must be 0 or 1", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-usage-04815", - "text": " If usage includes VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR, VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR, or VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR, then the pNext chain must include a VkVideoProfileListInfoKHR structure with profileCount greater than 0 and pProfiles including at least one VkVideoProfileInfoKHR structure with a videoCodecOperation member specifying a decode operation" + "text": "If usage includes VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR, VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR, or VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR, then the pNext chain must include a VkVideoProfileListInfoKHR structure with profileCount greater than 0 and pProfiles including at least one VkVideoProfileInfoKHR structure with a videoCodecOperation member specifying a decode operation", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-usage-04816", - "text": " If usage includes VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR, VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR, or VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR, then the pNext chain must include a VkVideoProfileListInfoKHR structure with profileCount greater than 0 and pProfiles including at least one VkVideoProfileInfoKHR structure with a videoCodecOperation member specifying an encode operation" + "text": "If usage includes VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR, VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR, or VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR, then the pNext chain must include a VkVideoProfileListInfoKHR structure with profileCount greater than 0 and pProfiles including at least one VkVideoProfileInfoKHR structure with a videoCodecOperation member specifying an encode operation", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-pNext-06811", - "text": " If the pNext chain includes a VkVideoProfileListInfoKHR structure with profileCount greater than 0, then supportedVideoFormat must be VK_TRUE" + "text": "If the pNext chain includes a VkVideoProfileListInfoKHR structure with profileCount greater than 0, then supportedVideoFormat must be VK_TRUE", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-pNext-06390", - "text": " If the VkImage is to be used to import memory from a VkBufferCollectionFUCHSIA, a VkBufferCollectionImageCreateInfoFUCHSIA structure must be chained to pNext" + "text": "If the VkImage is to be used to import memory from a VkBufferCollectionFUCHSIA, a VkBufferCollectionImageCreateInfoFUCHSIA structure must be chained to pNext", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-multisampledRenderToSingleSampled-06882", - "text": " If the multisampledRenderToSingleSampled feature is not enabled, flags must not contain VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT" + "text": "If the multisampledRenderToSingleSampled feature is not enabled, flags must not contain VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-flags-06883", - "text": " If flags contains VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT, samples must be VK_SAMPLE_COUNT_1_BIT" + "text": "If flags contains VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT, samples must be VK_SAMPLE_COUNT_1_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-pNext-06743", - "text": " If the pNext chain includes a VkImageCompressionControlEXT structure, format is a multi-planar format, and VkImageCompressionControlEXT::flags includes VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT, then VkImageCompressionControlEXT::compressionControlPlaneCount must be equal to the number of planes in format" + "text": "If the pNext chain includes a VkImageCompressionControlEXT structure, format is a multi-planar format, and VkImageCompressionControlEXT::flags includes VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT, then VkImageCompressionControlEXT::compressionControlPlaneCount must be equal to the number of planes in format", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-pNext-06744", - "text": " If the pNext chain includes a VkImageCompressionControlEXT structure, format is not a multi-planar format, and VkImageCompressionControlEXT::flags includes VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT, then VkImageCompressionControlEXT::compressionControlPlaneCount must be 1" + "text": "If the pNext chain includes a VkImageCompressionControlEXT structure, format is not a multi-planar format, and VkImageCompressionControlEXT::flags includes VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT, then VkImageCompressionControlEXT::compressionControlPlaneCount must be 1", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-pNext-06746", - "text": " If the pNext chain includes a VkImageCompressionControlEXT structure, it must not contain a VkImageDrmFormatModifierExplicitCreateInfoEXT structure" + "text": "If the pNext chain includes a VkImageCompressionControlEXT structure, it must not contain a VkImageDrmFormatModifierExplicitCreateInfoEXT structure", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-flags-08104", - "text": " If flags includes VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT, the descriptorBufferCaptureReplay feature must be enabled" + "text": "If flags includes VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT, the descriptorBufferCaptureReplay feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-pNext-08105", - "text": " If the pNext chain includes a VkOpaqueCaptureDescriptorDataCreateInfoEXT structure, flags must contain VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT" + "text": "If the pNext chain includes a VkOpaqueCaptureDescriptorDataCreateInfoEXT structure, flags must contain VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-pNext-06783", - "text": " If the pNext chain includes a VkExportMetalObjectCreateInfoEXT structure, its exportObjectType member must be either VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT or VK_EXPORT_METAL_OBJECT_TYPE_METAL_IOSURFACE_BIT_EXT" + "text": "If the pNext chain includes a VkExportMetalObjectCreateInfoEXT structure, its exportObjectType member must be either VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT or VK_EXPORT_METAL_OBJECT_TYPE_METAL_IOSURFACE_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-pNext-06784", - "text": " If the pNext chain includes a VkImportMetalTextureInfoEXT structure its plane member must be VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT, or VK_IMAGE_ASPECT_PLANE_2_BIT" + "text": "If the pNext chain includes a VkImportMetalTextureInfoEXT structure its plane member must be VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT, or VK_IMAGE_ASPECT_PLANE_2_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-pNext-06785", - "text": " If the pNext chain includes a VkImportMetalTextureInfoEXT structure and the image does not have a multi-planar format, then VkImportMetalTextureInfoEXT::plane must be VK_IMAGE_ASPECT_PLANE_0_BIT" + "text": "If the pNext chain includes a VkImportMetalTextureInfoEXT structure and the image does not have a multi-planar format, then VkImportMetalTextureInfoEXT::plane must be VK_IMAGE_ASPECT_PLANE_0_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-pNext-06786", - "text": " If the pNext chain includes a VkImportMetalTextureInfoEXT structure and the image has a multi-planar format with only two planes, then VkImportMetalTextureInfoEXT::plane must not be VK_IMAGE_ASPECT_PLANE_2_BIT" + "text": "If the pNext chain includes a VkImportMetalTextureInfoEXT structure and the image has a multi-planar format with only two planes, then VkImportMetalTextureInfoEXT::plane must not be VK_IMAGE_ASPECT_PLANE_2_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-imageCreateFormatFeatures-09048", - "text": " If imageCreateFormatFeatures (as defined in Image Creation Limits) does not contain VK_FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT_EXT, then usage must not contain VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT" + "text": "If imageCreateFormatFeatures (as defined in Image Creation Limits) does not contain VK_FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT_EXT, then usage must not contain VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-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 VkBufferCollectionImageCreateInfoFUCHSIA, VkDedicatedAllocationImageCreateInfoNV, VkExportMetalObjectCreateInfoEXT, VkExternalFormatANDROID, VkExternalFormatQNX, VkExternalMemoryImageCreateInfo, VkExternalMemoryImageCreateInfoNV, VkImageCompressionControlEXT, VkImageDrmFormatModifierExplicitCreateInfoEXT, VkImageDrmFormatModifierListCreateInfoEXT, VkImageFormatListCreateInfo, VkImageStencilUsageCreateInfo, VkImageSwapchainCreateInfoKHR, VkImportMetalIOSurfaceInfoEXT, VkImportMetalTextureInfoEXT, VkOpaqueCaptureDescriptorDataCreateInfoEXT, VkOpticalFlowImageFormatInfoNV, or VkVideoProfileListInfoKHR" + "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 VkBufferCollectionImageCreateInfoFUCHSIA, VkDedicatedAllocationImageCreateInfoNV, VkExportMetalObjectCreateInfoEXT, VkExternalFormatANDROID, VkExternalFormatQNX, VkExternalMemoryImageCreateInfo, VkExternalMemoryImageCreateInfoNV, VkImageCompressionControlEXT, VkImageDrmFormatModifierExplicitCreateInfoEXT, VkImageDrmFormatModifierListCreateInfoEXT, VkImageFormatListCreateInfo, VkImageStencilUsageCreateInfo, VkImageSwapchainCreateInfoKHR, VkImportMetalIOSurfaceInfoEXT, VkImportMetalTextureInfoEXT, VkOpaqueCaptureDescriptorDataCreateInfoEXT, VkOpticalFlowImageFormatInfoNV, or VkVideoProfileListInfoKHR", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique, with the exception of structures of type VkExportMetalObjectCreateInfoEXT or VkImportMetalTextureInfoEXT" + "text": "The sType value of each struct in the pNext chain must be unique, with the exception of structures of type VkExportMetalObjectCreateInfoEXT or VkImportMetalTextureInfoEXT", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-flags-parameter", - "text": " flags must be a valid combination of VkImageCreateFlagBits values" + "text": "flags must be a valid combination of VkImageCreateFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-imageType-parameter", - "text": " imageType must be a valid VkImageType value" + "text": "imageType must be a valid VkImageType value", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-format-parameter", - "text": " format must be a valid VkFormat value" + "text": "format must be a valid VkFormat value", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-samples-parameter", - "text": " samples must be a valid VkSampleCountFlagBits value" + "text": "samples must be a valid VkSampleCountFlagBits value", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-tiling-parameter", - "text": " tiling must be a valid VkImageTiling value" + "text": "tiling must be a valid VkImageTiling value", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-usage-parameter", - "text": " usage must be a valid combination of VkImageUsageFlagBits values" + "text": "usage must be a valid combination of VkImageUsageFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-usage-requiredbitmask", - "text": " usage must not be 0" + "text": "usage must not be 0", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-sharingMode-parameter", - "text": " sharingMode must be a valid VkSharingMode value" + "text": "sharingMode must be a valid VkSharingMode value", + "page": "vkspec" }, { "vuid": "VUID-VkImageCreateInfo-initialLayout-parameter", - "text": " initialLayout must be a valid VkImageLayout value" + "text": "initialLayout must be a valid VkImageLayout value", + "page": "vkspec" } ] }, @@ -17370,15 +21681,18 @@ "core": [ { "vuid": "VUID-VkBufferCollectionImageCreateInfoFUCHSIA-index-06391", - "text": " index must be less than VkBufferCollectionPropertiesFUCHSIA::bufferCount" + "text": "index must be less than VkBufferCollectionPropertiesFUCHSIA::bufferCount", + "page": "vkspec" }, { "vuid": "VUID-VkBufferCollectionImageCreateInfoFUCHSIA-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA" + "text": "sType must be VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA", + "page": "vkspec" }, { "vuid": "VUID-VkBufferCollectionImageCreateInfoFUCHSIA-collection-parameter", - "text": " collection must be a valid VkBufferCollectionFUCHSIA handle" + "text": "collection must be a valid VkBufferCollectionFUCHSIA handle", + "page": "vkspec" } ] }, @@ -17386,19 +21700,23 @@ "core": [ { "vuid": "VUID-VkImageStencilUsageCreateInfo-stencilUsage-02539", - "text": " If stencilUsage includes VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, it must not include bits other than VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT" + "text": "If stencilUsage includes VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, it must not include bits other than VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageStencilUsageCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkImageStencilUsageCreateInfo-stencilUsage-parameter", - "text": " stencilUsage must be a valid combination of VkImageUsageFlagBits values" + "text": "stencilUsage must be a valid combination of VkImageUsageFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkImageStencilUsageCreateInfo-stencilUsage-requiredbitmask", - "text": " stencilUsage must not be 0" + "text": "stencilUsage must not be 0", + "page": "vkspec" } ] }, @@ -17406,11 +21724,13 @@ "core": [ { "vuid": "VUID-VkDedicatedAllocationImageCreateInfoNV-dedicatedAllocation-00994", - "text": " If dedicatedAllocation is VK_TRUE, VkImageCreateInfo::flags must not include VK_IMAGE_CREATE_SPARSE_BINDING_BIT, VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT, or VK_IMAGE_CREATE_SPARSE_ALIASED_BIT" + "text": "If dedicatedAllocation is VK_TRUE, VkImageCreateInfo::flags must not include VK_IMAGE_CREATE_SPARSE_BINDING_BIT, VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT, or VK_IMAGE_CREATE_SPARSE_ALIASED_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkDedicatedAllocationImageCreateInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV" + "text": "sType must be VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV", + "page": "vkspec" } ] }, @@ -17418,11 +21738,13 @@ "core": [ { "vuid": "VUID-VkExternalMemoryImageCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkExternalMemoryImageCreateInfo-handleTypes-parameter", - "text": " handleTypes must be a valid combination of VkExternalMemoryHandleTypeFlagBits values" + "text": "handleTypes must be a valid combination of VkExternalMemoryHandleTypeFlagBits values", + "page": "vkspec" } ] }, @@ -17430,11 +21752,13 @@ "core": [ { "vuid": "VUID-VkExternalMemoryImageCreateInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV" + "text": "sType must be VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV", + "page": "vkspec" }, { "vuid": "VUID-VkExternalMemoryImageCreateInfoNV-handleTypes-parameter", - "text": " handleTypes must be a valid combination of VkExternalMemoryHandleTypeFlagBitsNV values" + "text": "handleTypes must be a valid combination of VkExternalMemoryHandleTypeFlagBitsNV values", + "page": "vkspec" } ] }, @@ -17442,11 +21766,13 @@ "core": [ { "vuid": "VUID-VkExternalFormatANDROID-externalFormat-01894", - "text": " externalFormat must be 0 or a value returned in the externalFormat member of VkAndroidHardwareBufferFormatPropertiesANDROID by an earlier call to vkGetAndroidHardwareBufferPropertiesANDROID" + "text": "externalFormat must be 0 or a value returned in the externalFormat member of VkAndroidHardwareBufferFormatPropertiesANDROID by an earlier call to vkGetAndroidHardwareBufferPropertiesANDROID", + "page": "vkspec" }, { "vuid": "VUID-VkExternalFormatANDROID-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID" + "text": "sType must be VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID", + "page": "vkspec" } ] }, @@ -17454,11 +21780,13 @@ "core": [ { "vuid": "VUID-VkExternalFormatQNX-externalFormat-08956", - "text": " externalFormat must be 0 or a value returned in the externalFormat member of VkScreenBufferFormatPropertiesQNX by an earlier call to vkGetScreenBufferPropertiesQNX" + "text": "externalFormat must be 0 or a value returned in the externalFormat member of VkScreenBufferFormatPropertiesQNX by an earlier call to vkGetScreenBufferPropertiesQNX", + "page": "vkspec" }, { "vuid": "VUID-VkExternalFormatQNX-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_QNX" + "text": "sType must be VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_QNX", + "page": "vkspec" } ] }, @@ -17466,15 +21794,18 @@ "core": [ { "vuid": "VUID-VkImageSwapchainCreateInfoKHR-swapchain-00995", - "text": " If swapchain is not VK_NULL_HANDLE, the fields of VkImageCreateInfo must match the implied image creation parameters of the swapchain" + "text": "If swapchain is not VK_NULL_HANDLE, the fields of VkImageCreateInfo must match the implied image creation parameters of the swapchain", + "page": "vkspec" }, { "vuid": "VUID-VkImageSwapchainCreateInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkImageSwapchainCreateInfoKHR-swapchain-parameter", - "text": " If swapchain is not VK_NULL_HANDLE, swapchain must be a valid VkSwapchainKHR handle" + "text": "If swapchain is not VK_NULL_HANDLE, swapchain must be a valid VkSwapchainKHR handle", + "page": "vkspec" } ] }, @@ -17482,11 +21813,13 @@ "core": [ { "vuid": "VUID-VkImageFormatListCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkImageFormatListCreateInfo-pViewFormats-parameter", - "text": " If viewFormatCount is not 0, pViewFormats must be a valid pointer to an array of viewFormatCount valid VkFormat values" + "text": "If viewFormatCount is not 0, pViewFormats must be a valid pointer to an array of viewFormatCount valid VkFormat values", + "page": "vkspec" } ] }, @@ -17494,19 +21827,23 @@ "core": [ { "vuid": "VUID-VkImageDrmFormatModifierListCreateInfoEXT-pDrmFormatModifiers-02263", - "text": " Each modifier in pDrmFormatModifiers must be compatible with the parameters in VkImageCreateInfo and its pNext chain, as determined by querying VkPhysicalDeviceImageFormatInfo2 extended with VkPhysicalDeviceImageDrmFormatModifierInfoEXT" + "text": "Each modifier in pDrmFormatModifiers must be compatible with the parameters in VkImageCreateInfo and its pNext chain, as determined by querying VkPhysicalDeviceImageFormatInfo2 extended with VkPhysicalDeviceImageDrmFormatModifierInfoEXT", + "page": "vkspec" }, { "vuid": "VUID-VkImageDrmFormatModifierListCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkImageDrmFormatModifierListCreateInfoEXT-pDrmFormatModifiers-parameter", - "text": " pDrmFormatModifiers must be a valid pointer to an array of drmFormatModifierCount uint64_t values" + "text": "pDrmFormatModifiers must be a valid pointer to an array of drmFormatModifierCount uint64_t values", + "page": "vkspec" }, { "vuid": "VUID-VkImageDrmFormatModifierListCreateInfoEXT-drmFormatModifierCount-arraylength", - "text": " drmFormatModifierCount must be greater than 0" + "text": "drmFormatModifierCount must be greater than 0", + "page": "vkspec" } ] }, @@ -17514,35 +21851,43 @@ "core": [ { "vuid": "VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-drmFormatModifier-02264", - "text": " drmFormatModifier must be compatible with the parameters in VkImageCreateInfo and its pNext chain, as determined by querying VkPhysicalDeviceImageFormatInfo2 extended with VkPhysicalDeviceImageDrmFormatModifierInfoEXT" + "text": "drmFormatModifier must be compatible with the parameters in VkImageCreateInfo and its pNext chain, as determined by querying VkPhysicalDeviceImageFormatInfo2 extended with VkPhysicalDeviceImageDrmFormatModifierInfoEXT", + "page": "vkspec" }, { "vuid": "VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-drmFormatModifierPlaneCount-02265", - "text": " drmFormatModifierPlaneCount must be equal to the VkDrmFormatModifierPropertiesEXT::drmFormatModifierPlaneCount associated with VkImageCreateInfo::format and drmFormatModifier, as found by querying VkDrmFormatModifierPropertiesListEXT" + "text": "drmFormatModifierPlaneCount must be equal to the VkDrmFormatModifierPropertiesEXT::drmFormatModifierPlaneCount associated with VkImageCreateInfo::format and drmFormatModifier, as found by querying VkDrmFormatModifierPropertiesListEXT", + "page": "vkspec" }, { "vuid": "VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-size-02267", - "text": " For each element of pPlaneLayouts, size must be 0" + "text": "For each element of pPlaneLayouts, size must be 0", + "page": "vkspec" }, { "vuid": "VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-arrayPitch-02268", - "text": " For each element of pPlaneLayouts, arrayPitch must be 0 if VkImageCreateInfo::arrayLayers is 1" + "text": "For each element of pPlaneLayouts, arrayPitch must be 0 if VkImageCreateInfo::arrayLayers is 1", + "page": "vkspec" }, { "vuid": "VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-depthPitch-02269", - "text": " For each element of pPlaneLayouts, depthPitch must be 0 if VkImageCreateInfo::extent.depth is 1" + "text": "For each element of pPlaneLayouts, depthPitch must be 0 if VkImageCreateInfo::extent.depth is 1", + "page": "vkspec" }, { "vuid": "VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-pPlaneLayouts-parameter", - "text": " pPlaneLayouts must be a valid pointer to an array of drmFormatModifierPlaneCount VkSubresourceLayout structures" + "text": "pPlaneLayouts must be a valid pointer to an array of drmFormatModifierPlaneCount VkSubresourceLayout structures", + "page": "vkspec" }, { "vuid": "VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-drmFormatModifierPlaneCount-arraylength", - "text": " drmFormatModifierPlaneCount must be greater than 0" + "text": "drmFormatModifierPlaneCount must be greater than 0", + "page": "vkspec" } ] }, @@ -17550,15 +21895,18 @@ "core": [ { "vuid": "VUID-VkImageCompressionControlEXT-flags-06747", - "text": " flags must be one of VK_IMAGE_COMPRESSION_DEFAULT_EXT, VK_IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT, VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT, or VK_IMAGE_COMPRESSION_DISABLED_EXT" + "text": "flags must be one of VK_IMAGE_COMPRESSION_DEFAULT_EXT, VK_IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT, VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT, or VK_IMAGE_COMPRESSION_DISABLED_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkImageCompressionControlEXT-flags-06748", - "text": " If flags includes VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT, pFixedRateFlags must not be NULL" + "text": "If flags includes VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT, pFixedRateFlags must not be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkImageCompressionControlEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT", + "page": "vkspec" } ] }, @@ -17566,7 +21914,8 @@ "core": [ { "vuid": "VUID-VkImageCompressionPropertiesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT", + "page": "vkspec" } ] }, @@ -17574,67 +21923,83 @@ "core": [ { "vuid": "VUID-vkGetImageSubresourceLayout-image-07790", - "text": " image must have been created with tiling equal to VK_IMAGE_TILING_LINEAR or VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT" + "text": "image must have been created with tiling equal to VK_IMAGE_TILING_LINEAR or VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkGetImageSubresourceLayout-aspectMask-00997", - "text": " The aspectMask member of pSubresource must only have a single bit set" + "text": "The aspectMask member of pSubresource must only have a single bit set", + "page": "vkspec" }, { "vuid": "VUID-vkGetImageSubresourceLayout-mipLevel-01716", - "text": " The mipLevel member of pSubresource must be less than the mipLevels specified in VkImageCreateInfo when image was created" + "text": "The mipLevel member of pSubresource must be less than the mipLevels specified in VkImageCreateInfo when image was created", + "page": "vkspec" }, { "vuid": "VUID-vkGetImageSubresourceLayout-arrayLayer-01717", - "text": " The arrayLayer member of pSubresource must be less than the arrayLayers specified in VkImageCreateInfo when image was created" + "text": "The arrayLayer member of pSubresource must be less than the arrayLayers specified in VkImageCreateInfo when image was created", + "page": "vkspec" }, { "vuid": "VUID-vkGetImageSubresourceLayout-format-08886", - "text": " If format of the image is a color format, tiling of the image is VK_IMAGE_TILING_LINEAR or VK_IMAGE_TILING_OPTIMAL, and does not have a multi-planar image format, the aspectMask member of pSubresource must be VK_IMAGE_ASPECT_COLOR_BIT" + "text": "If format of the image is a color format, tiling of the image is VK_IMAGE_TILING_LINEAR or VK_IMAGE_TILING_OPTIMAL, and does not have a multi-planar image format, the aspectMask member of pSubresource must be VK_IMAGE_ASPECT_COLOR_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkGetImageSubresourceLayout-format-04462", - "text": " If format of the image has a depth component, the aspectMask member of pSubresource must contain VK_IMAGE_ASPECT_DEPTH_BIT" + "text": "If format of the image has a depth component, the aspectMask member of pSubresource must contain VK_IMAGE_ASPECT_DEPTH_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkGetImageSubresourceLayout-format-04463", - "text": " If format of the image has a stencil component, the aspectMask member of pSubresource must contain VK_IMAGE_ASPECT_STENCIL_BIT" + "text": "If format of the image has a stencil component, the aspectMask member of pSubresource must contain VK_IMAGE_ASPECT_STENCIL_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkGetImageSubresourceLayout-format-04464", - "text": " If format of the image does not contain a stencil or depth component, the aspectMask member of pSubresource must not contain VK_IMAGE_ASPECT_DEPTH_BIT or VK_IMAGE_ASPECT_STENCIL_BIT" + "text": "If format of the image does not contain a stencil or depth component, the aspectMask member of pSubresource must not contain VK_IMAGE_ASPECT_DEPTH_BIT or VK_IMAGE_ASPECT_STENCIL_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkGetImageSubresourceLayout-tiling-08717", - "text": " If the tiling of the image is VK_IMAGE_TILING_LINEAR and has a multi-planar image format, then the aspectMask member of pSubresource must be a single valid multi-planar aspect mask" + "text": "If the tiling of the image is VK_IMAGE_TILING_LINEAR and has a multi-planar image format, then the aspectMask member of pSubresource must be a single valid multi-planar aspect mask bit", + "page": "vkspec" }, { "vuid": "VUID-vkGetImageSubresourceLayout-image-01895", - "text": " If image was created with the VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID external memory handle type, then image must be bound to memory" + "text": "If image was created with the VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID external memory handle type, then image must be bound to memory", + "page": "vkspec" }, { "vuid": "VUID-vkGetImageSubresourceLayout-tiling-02271", - "text": " If the tiling of the image is VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, then the aspectMask member of pSubresource must be VK_IMAGE_ASPECT_MEMORY_PLANE{ibit}BIT_EXT and the index i must be less than the VkDrmFormatModifierPropertiesEXT::drmFormatModifierPlaneCount associated with the image’s format and VkImageDrmFormatModifierPropertiesEXT::drmFormatModifier" + "text": "If the tiling of the image is VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, then the aspectMask member of pSubresource must be VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT and the index i must be less than the VkDrmFormatModifierPropertiesEXT::drmFormatModifierPlaneCount associated with the image’s format and VkImageDrmFormatModifierPropertiesEXT::drmFormatModifier", + "page": "vkspec" }, { "vuid": "VUID-vkGetImageSubresourceLayout-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetImageSubresourceLayout-image-parameter", - "text": " image must be a valid VkImage handle" + "text": "image must be a valid VkImage handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetImageSubresourceLayout-pSubresource-parameter", - "text": " pSubresource must be a valid pointer to a valid VkImageSubresource structure" + "text": "pSubresource must be a valid pointer to a valid VkImageSubresource structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetImageSubresourceLayout-pLayout-parameter", - "text": " pLayout must be a valid pointer to a VkSubresourceLayout structure" + "text": "pLayout must be a valid pointer to a VkSubresourceLayout structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetImageSubresourceLayout-image-parent", - "text": " image must have been created, allocated, or retrieved from device" + "text": "image must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -17642,11 +22007,13 @@ "core": [ { "vuid": "VUID-VkImageSubresource-aspectMask-parameter", - "text": " aspectMask must be a valid combination of VkImageAspectFlagBits values" + "text": "aspectMask must be a valid combination of VkImageAspectFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkImageSubresource-aspectMask-requiredbitmask", - "text": " aspectMask must not be 0" + "text": "aspectMask must not be 0", + "page": "vkspec" } ] }, @@ -17654,63 +22021,78 @@ "core": [ { "vuid": "VUID-vkGetImageSubresourceLayout2KHR-aspectMask-00997", - "text": " The aspectMask member of pSubresource must only have a single bit set" + "text": "The aspectMask member of pSubresource must only have a single bit set", + "page": "vkspec" }, { "vuid": "VUID-vkGetImageSubresourceLayout2KHR-mipLevel-01716", - "text": " The mipLevel member of pSubresource must be less than the mipLevels specified in VkImageCreateInfo when image was created" + "text": "The mipLevel member of pSubresource must be less than the mipLevels specified in VkImageCreateInfo when image was created", + "page": "vkspec" }, { "vuid": "VUID-vkGetImageSubresourceLayout2KHR-arrayLayer-01717", - "text": " The arrayLayer member of pSubresource must be less than the arrayLayers specified in VkImageCreateInfo when image was created" + "text": "The arrayLayer member of pSubresource must be less than the arrayLayers specified in VkImageCreateInfo when image was created", + "page": "vkspec" }, { "vuid": "VUID-vkGetImageSubresourceLayout2KHR-format-08886", - "text": " If format of the image is a color format, tiling of the image is VK_IMAGE_TILING_LINEAR or VK_IMAGE_TILING_OPTIMAL, and does not have a multi-planar image format, the aspectMask member of pSubresource must be VK_IMAGE_ASPECT_COLOR_BIT" + "text": "If format of the image is a color format, tiling of the image is VK_IMAGE_TILING_LINEAR or VK_IMAGE_TILING_OPTIMAL, and does not have a multi-planar image format, the aspectMask member of pSubresource must be VK_IMAGE_ASPECT_COLOR_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkGetImageSubresourceLayout2KHR-format-04462", - "text": " If format of the image has a depth component, the aspectMask member of pSubresource must contain VK_IMAGE_ASPECT_DEPTH_BIT" + "text": "If format of the image has a depth component, the aspectMask member of pSubresource must contain VK_IMAGE_ASPECT_DEPTH_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkGetImageSubresourceLayout2KHR-format-04463", - "text": " If format of the image has a stencil component, the aspectMask member of pSubresource must contain VK_IMAGE_ASPECT_STENCIL_BIT" + "text": "If format of the image has a stencil component, the aspectMask member of pSubresource must contain VK_IMAGE_ASPECT_STENCIL_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkGetImageSubresourceLayout2KHR-format-04464", - "text": " If format of the image does not contain a stencil or depth component, the aspectMask member of pSubresource must not contain VK_IMAGE_ASPECT_DEPTH_BIT or VK_IMAGE_ASPECT_STENCIL_BIT" + "text": "If format of the image does not contain a stencil or depth component, the aspectMask member of pSubresource must not contain VK_IMAGE_ASPECT_DEPTH_BIT or VK_IMAGE_ASPECT_STENCIL_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkGetImageSubresourceLayout2KHR-tiling-08717", - "text": " If the tiling of the image is VK_IMAGE_TILING_LINEAR and has a multi-planar image format, then the aspectMask member of pSubresource must be a single valid multi-planar aspect mask" + "text": "If the tiling of the image is VK_IMAGE_TILING_LINEAR and has a multi-planar image format, then the aspectMask member of pSubresource must be a single valid multi-planar aspect mask bit", + "page": "vkspec" }, { "vuid": "VUID-vkGetImageSubresourceLayout2KHR-image-01895", - "text": " If image was created with the VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID external memory handle type, then image must be bound to memory" + "text": "If image was created with the VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID external memory handle type, then image must be bound to memory", + "page": "vkspec" }, { "vuid": "VUID-vkGetImageSubresourceLayout2KHR-tiling-02271", - "text": " If the tiling of the image is VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, then the aspectMask member of pSubresource must be VK_IMAGE_ASPECT_MEMORY_PLANE{ibit}BIT_EXT and the index i must be less than the VkDrmFormatModifierPropertiesEXT::drmFormatModifierPlaneCount associated with the image’s format and VkImageDrmFormatModifierPropertiesEXT::drmFormatModifier" + "text": "If the tiling of the image is VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, then the aspectMask member of pSubresource must be VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT and the index i must be less than the VkDrmFormatModifierPropertiesEXT::drmFormatModifierPlaneCount associated with the image’s format and VkImageDrmFormatModifierPropertiesEXT::drmFormatModifier", + "page": "vkspec" }, { "vuid": "VUID-vkGetImageSubresourceLayout2KHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetImageSubresourceLayout2KHR-image-parameter", - "text": " image must be a valid VkImage handle" + "text": "image must be a valid VkImage handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetImageSubresourceLayout2KHR-pSubresource-parameter", - "text": " pSubresource must be a valid pointer to a valid VkImageSubresource2KHR structure" + "text": "pSubresource must be a valid pointer to a valid VkImageSubresource2KHR structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetImageSubresourceLayout2KHR-pLayout-parameter", - "text": " pLayout must be a valid pointer to a VkSubresourceLayout2KHR structure" + "text": "pLayout must be a valid pointer to a VkSubresourceLayout2KHR structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetImageSubresourceLayout2KHR-image-parent", - "text": " image must have been created, allocated, or retrieved from device" + "text": "image must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -17718,15 +22100,18 @@ "core": [ { "vuid": "VUID-VkImageSubresource2KHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkImageSubresource2KHR-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkImageSubresource2KHR-imageSubresource-parameter", - "text": " imageSubresource must be a valid VkImageSubresource structure" + "text": "imageSubresource must be a valid VkImageSubresource structure", + "page": "vkspec" } ] }, @@ -17734,15 +22119,18 @@ "core": [ { "vuid": "VUID-VkSubresourceLayout2KHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkSubresourceLayout2KHR-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 VkImageCompressionPropertiesEXT or VkSubresourceHostMemcpySizeEXT" + "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 VkImageCompressionPropertiesEXT or VkSubresourceHostMemcpySizeEXT", + "page": "vkspec" }, { "vuid": "VUID-VkSubresourceLayout2KHR-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" } ] }, @@ -17750,7 +22138,8 @@ "core": [ { "vuid": "VUID-VkSubresourceHostMemcpySizeEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT", + "page": "vkspec" } ] }, @@ -17758,15 +22147,18 @@ "core": [ { "vuid": "VUID-vkGetDeviceImageSubresourceLayoutKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetDeviceImageSubresourceLayoutKHR-pInfo-parameter", - "text": " pInfo must be a valid pointer to a valid VkDeviceImageSubresourceInfoKHR structure" + "text": "pInfo must be a valid pointer to a valid VkDeviceImageSubresourceInfoKHR structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetDeviceImageSubresourceLayoutKHR-pLayout-parameter", - "text": " pLayout must be a valid pointer to a VkSubresourceLayout2KHR structure" + "text": "pLayout must be a valid pointer to a VkSubresourceLayout2KHR structure", + "page": "vkspec" } ] }, @@ -17774,59 +22166,73 @@ "core": [ { "vuid": "VUID-VkDeviceImageSubresourceInfoKHR-aspectMask-00997", - "text": " The aspectMask member of pSubresource must only have a single bit set" + "text": "The aspectMask member of pSubresource must only have a single bit set", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceImageSubresourceInfoKHR-mipLevel-01716", - "text": " The mipLevel member of pSubresource must be less than the mipLevels specified in VkImageCreateInfo when image was created" + "text": "The mipLevel member of pSubresource must be less than the mipLevels specified in VkImageCreateInfo when image was created", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceImageSubresourceInfoKHR-arrayLayer-01717", - "text": " The arrayLayer member of pSubresource must be less than the arrayLayers specified in VkImageCreateInfo when image was created" + "text": "The arrayLayer member of pSubresource must be less than the arrayLayers specified in VkImageCreateInfo when image was created", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceImageSubresourceInfoKHR-format-08886", - "text": " If format of the image is a color format, tiling of the image is VK_IMAGE_TILING_LINEAR or VK_IMAGE_TILING_OPTIMAL, and does not have a multi-planar image format, the aspectMask member of pSubresource must be VK_IMAGE_ASPECT_COLOR_BIT" + "text": "If format of the image is a color format, tiling of the image is VK_IMAGE_TILING_LINEAR or VK_IMAGE_TILING_OPTIMAL, and does not have a multi-planar image format, the aspectMask member of pSubresource must be VK_IMAGE_ASPECT_COLOR_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceImageSubresourceInfoKHR-format-04462", - "text": " If format of the image has a depth component, the aspectMask member of pSubresource must contain VK_IMAGE_ASPECT_DEPTH_BIT" + "text": "If format of the image has a depth component, the aspectMask member of pSubresource must contain VK_IMAGE_ASPECT_DEPTH_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceImageSubresourceInfoKHR-format-04463", - "text": " If format of the image has a stencil component, the aspectMask member of pSubresource must contain VK_IMAGE_ASPECT_STENCIL_BIT" + "text": "If format of the image has a stencil component, the aspectMask member of pSubresource must contain VK_IMAGE_ASPECT_STENCIL_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceImageSubresourceInfoKHR-format-04464", - "text": " If format of the image does not contain a stencil or depth component, the aspectMask member of pSubresource must not contain VK_IMAGE_ASPECT_DEPTH_BIT or VK_IMAGE_ASPECT_STENCIL_BIT" + "text": "If format of the image does not contain a stencil or depth component, the aspectMask member of pSubresource must not contain VK_IMAGE_ASPECT_DEPTH_BIT or VK_IMAGE_ASPECT_STENCIL_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceImageSubresourceInfoKHR-tiling-08717", - "text": " If the tiling of the image is VK_IMAGE_TILING_LINEAR and has a multi-planar image format, then the aspectMask member of pSubresource must be a single valid multi-planar aspect mask" + "text": "If the tiling of the image is VK_IMAGE_TILING_LINEAR and has a multi-planar image format, then the aspectMask member of pSubresource must be a single valid multi-planar aspect mask bit", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceImageSubresourceInfoKHR-image-01895", - "text": " If image was created with the VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID external memory handle type, then image must be bound to memory" + "text": "If image was created with the VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID external memory handle type, then image must be bound to memory", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceImageSubresourceInfoKHR-tiling-02271", - "text": " If the tiling of the image is VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, then the aspectMask member of pSubresource must be VK_IMAGE_ASPECT_MEMORY_PLANE{ibit}BIT_EXT and the index i must be less than the VkDrmFormatModifierPropertiesEXT::drmFormatModifierPlaneCount associated with the image’s format and VkImageDrmFormatModifierPropertiesEXT::drmFormatModifier" + "text": "If the tiling of the image is VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, then the aspectMask member of pSubresource must be VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT and the index i must be less than the VkDrmFormatModifierPropertiesEXT::drmFormatModifierPlaneCount associated with the image’s format and VkImageDrmFormatModifierPropertiesEXT::drmFormatModifier", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceImageSubresourceInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceImageSubresourceInfoKHR-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceImageSubresourceInfoKHR-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkImageCreateInfo structure" + "text": "pCreateInfo must be a valid pointer to a valid VkImageCreateInfo structure", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceImageSubresourceInfoKHR-pSubresource-parameter", - "text": " pSubresource must be a valid pointer to a valid VkImageSubresource2KHR structure" + "text": "pSubresource must be a valid pointer to a valid VkImageSubresource2KHR structure", + "page": "vkspec" } ] }, @@ -17834,23 +22240,28 @@ "core": [ { "vuid": "VUID-vkGetImageDrmFormatModifierPropertiesEXT-image-02272", - "text": " image must have been created with tiling equal to VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT" + "text": "image must have been created with tiling equal to VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkGetImageDrmFormatModifierPropertiesEXT-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetImageDrmFormatModifierPropertiesEXT-image-parameter", - "text": " image must be a valid VkImage handle" + "text": "image must be a valid VkImage handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetImageDrmFormatModifierPropertiesEXT-pProperties-parameter", - "text": " pProperties must be a valid pointer to a VkImageDrmFormatModifierPropertiesEXT structure" + "text": "pProperties must be a valid pointer to a VkImageDrmFormatModifierPropertiesEXT structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetImageDrmFormatModifierPropertiesEXT-image-parent", - "text": " image must have been created, allocated, or retrieved from device" + "text": "image must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -17858,11 +22269,13 @@ "core": [ { "vuid": "VUID-VkImageDrmFormatModifierPropertiesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkImageDrmFormatModifierPropertiesEXT-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" } ] }, @@ -17870,35 +22283,43 @@ "core": [ { "vuid": "VUID-vkDestroyImage-image-01000", - "text": " All submitted commands that refer to image, either directly or via a VkImageView, must have completed execution" + "text": "All submitted commands that refer to image, either directly or via a VkImageView, must have completed execution", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyImage-image-01001", - "text": " If VkAllocationCallbacks were provided when image was created, a compatible set of callbacks must be provided here" + "text": "If VkAllocationCallbacks were provided when image was created, a compatible set of callbacks must be provided here", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyImage-image-01002", - "text": " If no VkAllocationCallbacks were provided when image was created, pAllocator must be NULL" + "text": "If no VkAllocationCallbacks were provided when image was created, pAllocator must be NULL", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyImage-image-04882", - "text": " image must not have been acquired from vkGetSwapchainImagesKHR" + "text": "image must not have been acquired from vkGetSwapchainImagesKHR", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyImage-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyImage-image-parameter", - "text": " If image is not VK_NULL_HANDLE, image must be a valid VkImage handle" + "text": "If image is not VK_NULL_HANDLE, image must be a valid VkImage handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyImage-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyImage-image-parent", - "text": " If image is a valid handle, it must have been created, allocated, or retrieved from device" + "text": "If image is a valid handle, it must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -17906,23 +22327,28 @@ "core": [ { "vuid": "VUID-vkCreateImageView-image-09179", - "text": " VkImageViewCreateInfo::image must have been created from device" + "text": "VkImageViewCreateInfo::image must have been created from device", + "page": "vkspec" }, { "vuid": "VUID-vkCreateImageView-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkCreateImageView-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkImageViewCreateInfo structure" + "text": "pCreateInfo must be a valid pointer to a valid VkImageViewCreateInfo structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateImageView-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateImageView-pView-parameter", - "text": " pView must be a valid pointer to a VkImageView handle" + "text": "pView must be a valid pointer to a VkImageView handle", + "page": "vkspec" } ] }, @@ -17930,363 +22356,453 @@ "core": [ { "vuid": "VUID-VkImageViewCreateInfo-image-01003", - "text": " If image was not created with VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT then viewType must not be VK_IMAGE_VIEW_TYPE_CUBE or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" + "text": "If image was not created with VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT then viewType must not be VK_IMAGE_VIEW_TYPE_CUBE or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-viewType-01004", - "text": " If the imageCubeArray feature is not enabled, viewType must not be VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" + "text": "If the imageCubeArray feature is not enabled, viewType must not be VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-image-06723", - "text": " If image was created with VK_IMAGE_TYPE_3D but without VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT set then viewType must not be VK_IMAGE_VIEW_TYPE_2D_ARRAY" + "text": "If image was created with VK_IMAGE_TYPE_3D but without VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT set then viewType must not be VK_IMAGE_VIEW_TYPE_2D_ARRAY", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-image-06728", - "text": " If image was created with VK_IMAGE_TYPE_3D but without VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT or VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT set, then viewType must not be VK_IMAGE_VIEW_TYPE_2D" + "text": "If image was created with VK_IMAGE_TYPE_3D but without VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT or VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT set, then viewType must not be VK_IMAGE_VIEW_TYPE_2D", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-image-04970", - "text": " If image was created with VK_IMAGE_TYPE_3D and viewType is VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY then subresourceRange.levelCount must be 1" + "text": "If image was created with VK_IMAGE_TYPE_3D and viewType is VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY then subresourceRange.levelCount must be 1", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-image-04971", - "text": " If image was created with VK_IMAGE_TYPE_3D and viewType is VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY then VkImageCreateInfo::flags must not contain any of VK_IMAGE_CREATE_SPARSE_BINDING_BIT, VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT, and VK_IMAGE_CREATE_SPARSE_ALIASED_BIT" + "text": "If image was created with VK_IMAGE_TYPE_3D and viewType is VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY then VkImageCreateInfo::flags must not contain any of VK_IMAGE_CREATE_SPARSE_BINDING_BIT, VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT, and VK_IMAGE_CREATE_SPARSE_ALIASED_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-image-04972", - "text": " If image was created with a samples value not equal to VK_SAMPLE_COUNT_1_BIT then viewType must be either VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY" + "text": "If image was created with a samples value not equal to VK_SAMPLE_COUNT_1_BIT then viewType must be either VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-image-04441", - "text": " image must have been created with a usage value containing at least one of the usages defined in the valid image usage list for image views" + "text": "image must have been created with a usage value containing at least one of the usages defined in the valid image usage list for image views", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-None-02273", - "text": " The format features of the resultant image view must contain at least one bit" + "text": "The format features of the resultant image view must contain at least one bit", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-usage-02274", - "text": " If usage contains VK_IMAGE_USAGE_SAMPLED_BIT, then the format features of the resultant image view must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT" + "text": "If usage contains VK_IMAGE_USAGE_SAMPLED_BIT, then the format features of the resultant image view must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-usage-02275", - "text": " If usage contains VK_IMAGE_USAGE_STORAGE_BIT, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT" + "text": "If usage contains VK_IMAGE_USAGE_STORAGE_BIT, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-usage-08931", - "text": " If usage contains VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, then the image view’s format features must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT or VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV" + "text": "If usage contains VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, then the image view’s format features must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT or VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-usage-02277", - "text": " If usage contains VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, then the image view’s format features must contain VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT" + "text": "If usage contains VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, then the image view’s format features must contain VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-usage-08932", - "text": " If usage contains VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, then the image view’s format features must contain at least one of VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT, VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT or, VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV" + "text": "If usage contains VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, and any of the following is true:
\n\n
\n
\n

then the image view’s format\n features must contain at least one of\n VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT or\n VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT\n or VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV

\n
", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-subresourceRange-01478", - "text": " subresourceRange.baseMipLevel must be less than the mipLevels specified in VkImageCreateInfo when image was created" + "text": "subresourceRange.baseMipLevel must be less than the mipLevels specified in VkImageCreateInfo when image was created", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-subresourceRange-01718", - "text": " If subresourceRange.levelCount is not VK_REMAINING_MIP_LEVELS, subresourceRange.baseMipLevel + subresourceRange.levelCount must be less than or equal to the mipLevels specified in VkImageCreateInfo when image was created" + "text": "If subresourceRange.levelCount is not VK_REMAINING_MIP_LEVELS, subresourceRange.baseMipLevel + subresourceRange.levelCount must be less than or equal to the mipLevels specified in VkImageCreateInfo when image was created", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-image-02571", - "text": " If image was created with usage containing VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT, subresourceRange.levelCount must be 1" + "text": "If image was created with usage containing VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT, subresourceRange.levelCount must be 1", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-image-06724", - "text": " If image is not a 3D image created with VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT or VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT set, or viewType is not VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY, subresourceRange.baseArrayLayer must be less than the arrayLayers specified in VkImageCreateInfo when image was created" + "text": "If image is not a 3D image created with VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT or VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT set, or viewType is not VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY, subresourceRange.baseArrayLayer must be less than the arrayLayers specified in VkImageCreateInfo when image was created", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-subresourceRange-06725", - "text": " If subresourceRange.layerCount is not VK_REMAINING_ARRAY_LAYERS, image is not a 3D image created with VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT or VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT set, or viewType is not VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY, subresourceRange.layerCount must be non-zero and subresourceRange.baseArrayLayer + subresourceRange.layerCount must be less than or equal to the arrayLayers specified in VkImageCreateInfo when image was created" + "text": "If subresourceRange.layerCount is not VK_REMAINING_ARRAY_LAYERS, image is not a 3D image created with VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT or VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT set, or viewType is not VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY, subresourceRange.layerCount must be non-zero and subresourceRange.baseArrayLayer + subresourceRange.layerCount must be less than or equal to the arrayLayers specified in VkImageCreateInfo when image was created", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-image-02724", - "text": " If image is a 3D image created with VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT set, and viewType is VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY, subresourceRange.baseArrayLayer must be less than the depth computed from baseMipLevel and extent.depth specified in VkImageCreateInfo when image was created, according to the formula defined in Image Mip Level Sizing" + "text": "If image is a 3D image created with VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT set, and viewType is VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY, subresourceRange.baseArrayLayer must be less than the depth computed from baseMipLevel and extent.depth specified in VkImageCreateInfo when image was created, according to the formula defined in Image Mip Level Sizing", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-subresourceRange-02725", - "text": " If subresourceRange.layerCount is not VK_REMAINING_ARRAY_LAYERS, image is a 3D image created with VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT set, and viewType is VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY, subresourceRange.layerCount must be non-zero and subresourceRange.baseArrayLayer + subresourceRange.layerCount must be less than or equal to the depth computed from baseMipLevel and extent.depth specified in VkImageCreateInfo when image was created, according to the formula defined in Image Mip Level Sizing" + "text": "If subresourceRange.layerCount is not VK_REMAINING_ARRAY_LAYERS, image is a 3D image created with VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT set, and viewType is VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY, subresourceRange.layerCount must be non-zero and subresourceRange.baseArrayLayer + subresourceRange.layerCount must be less than or equal to the depth computed from baseMipLevel and extent.depth specified in VkImageCreateInfo when image was created, according to the formula defined in Image Mip Level Sizing", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-image-01761", - "text": " If image was created with the VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT flag, but without the VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT flag, and if the format of the image is not a multi-planar format, format must be compatible with the format used to create image, as defined in Format Compatibility Classes" + "text": "If image was created with the VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT flag, but without the VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT flag, and if the format of the image is not a multi-planar format, format must be compatible with the format used to create image, as defined in Format Compatibility Classes", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-image-01583", - "text": " If image was created with the VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT flag, format must be compatible with, or must be an uncompressed format that is size-compatible with, the format used to create image" + "text": "If image was created with the VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT flag, format must be compatible with, or must be an uncompressed format that is size-compatible with, the format used to create image", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-image-07072", - "text": " If image was created with the VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT flag and format is a non-compressed format, the levelCount and layerCount members of subresourceRange must both be 1" + "text": "If image was created with the VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT flag and format is a non-compressed format, the levelCount and layerCount members of subresourceRange must both be 1", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-pNext-01585", - "text": " If a VkImageFormatListCreateInfo structure was included in the pNext chain of the VkImageCreateInfo structure used when creating image and VkImageFormatListCreateInfo::viewFormatCount is not zero then format must be one of the formats in VkImageFormatListCreateInfo::pViewFormats" + "text": "If a VkImageFormatListCreateInfo structure was included in the pNext chain of the VkImageCreateInfo structure used when creating image and VkImageFormatListCreateInfo::viewFormatCount is not zero then format must be one of the formats in VkImageFormatListCreateInfo::pViewFormats", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-image-01586", - "text": " If image was created with the VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT flag, if the format of the image is a multi-planar format, and if subresourceRange.aspectMask is one of the multi-planar aspect masks, then format must be compatible with the VkFormat for the plane of the image format indicated by subresourceRange.aspectMask, as defined in Compatible formats of planes of multi-planar formats" + "text": "If image was created with the VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT flag, if the format of the image is a multi-planar format, and if subresourceRange.aspectMask is one of the multi-planar aspect mask bits, then format must be compatible with the VkFormat for the plane of the image format indicated by subresourceRange.aspectMask, as defined in Compatible Formats of Planes of Multi-Planar Formats", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-subresourceRange-07818", - "text": " subresourceRange.aspectMask must only have at most 1 valid multi-planar aspect mask" + "text": "subresourceRange.aspectMask must only have at most 1 valid multi-planar aspect mask bit", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-image-01762", - "text": " If image was not created with the VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT flag, or if the format of the image is a multi-planar format and if subresourceRange.aspectMask is VK_IMAGE_ASPECT_COLOR_BIT, format must be identical to the format used to create image" + "text": "If image was not created with the VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT flag, or if the format of the image is a multi-planar format and if subresourceRange.aspectMask is VK_IMAGE_ASPECT_COLOR_BIT, format must be identical to the format used to create image", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-format-06415", - "text": " If the image view requires a sampler {YCbCr} conversion and usage contains VK_IMAGE_USAGE_SAMPLED_BIT, then the pNext chain must include a VkSamplerYcbcrConversionInfo structure with a conversion value other than VK_NULL_HANDLE" + "text": "If the image view requires a sampler Y′CBCR conversion and usage contains VK_IMAGE_USAGE_SAMPLED_BIT, then the pNext chain must include a VkSamplerYcbcrConversionInfo structure with a conversion value other than VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-format-04714", - "text": " If format has a _422 or _420 suffix then image must have been created with a width that is a multiple of 2" + "text": "If format has a _422 or _420 suffix then image must have been created with a width that is a multiple of 2", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-format-04715", - "text": " If format has a _420 suffix then image must have been created with a height that is a multiple of 2" + "text": "If format has a _420 suffix then image must have been created with a height that is a multiple of 2", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-pNext-01970", - "text": " If the pNext chain includes a VkSamplerYcbcrConversionInfo structure with a conversion value other than VK_NULL_HANDLE, all members of components must have the identity swizzle" + "text": "If the pNext chain includes a VkSamplerYcbcrConversionInfo structure with a conversion value other than VK_NULL_HANDLE, all members of components must have the identity swizzle", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-pNext-06658", - "text": " If the pNext chain includes a VkSamplerYcbcrConversionInfo structure with a conversion value other than VK_NULL_HANDLE, format must be the same used in VkSamplerYcbcrConversionCreateInfo::format" + "text": "If the pNext chain includes a VkSamplerYcbcrConversionInfo structure with a conversion value other than VK_NULL_HANDLE, format must be the same used in VkSamplerYcbcrConversionCreateInfo::format", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-image-01020", - "text": " If image is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If image is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-subResourceRange-01021", - "text": " viewType must be compatible with the type of image as shown in the view type compatibility table" + "text": "viewType must be compatible with the type of image as shown in the view type compatibility table", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-image-02399", - "text": " If image has an Android external format, format must be VK_FORMAT_UNDEFINED" + "text": "If image has an Android external format, format must be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-image-02400", - "text": " If image has an Android external format, the pNext chain must include a VkSamplerYcbcrConversionInfo structure with a conversion object created with the same external format as image" + "text": "If image has an Android external format, the pNext chain must include a VkSamplerYcbcrConversionInfo structure with a conversion object created with the same external format as image", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-image-02401", - "text": " If image has an Android external format, all members of components must be the identity swizzle" + "text": "If image has an Android external format, all members of components must be the identity swizzle", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-image-08957", - "text": " If image has an QNX Screen external format, format must be VK_FORMAT_UNDEFINED" + "text": "If image has an QNX Screen external format, format must be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-image-08958", - "text": " If image has an QNX Screen external format, the pNext chain must include a VkSamplerYcbcrConversionInfo structure with a conversion object created with the same external format as image" + "text": "If image has an QNX Screen external format, the pNext chain must include a VkSamplerYcbcrConversionInfo structure with a conversion object created with the same external format as image", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-image-08959", - "text": " If image has an QNX Screen external format, all members of components must be the identity swizzle" + "text": "If image has an QNX Screen external format, all members of components must be the identity swizzle", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-image-02086", - "text": " If image was created with usage containing VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, viewType must be VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY" + "text": "If image was created with usage containing VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, viewType must be VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-image-02087", - "text": " If the shadingRateImage feature is enabled, and If image was created with usage containing VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV, format must be VK_FORMAT_R8_UINT" + "text": "If the shadingRateImage feature is enabled, and If image was created with usage containing VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV, format must be VK_FORMAT_R8_UINT", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-usage-04550", - "text": " If the attachmentFragmentShadingRate feature is enabled, and the usage for the image view includes VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, then the image view’s format features must contain VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR" + "text": "If the attachmentFragmentShadingRate feature is enabled, and the usage for the image view includes VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, then the image view’s format features must contain VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-usage-04551", - "text": " If the attachmentFragmentShadingRate feature is enabled, the usage for the image view includes VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, and layeredShadingRateAttachments is VK_FALSE, subresourceRange.layerCount must be 1" + "text": "If the attachmentFragmentShadingRate feature is enabled, the usage for the image view includes VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, and layeredShadingRateAttachments is VK_FALSE, subresourceRange.layerCount must be 1", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-flags-02572", - "text": " If the fragmentDensityMapDynamic feature is not enabled, flags must not contain VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT" + "text": "If the fragmentDensityMapDynamic feature is not enabled, flags must not contain VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-flags-03567", - "text": " If the fragmentDensityMapDeferred feature is not enabled, flags must not contain VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT" + "text": "If the fragmentDensityMapDeferred feature is not enabled, flags must not contain VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-flags-03568", - "text": " If flags contains VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT, flags must not contain VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT" + "text": "If flags contains VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT, flags must not contain VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-image-03569", - "text": " If image was created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT and usage containing VK_IMAGE_USAGE_SAMPLED_BIT, subresourceRange.layerCount must be less than or equal to VkPhysicalDeviceFragmentDensityMap2PropertiesEXT::maxSubsampledArrayLayers" + "text": "If image was created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT and usage containing VK_IMAGE_USAGE_SAMPLED_BIT, subresourceRange.layerCount must be less than or equal to VkPhysicalDeviceFragmentDensityMap2PropertiesEXT::maxSubsampledArrayLayers", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-invocationMask-04993", - "text": " If the invocationMask feature is enabled, and if image was created with usage containing VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI, format must be VK_FORMAT_R8_UINT" + "text": "If the invocationMask feature is enabled, and if image was created with usage containing VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI, format must be VK_FORMAT_R8_UINT", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-flags-04116", - "text": " If flags does not contain VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT and image was created with usage containing VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT, its flags must not contain any of VK_IMAGE_CREATE_PROTECTED_BIT, VK_IMAGE_CREATE_SPARSE_BINDING_BIT, VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT, or VK_IMAGE_CREATE_SPARSE_ALIASED_BIT" + "text": "If flags does not contain VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT and image was created with usage containing VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT, its flags must not contain any of VK_IMAGE_CREATE_PROTECTED_BIT, VK_IMAGE_CREATE_SPARSE_BINDING_BIT, VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT, or VK_IMAGE_CREATE_SPARSE_ALIASED_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-pNext-02662", - "text": " If the pNext chain includes a VkImageViewUsageCreateInfo structure, and image was not created with a VkImageStencilUsageCreateInfo structure included in the pNext chain of VkImageCreateInfo, its usage member must not include any bits that were not set in the usage member of the VkImageCreateInfo structure used to create image" + "text": "If the pNext chain includes a VkImageViewUsageCreateInfo structure, and image was not created with a VkImageStencilUsageCreateInfo structure included in the pNext chain of VkImageCreateInfo, its usage member must not include any bits that were not set in the usage member of the VkImageCreateInfo structure used to create image", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-pNext-02663", - "text": " If the pNext chain includes a VkImageViewUsageCreateInfo structure, image was created with a VkImageStencilUsageCreateInfo structure included in the pNext chain of VkImageCreateInfo, and subresourceRange.aspectMask includes VK_IMAGE_ASPECT_STENCIL_BIT, the usage member of the VkImageViewUsageCreateInfo structure must not include any bits that were not set in the usage member of the VkImageStencilUsageCreateInfo structure used to create image" + "text": "If the pNext chain includes a VkImageViewUsageCreateInfo structure, image was created with a VkImageStencilUsageCreateInfo structure included in the pNext chain of VkImageCreateInfo, and subresourceRange.aspectMask includes VK_IMAGE_ASPECT_STENCIL_BIT, the usage member of the VkImageViewUsageCreateInfo structure must not include any bits that were not set in the usage member of the VkImageStencilUsageCreateInfo structure used to create image", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-pNext-02664", - "text": " If the pNext chain includes a VkImageViewUsageCreateInfo structure, image was created with a VkImageStencilUsageCreateInfo structure included in the pNext chain of VkImageCreateInfo, and subresourceRange.aspectMask includes bits other than VK_IMAGE_ASPECT_STENCIL_BIT, the usage member of the VkImageViewUsageCreateInfo structure must not include any bits that were not set in the usage member of the VkImageCreateInfo structure used to create image" + "text": "If the pNext chain includes a VkImageViewUsageCreateInfo structure, image was created with a VkImageStencilUsageCreateInfo structure included in the pNext chain of VkImageCreateInfo, and subresourceRange.aspectMask includes bits other than VK_IMAGE_ASPECT_STENCIL_BIT, the usage member of the VkImageViewUsageCreateInfo structure must not include any bits that were not set in the usage member of the VkImageCreateInfo structure used to create image", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-imageViewType-04973", - "text": " If viewType is VK_IMAGE_VIEW_TYPE_1D, VK_IMAGE_VIEW_TYPE_2D, or VK_IMAGE_VIEW_TYPE_3D; and subresourceRange.layerCount is not VK_REMAINING_ARRAY_LAYERS, then subresourceRange.layerCount must be 1" + "text": "If viewType is VK_IMAGE_VIEW_TYPE_1D, VK_IMAGE_VIEW_TYPE_2D, or VK_IMAGE_VIEW_TYPE_3D; and subresourceRange.layerCount is not VK_REMAINING_ARRAY_LAYERS, then subresourceRange.layerCount must be 1", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-imageViewType-04974", - "text": " If viewType is VK_IMAGE_VIEW_TYPE_1D, VK_IMAGE_VIEW_TYPE_2D, or VK_IMAGE_VIEW_TYPE_3D; and subresourceRange.layerCount is VK_REMAINING_ARRAY_LAYERS, then the remaining number of layers must be 1" + "text": "If viewType is VK_IMAGE_VIEW_TYPE_1D, VK_IMAGE_VIEW_TYPE_2D, or VK_IMAGE_VIEW_TYPE_3D; and subresourceRange.layerCount is VK_REMAINING_ARRAY_LAYERS, then the remaining number of layers must be 1", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-viewType-02960", - "text": " If viewType is VK_IMAGE_VIEW_TYPE_CUBE and subresourceRange.layerCount is not VK_REMAINING_ARRAY_LAYERS, subresourceRange.layerCount must be 6" + "text": "If viewType is VK_IMAGE_VIEW_TYPE_CUBE and subresourceRange.layerCount is not VK_REMAINING_ARRAY_LAYERS, subresourceRange.layerCount must be 6", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-viewType-02961", - "text": " If viewType is VK_IMAGE_VIEW_TYPE_CUBE_ARRAY and subresourceRange.layerCount is not VK_REMAINING_ARRAY_LAYERS, subresourceRange.layerCount must be a multiple of 6" + "text": "If viewType is VK_IMAGE_VIEW_TYPE_CUBE_ARRAY and subresourceRange.layerCount is not VK_REMAINING_ARRAY_LAYERS, subresourceRange.layerCount must be a multiple of 6", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-viewType-02962", - "text": " If viewType is VK_IMAGE_VIEW_TYPE_CUBE and subresourceRange.layerCount is VK_REMAINING_ARRAY_LAYERS, the remaining number of layers must be 6" + "text": "If viewType is VK_IMAGE_VIEW_TYPE_CUBE and subresourceRange.layerCount is VK_REMAINING_ARRAY_LAYERS, the remaining number of layers must be 6", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-viewType-02963", - "text": " If viewType is VK_IMAGE_VIEW_TYPE_CUBE_ARRAY and subresourceRange.layerCount is VK_REMAINING_ARRAY_LAYERS, the remaining number of layers must be a multiple of 6" + "text": "If viewType is VK_IMAGE_VIEW_TYPE_CUBE_ARRAY and subresourceRange.layerCount is VK_REMAINING_ARRAY_LAYERS, the remaining number of layers must be a multiple of 6", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-imageViewFormatSwizzle-04465", - "text": " If the VK_KHR_portability_subset extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::imageViewFormatSwizzle is VK_FALSE, all elements of components must have the identity swizzle" + "text": "If the VK_KHR_portability_subset extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::imageViewFormatSwizzle is VK_FALSE, all elements of components must have the identity swizzle", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-imageViewFormatReinterpretation-04466", - "text": " If the VK_KHR_portability_subset extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::imageViewFormatReinterpretation is VK_FALSE, the VkFormat in format must not contain a different number of components, or a different number of bits in each component, than the format of the VkImage in image" + "text": "If the VK_KHR_portability_subset extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::imageViewFormatReinterpretation is VK_FALSE, the VkFormat in format must not contain a different number of components, or a different number of bits in each component, than the format of the VkImage in image", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-image-04817", - "text": " If image was created with usage containing VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR, VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR, or VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR, then the viewType must be VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY" + "text": "If image was created with usage containing VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR, VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR, or VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR, then the viewType must be VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-image-04818", - "text": " If image was created with usage containing VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR, VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR, or VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR, then the viewType must be VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY" + "text": "If image was created with usage containing VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR, VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR, or VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR, then the viewType must be VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-flags-08106", - "text": " If flags includes VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT, the descriptorBufferCaptureReplay feature must be enabled" + "text": "If flags includes VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT, the descriptorBufferCaptureReplay feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-pNext-08107", - "text": " If the pNext chain includes a VkOpaqueCaptureDescriptorDataCreateInfoEXT structure, flags must contain VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT" + "text": "If the pNext chain includes a VkOpaqueCaptureDescriptorDataCreateInfoEXT structure, flags must contain VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-pNext-06787", - "text": " If the pNext chain includes a VkExportMetalObjectCreateInfoEXT structure, its exportObjectType member must be VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT" + "text": "If the pNext chain includes a VkExportMetalObjectCreateInfoEXT structure, its exportObjectType member must be VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-pNext-06944", - "text": " If the pNext chain includes VkImageViewSampleWeightCreateInfoQCOM structure, then textureSampleWeighted feature must be enabled" + "text": "If the pNext chain includes VkImageViewSampleWeightCreateInfoQCOM structure, then textureSampleWeighted feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-pNext-06945", - "text": " If the pNext chain includes VkImageViewSampleWeightCreateInfoQCOM structure, then image must have been created with usage containing VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM" + "text": "If the pNext chain includes VkImageViewSampleWeightCreateInfoQCOM structure, then image must have been created with usage containing VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-pNext-06946", - "text": " If the pNext chain includes VkImageViewSampleWeightCreateInfoQCOM structure, then components must be VK_COMPONENT_SWIZZLE_IDENTITY for all components" + "text": "If the pNext chain includes VkImageViewSampleWeightCreateInfoQCOM structure, then components must be VK_COMPONENT_SWIZZLE_IDENTITY for all components", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-pNext-06947", - "text": " If the pNext chain includes VkImageViewSampleWeightCreateInfoQCOM structure, then subresourceRange.aspectMask must be VK_IMAGE_ASPECT_COLOR_BIT" + "text": "If the pNext chain includes VkImageViewSampleWeightCreateInfoQCOM structure, then subresourceRange.aspectMask must be VK_IMAGE_ASPECT_COLOR_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-pNext-06948", - "text": " If the pNext chain includes VkImageViewSampleWeightCreateInfoQCOM structure, then subresourceRange.levelCount must be 1" + "text": "If the pNext chain includes VkImageViewSampleWeightCreateInfoQCOM structure, then subresourceRange.levelCount must be 1", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-pNext-06949", - "text": " If the pNext chain includes VkImageViewSampleWeightCreateInfoQCOM structure, then viewType must be VK_IMAGE_VIEW_TYPE_1D_ARRAY or VK_IMAGE_VIEW_TYPE_2D_ARRAY" + "text": "If the pNext chain includes VkImageViewSampleWeightCreateInfoQCOM structure, then viewType must be VK_IMAGE_VIEW_TYPE_1D_ARRAY or VK_IMAGE_VIEW_TYPE_2D_ARRAY", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-pNext-06950", - "text": " If the pNext chain includes VkImageViewSampleWeightCreateInfoQCOM structure and if viewType is VK_IMAGE_VIEW_TYPE_1D_ARRAY, then image must have been created with imageType VK_IMAGE_TYPE_1D" + "text": "If the pNext chain includes VkImageViewSampleWeightCreateInfoQCOM structure and if viewType is VK_IMAGE_VIEW_TYPE_1D_ARRAY, then image must have been created with imageType VK_IMAGE_TYPE_1D", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-pNext-06951", - "text": " If the pNext chain includes VkImageViewSampleWeightCreateInfoQCOM structure and viewType is VK_IMAGE_VIEW_TYPE_1D_ARRAY, then subresourceRange.layerCount must be equal to 2" + "text": "If the pNext chain includes VkImageViewSampleWeightCreateInfoQCOM structure and viewType is VK_IMAGE_VIEW_TYPE_1D_ARRAY, then subresourceRange.layerCount must be equal to 2", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-pNext-06952", - "text": " If the pNext chain includes VkImageViewSampleWeightCreateInfoQCOM structure and viewType is VK_IMAGE_VIEW_TYPE_1D_ARRAY, then image must have been created with width equal to or greater than \\((numPhases \\times \\mathbin{max}\\left( \\mathbin{align}\\left(filterSize.width,4\\right), filterSize.height\\right))\\)" + "text": "If the pNext chain includes VkImageViewSampleWeightCreateInfoQCOM structure and viewType is VK_IMAGE_VIEW_TYPE_1D_ARRAY, then image must have been created with width equal to or greater than \\((numPhases \\times \\mathbin{max}\\left( \\mathbin{align}\\left(filterSize.width,4\\right), filterSize.height\\right))\\)", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-pNext-06953", - "text": " If the pNext chain includes VkImageViewSampleWeightCreateInfoQCOM structure and if viewType is VK_IMAGE_VIEW_TYPE_2D_ARRAY, then image must have been created with imageType VK_IMAGE_TYPE_2D" + "text": "If the pNext chain includes VkImageViewSampleWeightCreateInfoQCOM structure and if viewType is VK_IMAGE_VIEW_TYPE_2D_ARRAY, then image must have been created with imageType VK_IMAGE_TYPE_2D", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-pNext-06954", - "text": " If the pNext chain includes VkImageViewSampleWeightCreateInfoQCOM structure and viewType is VK_IMAGE_VIEW_TYPE_2D_ARRAY, then subresourceRange.layerCount must be equal or greater than numPhases" + "text": "If the pNext chain includes VkImageViewSampleWeightCreateInfoQCOM structure and viewType is VK_IMAGE_VIEW_TYPE_2D_ARRAY, then subresourceRange.layerCount must be equal or greater than numPhases", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-pNext-06955", - "text": " If the pNext chain includes VkImageViewSampleWeightCreateInfoQCOM structure and viewType is VK_IMAGE_VIEW_TYPE_2D_ARRAY, then image must have been created with width equal to or greater than filterSize.width" + "text": "If the pNext chain includes VkImageViewSampleWeightCreateInfoQCOM structure and viewType is VK_IMAGE_VIEW_TYPE_2D_ARRAY, then image must have been created with width equal to or greater than filterSize.width", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-pNext-06956", - "text": " If the pNext chain includes VkImageViewSampleWeightCreateInfoQCOM structure and viewType is VK_IMAGE_VIEW_TYPE_2D_ARRAY, then image must have been created with height equal to or greater than filterSize.height" + "text": "If the pNext chain includes VkImageViewSampleWeightCreateInfoQCOM structure and viewType is VK_IMAGE_VIEW_TYPE_2D_ARRAY, then image must have been created with height equal to or greater than filterSize.height", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-pNext-06957", - "text": " If the pNext chain includes VkImageViewSampleWeightCreateInfoQCOM structure then VkImageViewSampleWeightCreateInfoQCOM::filterSize.height must be less than or equal to VkPhysicalDeviceImageProcessingPropertiesQCOM::maxWeightFilterDimension.height" + "text": "If the pNext chain includes VkImageViewSampleWeightCreateInfoQCOM structure then VkImageViewSampleWeightCreateInfoQCOM::filterSize.height must be less than or equal to VkPhysicalDeviceImageProcessingPropertiesQCOM::maxWeightFilterDimension.height", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-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 VkExportMetalObjectCreateInfoEXT, VkImageViewASTCDecodeModeEXT, VkImageViewMinLodCreateInfoEXT, VkImageViewSampleWeightCreateInfoQCOM, VkImageViewSlicedCreateInfoEXT, VkImageViewUsageCreateInfo, VkOpaqueCaptureDescriptorDataCreateInfoEXT, or VkSamplerYcbcrConversionInfo" + "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 VkExportMetalObjectCreateInfoEXT, VkImageViewASTCDecodeModeEXT, VkImageViewMinLodCreateInfoEXT, VkImageViewSampleWeightCreateInfoQCOM, VkImageViewSlicedCreateInfoEXT, VkImageViewUsageCreateInfo, VkOpaqueCaptureDescriptorDataCreateInfoEXT, or VkSamplerYcbcrConversionInfo", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique, with the exception of structures of type VkExportMetalObjectCreateInfoEXT" + "text": "The sType value of each struct in the pNext chain must be unique, with the exception of structures of type VkExportMetalObjectCreateInfoEXT", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-flags-parameter", - "text": " flags must be a valid combination of VkImageViewCreateFlagBits values" + "text": "flags must be a valid combination of VkImageViewCreateFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-image-parameter", - "text": " image must be a valid VkImage handle" + "text": "image must be a valid VkImage handle", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-viewType-parameter", - "text": " viewType must be a valid VkImageViewType value" + "text": "viewType must be a valid VkImageViewType value", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-format-parameter", - "text": " format must be a valid VkFormat value" + "text": "format must be a valid VkFormat value", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-components-parameter", - "text": " components must be a valid VkComponentMapping structure" + "text": "components must be a valid VkComponentMapping structure", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCreateInfo-subresourceRange-parameter", - "text": " subresourceRange must be a valid VkImageSubresourceRange structure" + "text": "subresourceRange must be a valid VkImageSubresourceRange structure", + "page": "vkspec" } ] }, @@ -18294,15 +22810,18 @@ "core": [ { "vuid": "VUID-VkImageViewUsageCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewUsageCreateInfo-usage-parameter", - "text": " usage must be a valid combination of VkImageUsageFlagBits values" + "text": "usage must be a valid combination of VkImageUsageFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewUsageCreateInfo-usage-requiredbitmask", - "text": " usage must not be 0" + "text": "usage must not be 0", + "page": "vkspec" } ] }, @@ -18310,31 +22829,38 @@ "core": [ { "vuid": "VUID-VkImageViewSlicedCreateInfoEXT-sliceOffset-07867", - "text": " sliceOffset must be less than the effective view depth as specified in Image Mip Level Sizing" + "text": "sliceOffset must be less than the effective view depth as specified in Image Mip Level Sizing", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewSlicedCreateInfoEXT-sliceCount-07868", - "text": " If sliceCount is not VK_REMAINING_3D_SLICES_EXT, it must be be non-zero and sliceOffset + sliceCount must be less than or equal to the effective view depth as specified in Image Mip Level Sizing" + "text": "If sliceCount is not VK_REMAINING_3D_SLICES_EXT, it must be be non-zero and sliceOffset + sliceCount must be less than or equal to the effective view depth as specified in Image Mip Level Sizing", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewSlicedCreateInfoEXT-image-07869", - "text": " image must have been created with imageType equal to VK_IMAGE_TYPE_3D" + "text": "image must have been created with imageType equal to VK_IMAGE_TYPE_3D", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewSlicedCreateInfoEXT-viewType-07909", - "text": " viewType must be VK_IMAGE_VIEW_TYPE_3D" + "text": "viewType must be VK_IMAGE_VIEW_TYPE_3D", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewSlicedCreateInfoEXT-None-07870", - "text": " The image view must reference exactly 1 mip level" + "text": "The image view must reference exactly 1 mip level", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewSlicedCreateInfoEXT-None-07871", - "text": " The imageSlicedViewOf3D feature must be enabled on the device" + "text": "The imageSlicedViewOf3D feature must be enabled on the device", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewSlicedCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_VIEW_SLICED_CREATE_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_IMAGE_VIEW_SLICED_CREATE_INFO_EXT", + "page": "vkspec" } ] }, @@ -18342,27 +22868,33 @@ "core": [ { "vuid": "VUID-VkImageSubresourceRange-levelCount-01720", - "text": " If levelCount is not VK_REMAINING_MIP_LEVELS, it must be greater than 0" + "text": "If levelCount is not VK_REMAINING_MIP_LEVELS, it must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-VkImageSubresourceRange-layerCount-01721", - "text": " If layerCount is not VK_REMAINING_ARRAY_LAYERS, it must be greater than 0" + "text": "If layerCount is not VK_REMAINING_ARRAY_LAYERS, it must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-VkImageSubresourceRange-aspectMask-01670", - "text": " If aspectMask includes VK_IMAGE_ASPECT_COLOR_BIT, then it must not include any of VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT, or VK_IMAGE_ASPECT_PLANE_2_BIT" + "text": "If aspectMask includes VK_IMAGE_ASPECT_COLOR_BIT, then it must not include any of VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT, or VK_IMAGE_ASPECT_PLANE_2_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageSubresourceRange-aspectMask-02278", - "text": " aspectMask must not include VK_IMAGE_ASPECT_MEMORY_PLANE{ibit}BIT_EXT for any index i" + "text": "aspectMask must not include VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT for any index i", + "page": "vkspec" }, { "vuid": "VUID-VkImageSubresourceRange-aspectMask-parameter", - "text": " aspectMask must be a valid combination of VkImageAspectFlagBits values" + "text": "aspectMask must be a valid combination of VkImageAspectFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkImageSubresourceRange-aspectMask-requiredbitmask", - "text": " aspectMask must not be 0" + "text": "aspectMask must not be 0", + "page": "vkspec" } ] }, @@ -18370,19 +22902,23 @@ "core": [ { "vuid": "VUID-VkComponentMapping-r-parameter", - "text": " r must be a valid VkComponentSwizzle value" + "text": "r must be a valid VkComponentSwizzle value", + "page": "vkspec" }, { "vuid": "VUID-VkComponentMapping-g-parameter", - "text": " g must be a valid VkComponentSwizzle value" + "text": "g must be a valid VkComponentSwizzle value", + "page": "vkspec" }, { "vuid": "VUID-VkComponentMapping-b-parameter", - "text": " b must be a valid VkComponentSwizzle value" + "text": "b must be a valid VkComponentSwizzle value", + "page": "vkspec" }, { "vuid": "VUID-VkComponentMapping-a-parameter", - "text": " a must be a valid VkComponentSwizzle value" + "text": "a must be a valid VkComponentSwizzle value", + "page": "vkspec" } ] }, @@ -18390,27 +22926,33 @@ "core": [ { "vuid": "VUID-VkImageViewASTCDecodeModeEXT-decodeMode-02230", - "text": " decodeMode must be one of VK_FORMAT_R16G16B16A16_SFLOAT, VK_FORMAT_R8G8B8A8_UNORM, or VK_FORMAT_E5B9G9R9_UFLOAT_PACK32" + "text": "decodeMode must be one of VK_FORMAT_R16G16B16A16_SFLOAT, VK_FORMAT_R8G8B8A8_UNORM, or VK_FORMAT_E5B9G9R9_UFLOAT_PACK32", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewASTCDecodeModeEXT-decodeMode-02231", - "text": " If the decodeModeSharedExponent feature is not enabled, decodeMode must not be VK_FORMAT_E5B9G9R9_UFLOAT_PACK32" + "text": "If the decodeModeSharedExponent feature is not enabled, decodeMode must not be VK_FORMAT_E5B9G9R9_UFLOAT_PACK32", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewASTCDecodeModeEXT-decodeMode-02232", - "text": " If decodeMode is VK_FORMAT_R8G8B8A8_UNORM the image view must not include blocks using any of the ASTC HDR modes" + "text": "If decodeMode is VK_FORMAT_R8G8B8A8_UNORM the image view must not include blocks using any of the ASTC HDR modes", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewASTCDecodeModeEXT-format-04084", - "text": " format of the image view must be one of the ASTC Compressed Image Formats" + "text": "format of the image view must be one of the ASTC Compressed Image Formats", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewASTCDecodeModeEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewASTCDecodeModeEXT-decodeMode-parameter", - "text": " decodeMode must be a valid VkFormat value" + "text": "decodeMode must be a valid VkFormat value", + "page": "vkspec" } ] }, @@ -18418,31 +22960,38 @@ "core": [ { "vuid": "VUID-VkImageViewSampleWeightCreateInfoQCOM-filterSize-06958", - "text": " filterSize.width must be less than or equal to VkPhysicalDeviceImageProcessingPropertiesQCOM::maxWeightFilterDimension.width" + "text": "filterSize.width must be less than or equal to VkPhysicalDeviceImageProcessingPropertiesQCOM::maxWeightFilterDimension.width", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewSampleWeightCreateInfoQCOM-filterSize-06959", - "text": " filterSize.height must be less than or equal to VkPhysicalDeviceImageProcessingPropertiesQCOM::maxWeightFilterDimension.height" + "text": "filterSize.height must be less than or equal to VkPhysicalDeviceImageProcessingPropertiesQCOM::maxWeightFilterDimension.height", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewSampleWeightCreateInfoQCOM-filterCenter-06960", - "text": " filterCenter.x must be less than or equal to (filterSize.width - 1)" + "text": "filterCenter.x must be less than or equal to (filterSize.width - 1)", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewSampleWeightCreateInfoQCOM-filterCenter-06961", - "text": " filterCenter.y must be less than or equal to (filterSize.height - 1)" + "text": "filterCenter.y must be less than or equal to (filterSize.height - 1)", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewSampleWeightCreateInfoQCOM-numPhases-06962", - "text": " numPhases must be a power of two squared value (i.e., 1, 4, 16, 64, 256, etc.)" + "text": "numPhases must be a power of two squared value (i.e., 1, 4, 16, 64, 256, etc.)", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewSampleWeightCreateInfoQCOM-numPhases-06963", - "text": " numPhases must be less than or equal to VkPhysicalDeviceImageProcessingPropertiesQCOM::maxWeightFilterPhases" + "text": "numPhases must be less than or equal to VkPhysicalDeviceImageProcessingPropertiesQCOM::maxWeightFilterPhases", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewSampleWeightCreateInfoQCOM-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM" + "text": "sType must be VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM", + "page": "vkspec" } ] }, @@ -18450,31 +22999,38 @@ "core": [ { "vuid": "VUID-vkDestroyImageView-imageView-01026", - "text": " All submitted commands that refer to imageView must have completed execution" + "text": "All submitted commands that refer to imageView must have completed execution", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyImageView-imageView-01027", - "text": " If VkAllocationCallbacks were provided when imageView was created, a compatible set of callbacks must be provided here" + "text": "If VkAllocationCallbacks were provided when imageView was created, a compatible set of callbacks must be provided here", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyImageView-imageView-01028", - "text": " If no VkAllocationCallbacks were provided when imageView was created, pAllocator must be NULL" + "text": "If no VkAllocationCallbacks were provided when imageView was created, pAllocator must be NULL", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyImageView-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyImageView-imageView-parameter", - "text": " If imageView is not VK_NULL_HANDLE, imageView must be a valid VkImageView handle" + "text": "If imageView is not VK_NULL_HANDLE, imageView must be a valid VkImageView handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyImageView-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyImageView-imageView-parent", - "text": " If imageView is a valid handle, it must have been created, allocated, or retrieved from device" + "text": "If imageView is a valid handle, it must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -18482,11 +23038,13 @@ "core": [ { "vuid": "VUID-vkGetImageViewHandleNVX-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetImageViewHandleNVX-pInfo-parameter", - "text": " pInfo must be a valid pointer to a valid VkImageViewHandleInfoNVX structure" + "text": "pInfo must be a valid pointer to a valid VkImageViewHandleInfoNVX structure", + "page": "vkspec" } ] }, @@ -18494,43 +23052,53 @@ "core": [ { "vuid": "VUID-VkImageViewHandleInfoNVX-descriptorType-02654", - "text": " descriptorType must be VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER" + "text": "descriptorType must be VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewHandleInfoNVX-sampler-02655", - "text": " sampler must be a valid VkSampler if descriptorType is VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER" + "text": "sampler must be a valid VkSampler if descriptorType is VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewHandleInfoNVX-imageView-02656", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE or VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, the image that imageView was created from must have been created with the VK_IMAGE_USAGE_SAMPLED_BIT usage bit set" + "text": "If descriptorType is VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE or VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, the image that imageView was created from must have been created with the VK_IMAGE_USAGE_SAMPLED_BIT usage bit set", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewHandleInfoNVX-imageView-02657", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, the image that imageView was created from must have been created with the VK_IMAGE_USAGE_STORAGE_BIT usage bit set" + "text": "If descriptorType is VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, the image that imageView was created from must have been created with the VK_IMAGE_USAGE_STORAGE_BIT usage bit set", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewHandleInfoNVX-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX" + "text": "sType must be VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewHandleInfoNVX-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewHandleInfoNVX-imageView-parameter", - "text": " imageView must be a valid VkImageView handle" + "text": "imageView must be a valid VkImageView handle", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewHandleInfoNVX-descriptorType-parameter", - "text": " descriptorType must be a valid VkDescriptorType value" + "text": "descriptorType must be a valid VkDescriptorType value", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewHandleInfoNVX-sampler-parameter", - "text": " If sampler is not VK_NULL_HANDLE, sampler must be a valid VkSampler handle" + "text": "If sampler is not VK_NULL_HANDLE, sampler must be a valid VkSampler handle", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewHandleInfoNVX-commonparent", - "text": " Both of imageView, and sampler that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of imageView, and sampler that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -18538,19 +23106,23 @@ "core": [ { "vuid": "VUID-vkGetImageViewAddressNVX-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetImageViewAddressNVX-imageView-parameter", - "text": " imageView must be a valid VkImageView handle" + "text": "imageView must be a valid VkImageView handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetImageViewAddressNVX-pProperties-parameter", - "text": " pProperties must be a valid pointer to a VkImageViewAddressPropertiesNVX structure" + "text": "pProperties must be a valid pointer to a VkImageViewAddressPropertiesNVX structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetImageViewAddressNVX-imageView-parent", - "text": " imageView must have been created, allocated, or retrieved from device" + "text": "imageView must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -18558,11 +23130,13 @@ "core": [ { "vuid": "VUID-VkImageViewAddressPropertiesNVX-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX" + "text": "sType must be VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewAddressPropertiesNVX-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" } ] }, @@ -18570,15 +23144,18 @@ "core": [ { "vuid": "VUID-VkImageViewMinLodCreateInfoEXT-minLod-06455", - "text": " If the minLod feature is not enabled, minLod must be 0.0" + "text": "If the minLod feature is not enabled, minLod must be 0.0", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewMinLodCreateInfoEXT-minLod-06456", - "text": " minLod must be less or equal to the index of the last mipmap level accessible to the view" + "text": "minLod must be less or equal to the index of the last mipmap level accessible to the view", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewMinLodCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT", + "page": "vkspec" } ] }, @@ -18586,19 +23163,23 @@ "core": [ { "vuid": "VUID-vkCreateAccelerationStructureNV-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkCreateAccelerationStructureNV-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkAccelerationStructureCreateInfoNV structure" + "text": "pCreateInfo must be a valid pointer to a valid VkAccelerationStructureCreateInfoNV structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateAccelerationStructureNV-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateAccelerationStructureNV-pAccelerationStructure-parameter", - "text": " pAccelerationStructure must be a valid pointer to a VkAccelerationStructureNV handle" + "text": "pAccelerationStructure must be a valid pointer to a VkAccelerationStructureNV handle", + "page": "vkspec" } ] }, @@ -18606,23 +23187,28 @@ "core": [ { "vuid": "VUID-VkAccelerationStructureCreateInfoNV-compactedSize-02421", - "text": " If compactedSize is not 0 then both info.geometryCount and info.instanceCount must be 0" + "text": "If compactedSize is not 0 then both info.geometryCount and info.instanceCount must be 0", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureCreateInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV" + "text": "sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureCreateInfoNV-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkOpaqueCaptureDescriptorDataCreateInfoEXT" + "text": "pNext must be NULL or a pointer to a valid instance of VkOpaqueCaptureDescriptorDataCreateInfoEXT", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureCreateInfoNV-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureCreateInfoNV-info-parameter", - "text": " info must be a valid VkAccelerationStructureInfoNV structure" + "text": "info must be a valid VkAccelerationStructureInfoNV structure", + "page": "vkspec" } ] }, @@ -18630,63 +23216,78 @@ "core": [ { "vuid": "VUID-VkAccelerationStructureInfoNV-geometryCount-02422", - "text": " geometryCount must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxGeometryCount" + "text": "geometryCount must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxGeometryCount", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureInfoNV-instanceCount-02423", - "text": " instanceCount must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxInstanceCount" + "text": "instanceCount must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxInstanceCount", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureInfoNV-maxTriangleCount-02424", - "text": " The total number of triangles in all geometries must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxTriangleCount" + "text": "The total number of triangles in all geometries must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxTriangleCount", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureInfoNV-type-02425", - "text": " If type is VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV then geometryCount must be 0" + "text": "If type is VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV then geometryCount must be 0", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureInfoNV-type-02426", - "text": " If type is VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV then instanceCount must be 0" + "text": "If type is VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV then instanceCount must be 0", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureInfoNV-type-02786", - "text": " If type is VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV then the geometryType member of each geometry in pGeometries must be the same" + "text": "If type is VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV then the geometryType member of each geometry in pGeometries must be the same", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureInfoNV-type-04623", - "text": " type must not be VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR" + "text": "type must not be VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureInfoNV-flags-02592", - "text": " If flags has the VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV bit set, then it must not have the VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV bit set" + "text": "If flags has the VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV bit set, then it must not have the VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV bit set", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureInfoNV-scratch-02781", - "text": " scratch must have been created with VK_BUFFER_USAGE_RAY_TRACING_BIT_NV usage flag" + "text": "scratch must have been created with VK_BUFFER_USAGE_RAY_TRACING_BIT_NV usage flag", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureInfoNV-instanceData-02782", - "text": " If instanceData is not VK_NULL_HANDLE, instanceData must have been created with VK_BUFFER_USAGE_RAY_TRACING_BIT_NV usage flag" + "text": "If instanceData is not VK_NULL_HANDLE, instanceData must have been created with VK_BUFFER_USAGE_RAY_TRACING_BIT_NV usage flag", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV" + "text": "sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureInfoNV-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureInfoNV-type-parameter", - "text": " type must be a valid VkAccelerationStructureTypeNV value" + "text": "type must be a valid VkAccelerationStructureTypeNV value", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureInfoNV-flags-parameter", - "text": " flags must be a valid combination of VkBuildAccelerationStructureFlagBitsNV values" + "text": "flags must be a valid combination of VkBuildAccelerationStructureFlagBitsNV values", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureInfoNV-pGeometries-parameter", - "text": " If geometryCount is not 0, pGeometries must be a valid pointer to an array of geometryCount valid VkGeometryNV structures" + "text": "If geometryCount is not 0, pGeometries must be a valid pointer to an array of geometryCount valid VkGeometryNV structures", + "page": "vkspec" } ] }, @@ -18694,31 +23295,38 @@ "core": [ { "vuid": "VUID-vkCreateAccelerationStructureKHR-accelerationStructure-03611", - "text": " The VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructure feature must be enabled" + "text": "The VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructure feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCreateAccelerationStructureKHR-deviceAddress-03488", - "text": " If VkAccelerationStructureCreateInfoKHR::deviceAddress is not zero, the accelerationStructureCaptureReplay feature must be enabled" + "text": "If VkAccelerationStructureCreateInfoKHR::deviceAddress is not zero, the accelerationStructureCaptureReplay feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCreateAccelerationStructureKHR-device-03489", - "text": " If device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled" + "text": "If device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCreateAccelerationStructureKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkCreateAccelerationStructureKHR-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkAccelerationStructureCreateInfoKHR structure" + "text": "pCreateInfo must be a valid pointer to a valid VkAccelerationStructureCreateInfoKHR structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateAccelerationStructureKHR-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateAccelerationStructureKHR-pAccelerationStructure-parameter", - "text": " pAccelerationStructure must be a valid pointer to a VkAccelerationStructureKHR handle" + "text": "pAccelerationStructure must be a valid pointer to a VkAccelerationStructureKHR handle", + "page": "vkspec" } ] }, @@ -18726,67 +23334,83 @@ "core": [ { "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-deviceAddress-03612", - "text": " If deviceAddress is not zero, createFlags must include VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR" + "text": "If deviceAddress is not zero, createFlags must include VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-createFlags-03613", - "text": " If createFlags includes VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR, VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructureCaptureReplay must be VK_TRUE" + "text": "If createFlags includes VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR, VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructureCaptureReplay must be VK_TRUE", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-buffer-03614", - "text": " buffer must have been created with a usage value containing VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR" + "text": "buffer must have been created with a usage value containing VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-buffer-03615", - "text": " buffer must not have been created with VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT" + "text": "buffer must not have been created with VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-offset-03616", - "text": " The sum of offset and size must be less than the size of buffer" + "text": "The sum of offset and size must be less than the size of buffer", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-offset-03734", - "text": " offset must be a multiple of 256 bytes" + "text": "offset must be a multiple of 256 bytes", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-createFlags-04954", - "text": " If VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV is set in createFlags and type is VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR, one member of the pNext chain must be a pointer to a valid instance of VkAccelerationStructureMotionInfoNV" + "text": "If VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV is set in createFlags and type is VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR, one member of the pNext chain must be a pointer to a valid instance of VkAccelerationStructureMotionInfoNV", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-createFlags-04955", - "text": " If any geometry includes VkAccelerationStructureGeometryMotionTrianglesDataNV then createFlags must contain VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV" + "text": "If any geometry includes VkAccelerationStructureGeometryMotionTrianglesDataNV then createFlags must contain VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-createFlags-08108", - "text": " If createFlags includes VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT, the descriptorBufferCaptureReplay feature must be enabled" + "text": "If createFlags includes VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT, the descriptorBufferCaptureReplay feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-pNext-08109", - "text": " If the pNext chain includes a VkOpaqueCaptureDescriptorDataCreateInfoEXT structure, createFlags must contain VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT" + "text": "If the pNext chain includes a VkOpaqueCaptureDescriptorDataCreateInfoEXT structure, createFlags must contain VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-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 VkAccelerationStructureMotionInfoNV or VkOpaqueCaptureDescriptorDataCreateInfoEXT" + "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 VkAccelerationStructureMotionInfoNV or VkOpaqueCaptureDescriptorDataCreateInfoEXT", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-createFlags-parameter", - "text": " createFlags must be a valid combination of VkAccelerationStructureCreateFlagBitsKHR values" + "text": "createFlags must be a valid combination of VkAccelerationStructureCreateFlagBitsKHR values", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-buffer-parameter", - "text": " buffer must be a valid VkBuffer handle" + "text": "buffer must be a valid VkBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-type-parameter", - "text": " type must be a valid VkAccelerationStructureTypeKHR value" + "text": "type must be a valid VkAccelerationStructureTypeKHR value", + "page": "vkspec" } ] }, @@ -18794,11 +23418,13 @@ "core": [ { "vuid": "VUID-VkAccelerationStructureMotionInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV" + "text": "sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureMotionInfoNV-flags-zerobitmask", - "text": " flags must be 0" + "text": "flags must be 0", + "page": "vkspec" } ] }, @@ -18806,39 +23432,48 @@ "core": [ { "vuid": "VUID-vkGetAccelerationStructureBuildSizesKHR-accelerationStructure-08933", - "text": " The VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructure feature must be enabled" + "text": "The VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructure feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkGetAccelerationStructureBuildSizesKHR-device-03618", - "text": " If device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled" + "text": "If device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkGetAccelerationStructureBuildSizesKHR-pBuildInfo-03619", - "text": " If pBuildInfo->geometryCount is not 0, pMaxPrimitiveCounts must be a valid pointer to an array of pBuildInfo->geometryCount uint32_t values" + "text": "If pBuildInfo->geometryCount is not 0, pMaxPrimitiveCounts must be a valid pointer to an array of pBuildInfo->geometryCount uint32_t values", + "page": "vkspec" }, { "vuid": "VUID-vkGetAccelerationStructureBuildSizesKHR-pBuildInfo-03785", - "text": " If pBuildInfo->pGeometries or pBuildInfo->ppGeometries has a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, each pMaxPrimitiveCounts[i] must be less than or equal to VkPhysicalDeviceAccelerationStructurePropertiesKHR::maxInstanceCount" + "text": "If pBuildInfo->pGeometries or pBuildInfo->ppGeometries has a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, each pMaxPrimitiveCounts[i] must be less than or equal to VkPhysicalDeviceAccelerationStructurePropertiesKHR::maxInstanceCount", + "page": "vkspec" }, { "vuid": "VUID-vkGetAccelerationStructureBuildSizesKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetAccelerationStructureBuildSizesKHR-buildType-parameter", - "text": " buildType must be a valid VkAccelerationStructureBuildTypeKHR value" + "text": "buildType must be a valid VkAccelerationStructureBuildTypeKHR value", + "page": "vkspec" }, { "vuid": "VUID-vkGetAccelerationStructureBuildSizesKHR-pBuildInfo-parameter", - "text": " pBuildInfo must be a valid pointer to a valid VkAccelerationStructureBuildGeometryInfoKHR structure" + "text": "pBuildInfo must be a valid pointer to a valid VkAccelerationStructureBuildGeometryInfoKHR structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetAccelerationStructureBuildSizesKHR-pMaxPrimitiveCounts-parameter", - "text": " If pMaxPrimitiveCounts is not NULL, pMaxPrimitiveCounts must be a valid pointer to an array of pBuildInfo->geometryCount uint32_t values" + "text": "If pMaxPrimitiveCounts is not NULL, pMaxPrimitiveCounts must be a valid pointer to an array of pBuildInfo->geometryCount uint32_t values", + "page": "vkspec" }, { "vuid": "VUID-vkGetAccelerationStructureBuildSizesKHR-pSizeInfo-parameter", - "text": " pSizeInfo must be a valid pointer to a VkAccelerationStructureBuildSizesInfoKHR structure" + "text": "pSizeInfo must be a valid pointer to a VkAccelerationStructureBuildSizesInfoKHR structure", + "page": "vkspec" } ] }, @@ -18846,11 +23481,13 @@ "core": [ { "vuid": "VUID-VkAccelerationStructureBuildSizesInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureBuildSizesInfoKHR-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" } ] }, @@ -18858,27 +23495,33 @@ "core": [ { "vuid": "VUID-VkGeometryNV-geometryType-03503", - "text": " geometryType must be VK_GEOMETRY_TYPE_TRIANGLES_NV or VK_GEOMETRY_TYPE_AABBS_NV" + "text": "geometryType must be VK_GEOMETRY_TYPE_TRIANGLES_NV or VK_GEOMETRY_TYPE_AABBS_NV", + "page": "vkspec" }, { "vuid": "VUID-VkGeometryNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_GEOMETRY_NV" + "text": "sType must be VK_STRUCTURE_TYPE_GEOMETRY_NV", + "page": "vkspec" }, { "vuid": "VUID-VkGeometryNV-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkGeometryNV-geometryType-parameter", - "text": " geometryType must be a valid VkGeometryTypeKHR value" + "text": "geometryType must be a valid VkGeometryTypeKHR value", + "page": "vkspec" }, { "vuid": "VUID-VkGeometryNV-geometry-parameter", - "text": " geometry must be a valid VkGeometryDataNV structure" + "text": "geometry must be a valid VkGeometryDataNV structure", + "page": "vkspec" }, { "vuid": "VUID-VkGeometryNV-flags-parameter", - "text": " flags must be a valid combination of VkGeometryFlagBitsKHR values" + "text": "flags must be a valid combination of VkGeometryFlagBitsKHR values", + "page": "vkspec" } ] }, @@ -18886,11 +23529,13 @@ "core": [ { "vuid": "VUID-VkGeometryDataNV-triangles-parameter", - "text": " triangles must be a valid VkGeometryTrianglesNV structure" + "text": "triangles must be a valid VkGeometryTrianglesNV structure", + "page": "vkspec" }, { "vuid": "VUID-VkGeometryDataNV-aabbs-parameter", - "text": " aabbs must be a valid VkGeometryAABBNV structure" + "text": "aabbs must be a valid VkGeometryAABBNV structure", + "page": "vkspec" } ] }, @@ -18898,83 +23543,103 @@ "core": [ { "vuid": "VUID-VkGeometryTrianglesNV-vertexOffset-02428", - "text": " vertexOffset must be less than the size of vertexData" + "text": "vertexOffset must be less than the size of vertexData", + "page": "vkspec" }, { "vuid": "VUID-VkGeometryTrianglesNV-vertexOffset-02429", - "text": " vertexOffset must be a multiple of the component size of vertexFormat" + "text": "vertexOffset must be a multiple of the component size of vertexFormat", + "page": "vkspec" }, { "vuid": "VUID-VkGeometryTrianglesNV-vertexFormat-02430", - "text": " vertexFormat must be one of VK_FORMAT_R32G32B32_SFLOAT, VK_FORMAT_R32G32_SFLOAT, VK_FORMAT_R16G16B16_SFLOAT, VK_FORMAT_R16G16_SFLOAT, VK_FORMAT_R16G16_SNORM, or VK_FORMAT_R16G16B16_SNORM" + "text": "vertexFormat must be one of VK_FORMAT_R32G32B32_SFLOAT, VK_FORMAT_R32G32_SFLOAT, VK_FORMAT_R16G16B16_SFLOAT, VK_FORMAT_R16G16_SFLOAT, VK_FORMAT_R16G16_SNORM, or VK_FORMAT_R16G16B16_SNORM", + "page": "vkspec" }, { "vuid": "VUID-VkGeometryTrianglesNV-vertexStride-03818", - "text": " vertexStride must be less than or equal to 232-1" + "text": "vertexStride must be less than or equal to 232-1", + "page": "vkspec" }, { "vuid": "VUID-VkGeometryTrianglesNV-indexOffset-02431", - "text": " indexOffset must be less than the size of indexData" + "text": "indexOffset must be less than the size of indexData", + "page": "vkspec" }, { "vuid": "VUID-VkGeometryTrianglesNV-indexOffset-02432", - "text": " indexOffset must be a multiple of the element size of indexType" + "text": "indexOffset must be a multiple of the element size of indexType", + "page": "vkspec" }, { "vuid": "VUID-VkGeometryTrianglesNV-indexType-02433", - "text": " indexType must be VK_INDEX_TYPE_UINT16, VK_INDEX_TYPE_UINT32, or VK_INDEX_TYPE_NONE_NV" + "text": "indexType must be VK_INDEX_TYPE_UINT16, VK_INDEX_TYPE_UINT32, or VK_INDEX_TYPE_NONE_NV", + "page": "vkspec" }, { "vuid": "VUID-VkGeometryTrianglesNV-indexData-02434", - "text": " indexData must be VK_NULL_HANDLE if indexType is VK_INDEX_TYPE_NONE_NV" + "text": "indexData must be VK_NULL_HANDLE if indexType is VK_INDEX_TYPE_NONE_NV", + "page": "vkspec" }, { "vuid": "VUID-VkGeometryTrianglesNV-indexData-02435", - "text": " indexData must be a valid VkBuffer handle if indexType is not VK_INDEX_TYPE_NONE_NV" + "text": "indexData must be a valid VkBuffer handle if indexType is not VK_INDEX_TYPE_NONE_NV", + "page": "vkspec" }, { "vuid": "VUID-VkGeometryTrianglesNV-indexCount-02436", - "text": " indexCount must be 0 if indexType is VK_INDEX_TYPE_NONE_NV" + "text": "indexCount must be 0 if indexType is VK_INDEX_TYPE_NONE_NV", + "page": "vkspec" }, { "vuid": "VUID-VkGeometryTrianglesNV-transformOffset-02437", - "text": " transformOffset must be less than the size of transformData" + "text": "transformOffset must be less than the size of transformData", + "page": "vkspec" }, { "vuid": "VUID-VkGeometryTrianglesNV-transformOffset-02438", - "text": " transformOffset must be a multiple of 16" + "text": "transformOffset must be a multiple of 16", + "page": "vkspec" }, { "vuid": "VUID-VkGeometryTrianglesNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV" + "text": "sType must be VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV", + "page": "vkspec" }, { "vuid": "VUID-VkGeometryTrianglesNV-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkGeometryTrianglesNV-vertexData-parameter", - "text": " If vertexData is not VK_NULL_HANDLE, vertexData must be a valid VkBuffer handle" + "text": "If vertexData is not VK_NULL_HANDLE, vertexData must be a valid VkBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-VkGeometryTrianglesNV-vertexFormat-parameter", - "text": " vertexFormat must be a valid VkFormat value" + "text": "vertexFormat must be a valid VkFormat value", + "page": "vkspec" }, { "vuid": "VUID-VkGeometryTrianglesNV-indexData-parameter", - "text": " If indexData is not VK_NULL_HANDLE, indexData must be a valid VkBuffer handle" + "text": "If indexData is not VK_NULL_HANDLE, indexData must be a valid VkBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-VkGeometryTrianglesNV-indexType-parameter", - "text": " indexType must be a valid VkIndexType value" + "text": "indexType must be a valid VkIndexType value", + "page": "vkspec" }, { "vuid": "VUID-VkGeometryTrianglesNV-transformData-parameter", - "text": " If transformData is not VK_NULL_HANDLE, transformData must be a valid VkBuffer handle" + "text": "If transformData is not VK_NULL_HANDLE, transformData must be a valid VkBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-VkGeometryTrianglesNV-commonparent", - "text": " Each of indexData, transformData, and vertexData that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" + "text": "Each of indexData, transformData, and vertexData that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -18982,27 +23647,33 @@ "core": [ { "vuid": "VUID-VkGeometryAABBNV-offset-02439", - "text": " offset must be less than the size of aabbData" + "text": "offset must be less than the size of aabbData", + "page": "vkspec" }, { "vuid": "VUID-VkGeometryAABBNV-offset-02440", - "text": " offset must be a multiple of 8" + "text": "offset must be a multiple of 8", + "page": "vkspec" }, { "vuid": "VUID-VkGeometryAABBNV-stride-02441", - "text": " stride must be a multiple of 8" + "text": "stride must be a multiple of 8", + "page": "vkspec" }, { "vuid": "VUID-VkGeometryAABBNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV" + "text": "sType must be VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV", + "page": "vkspec" }, { "vuid": "VUID-VkGeometryAABBNV-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkGeometryAABBNV-aabbData-parameter", - "text": " If aabbData is not VK_NULL_HANDLE, aabbData must be a valid VkBuffer handle" + "text": "If aabbData is not VK_NULL_HANDLE, aabbData must be a valid VkBuffer handle", + "page": "vkspec" } ] }, @@ -19010,35 +23681,43 @@ "core": [ { "vuid": "VUID-vkDestroyAccelerationStructureKHR-accelerationStructure-08934", - "text": " The VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructure feature must be enabled" + "text": "The VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructure feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyAccelerationStructureKHR-accelerationStructure-02442", - "text": " All submitted commands that refer to accelerationStructure must have completed execution" + "text": "All submitted commands that refer to accelerationStructure must have completed execution", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyAccelerationStructureKHR-accelerationStructure-02443", - "text": " If VkAllocationCallbacks were provided when accelerationStructure was created, a compatible set of callbacks must be provided here" + "text": "If VkAllocationCallbacks were provided when accelerationStructure was created, a compatible set of callbacks must be provided here", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyAccelerationStructureKHR-accelerationStructure-02444", - "text": " If no VkAllocationCallbacks were provided when accelerationStructure was created, pAllocator must be NULL" + "text": "If no VkAllocationCallbacks were provided when accelerationStructure was created, pAllocator must be NULL", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyAccelerationStructureKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyAccelerationStructureKHR-accelerationStructure-parameter", - "text": " If accelerationStructure is not VK_NULL_HANDLE, accelerationStructure must be a valid VkAccelerationStructureKHR handle" + "text": "If accelerationStructure is not VK_NULL_HANDLE, accelerationStructure must be a valid VkAccelerationStructureKHR handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyAccelerationStructureKHR-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyAccelerationStructureKHR-accelerationStructure-parent", - "text": " If accelerationStructure is a valid handle, it must have been created, allocated, or retrieved from device" + "text": "If accelerationStructure is a valid handle, it must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -19046,31 +23725,38 @@ "core": [ { "vuid": "VUID-vkDestroyAccelerationStructureNV-accelerationStructure-03752", - "text": " All submitted commands that refer to accelerationStructure must have completed execution" + "text": "All submitted commands that refer to accelerationStructure must have completed execution", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyAccelerationStructureNV-accelerationStructure-03753", - "text": " If VkAllocationCallbacks were provided when accelerationStructure was created, a compatible set of callbacks must be provided here" + "text": "If VkAllocationCallbacks were provided when accelerationStructure was created, a compatible set of callbacks must be provided here", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyAccelerationStructureNV-accelerationStructure-03754", - "text": " If no VkAllocationCallbacks were provided when accelerationStructure was created, pAllocator must be NULL" + "text": "If no VkAllocationCallbacks were provided when accelerationStructure was created, pAllocator must be NULL", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyAccelerationStructureNV-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyAccelerationStructureNV-accelerationStructure-parameter", - "text": " If accelerationStructure is not VK_NULL_HANDLE, accelerationStructure must be a valid VkAccelerationStructureNV handle" + "text": "If accelerationStructure is not VK_NULL_HANDLE, accelerationStructure must be a valid VkAccelerationStructureNV handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyAccelerationStructureNV-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyAccelerationStructureNV-accelerationStructure-parent", - "text": " If accelerationStructure is a valid handle, it must have been created, allocated, or retrieved from device" + "text": "If accelerationStructure is a valid handle, it must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -19078,15 +23764,18 @@ "core": [ { "vuid": "VUID-vkGetAccelerationStructureMemoryRequirementsNV-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetAccelerationStructureMemoryRequirementsNV-pInfo-parameter", - "text": " pInfo must be a valid pointer to a valid VkAccelerationStructureMemoryRequirementsInfoNV structure" + "text": "pInfo must be a valid pointer to a valid VkAccelerationStructureMemoryRequirementsInfoNV structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetAccelerationStructureMemoryRequirementsNV-pMemoryRequirements-parameter", - "text": " pMemoryRequirements must be a valid pointer to a VkMemoryRequirements2KHR structure" + "text": "pMemoryRequirements must be a valid pointer to a VkMemoryRequirements2KHR structure", + "page": "vkspec" } ] }, @@ -19094,19 +23783,23 @@ "core": [ { "vuid": "VUID-VkAccelerationStructureMemoryRequirementsInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV" + "text": "sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureMemoryRequirementsInfoNV-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureMemoryRequirementsInfoNV-type-parameter", - "text": " type must be a valid VkAccelerationStructureMemoryRequirementsTypeNV value" + "text": "type must be a valid VkAccelerationStructureMemoryRequirementsTypeNV value", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureMemoryRequirementsInfoNV-accelerationStructure-parameter", - "text": " accelerationStructure must be a valid VkAccelerationStructureNV handle" + "text": "accelerationStructure must be a valid VkAccelerationStructureNV handle", + "page": "vkspec" } ] }, @@ -19114,15 +23807,18 @@ "core": [ { "vuid": "VUID-vkBindAccelerationStructureMemoryNV-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkBindAccelerationStructureMemoryNV-pBindInfos-parameter", - "text": " pBindInfos must be a valid pointer to an array of bindInfoCount valid VkBindAccelerationStructureMemoryInfoNV structures" + "text": "pBindInfos must be a valid pointer to an array of bindInfoCount valid VkBindAccelerationStructureMemoryInfoNV structures", + "page": "vkspec" }, { "vuid": "VUID-vkBindAccelerationStructureMemoryNV-bindInfoCount-arraylength", - "text": " bindInfoCount must be greater than 0" + "text": "bindInfoCount must be greater than 0", + "page": "vkspec" } ] }, @@ -19130,47 +23826,58 @@ "core": [ { "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNV-accelerationStructure-03620", - "text": " accelerationStructure must not already be backed by a memory object" + "text": "accelerationStructure must not already be backed by a memory object", + "page": "vkspec" }, { "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNV-memoryOffset-03621", - "text": " memoryOffset must be less than the size of memory" + "text": "memoryOffset must be less than the size of memory", + "page": "vkspec" }, { "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNV-memory-03622", - "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 vkGetAccelerationStructureMemoryRequirementsNV with accelerationStructure and type of VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV" + "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 vkGetAccelerationStructureMemoryRequirementsNV with accelerationStructure and type of VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV", + "page": "vkspec" }, { "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNV-memoryOffset-03623", - "text": " memoryOffset must be an integer multiple of the alignment member of the VkMemoryRequirements structure returned from a call to vkGetAccelerationStructureMemoryRequirementsNV with accelerationStructure and type of VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV" + "text": "memoryOffset must be an integer multiple of the alignment member of the VkMemoryRequirements structure returned from a call to vkGetAccelerationStructureMemoryRequirementsNV with accelerationStructure and type of VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV", + "page": "vkspec" }, { "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNV-size-03624", - "text": " The size member of the VkMemoryRequirements structure returned from a call to vkGetAccelerationStructureMemoryRequirementsNV with accelerationStructure and type of VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV must be less than or equal to the size of memory minus memoryOffset" + "text": "The size member of the VkMemoryRequirements structure returned from a call to vkGetAccelerationStructureMemoryRequirementsNV with accelerationStructure and type of VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV must be less than or equal to the size of memory minus memoryOffset", + "page": "vkspec" }, { "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV" + "text": "sType must be VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV", + "page": "vkspec" }, { "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNV-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNV-accelerationStructure-parameter", - "text": " accelerationStructure must be a valid VkAccelerationStructureNV handle" + "text": "accelerationStructure must be a valid VkAccelerationStructureNV handle", + "page": "vkspec" }, { "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNV-memory-parameter", - "text": " memory must be a valid VkDeviceMemory handle" + "text": "memory must be a valid VkDeviceMemory handle", + "page": "vkspec" }, { "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNV-pDeviceIndices-parameter", - "text": " If deviceIndexCount is not 0, pDeviceIndices must be a valid pointer to an array of deviceIndexCount uint32_t values" + "text": "If deviceIndexCount is not 0, pDeviceIndices must be a valid pointer to an array of deviceIndexCount uint32_t values", + "page": "vkspec" }, { "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNV-commonparent", - "text": " Both of accelerationStructure, and memory must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of accelerationStructure, and memory must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -19178,31 +23885,38 @@ "core": [ { "vuid": "VUID-vkGetAccelerationStructureHandleNV-dataSize-02240", - "text": " dataSize must be large enough to contain the result of the query, as described above" + "text": "dataSize must be large enough to contain the result of the query, as described above", + "page": "vkspec" }, { "vuid": "VUID-vkGetAccelerationStructureHandleNV-accelerationStructure-02787", - "text": " accelerationStructure must be bound completely and contiguously to a single VkDeviceMemory object via vkBindAccelerationStructureMemoryNV" + "text": "accelerationStructure must be bound completely and contiguously to a single VkDeviceMemory object via vkBindAccelerationStructureMemoryNV", + "page": "vkspec" }, { "vuid": "VUID-vkGetAccelerationStructureHandleNV-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetAccelerationStructureHandleNV-accelerationStructure-parameter", - "text": " accelerationStructure must be a valid VkAccelerationStructureNV handle" + "text": "accelerationStructure must be a valid VkAccelerationStructureNV handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetAccelerationStructureHandleNV-pData-parameter", - "text": " pData must be a valid pointer to an array of dataSize bytes" + "text": "pData must be a valid pointer to an array of dataSize bytes", + "page": "vkspec" }, { "vuid": "VUID-vkGetAccelerationStructureHandleNV-dataSize-arraylength", - "text": " dataSize must be greater than 0" + "text": "dataSize must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-vkGetAccelerationStructureHandleNV-accelerationStructure-parent", - "text": " accelerationStructure must have been created, allocated, or retrieved from device" + "text": "accelerationStructure must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -19210,19 +23924,23 @@ "core": [ { "vuid": "VUID-vkGetAccelerationStructureDeviceAddressKHR-accelerationStructure-08935", - "text": " The VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructure feature must be enabled" + "text": "The VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructure feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkGetAccelerationStructureDeviceAddressKHR-device-03504", - "text": " If device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled" + "text": "If device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkGetAccelerationStructureDeviceAddressKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetAccelerationStructureDeviceAddressKHR-pInfo-parameter", - "text": " pInfo must be a valid pointer to a valid VkAccelerationStructureDeviceAddressInfoKHR structure" + "text": "pInfo must be a valid pointer to a valid VkAccelerationStructureDeviceAddressInfoKHR structure", + "page": "vkspec" } ] }, @@ -19230,15 +23948,18 @@ "core": [ { "vuid": "VUID-VkAccelerationStructureDeviceAddressInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureDeviceAddressInfoKHR-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureDeviceAddressInfoKHR-accelerationStructure-parameter", - "text": " accelerationStructure must be a valid VkAccelerationStructureKHR handle" + "text": "accelerationStructure must be a valid VkAccelerationStructureKHR handle", + "page": "vkspec" } ] }, @@ -19246,31 +23967,38 @@ "core": [ { "vuid": "VUID-vkCreateMicromapEXT-micromap-07430", - "text": " The micromap feature must be enabled" + "text": "The micromap feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCreateMicromapEXT-deviceAddress-07431", - "text": " If VkMicromapCreateInfoEXT::deviceAddress is not zero, the micromapCaptureReplay feature must be enabled" + "text": "If VkMicromapCreateInfoEXT::deviceAddress is not zero, the micromapCaptureReplay feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCreateMicromapEXT-device-07432", - "text": " If device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled" + "text": "If device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCreateMicromapEXT-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkCreateMicromapEXT-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkMicromapCreateInfoEXT structure" + "text": "pCreateInfo must be a valid pointer to a valid VkMicromapCreateInfoEXT structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateMicromapEXT-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateMicromapEXT-pMicromap-parameter", - "text": " pMicromap must be a valid pointer to a VkMicromapEXT handle" + "text": "pMicromap must be a valid pointer to a VkMicromapEXT handle", + "page": "vkspec" } ] }, @@ -19278,47 +24006,58 @@ "core": [ { "vuid": "VUID-VkMicromapCreateInfoEXT-deviceAddress-07433", - "text": " If deviceAddress is not zero, createFlags must include VK_MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT" + "text": "If deviceAddress is not zero, createFlags must include VK_MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkMicromapCreateInfoEXT-createFlags-07434", - "text": " If createFlags includes VK_MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT, VkPhysicalDeviceOpacityMicromapFeaturesEXT::micromapCaptureReplay must be VK_TRUE" + "text": "If createFlags includes VK_MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT, VkPhysicalDeviceOpacityMicromapFeaturesEXT::micromapCaptureReplay must be VK_TRUE", + "page": "vkspec" }, { "vuid": "VUID-VkMicromapCreateInfoEXT-buffer-07435", - "text": " buffer must have been created with a usage value containing VK_BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT" + "text": "buffer must have been created with a usage value containing VK_BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkMicromapCreateInfoEXT-buffer-07436", - "text": " buffer must not have been created with VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT" + "text": "buffer must not have been created with VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkMicromapCreateInfoEXT-offset-07437", - "text": " The sum of offset and size must be less than the size of buffer" + "text": "The sum of offset and size must be less than the size of buffer", + "page": "vkspec" }, { "vuid": "VUID-VkMicromapCreateInfoEXT-offset-07438", - "text": " offset must be a multiple of 256 bytes" + "text": "offset must be a multiple of 256 bytes", + "page": "vkspec" }, { "vuid": "VUID-VkMicromapCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkMicromapCreateInfoEXT-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkMicromapCreateInfoEXT-createFlags-parameter", - "text": " createFlags must be a valid combination of VkMicromapCreateFlagBitsEXT values" + "text": "createFlags must be a valid combination of VkMicromapCreateFlagBitsEXT values", + "page": "vkspec" }, { "vuid": "VUID-VkMicromapCreateInfoEXT-buffer-parameter", - "text": " buffer must be a valid VkBuffer handle" + "text": "buffer must be a valid VkBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-VkMicromapCreateInfoEXT-type-parameter", - "text": " type must be a valid VkMicromapTypeEXT value" + "text": "type must be a valid VkMicromapTypeEXT value", + "page": "vkspec" } ] }, @@ -19326,31 +24065,38 @@ "core": [ { "vuid": "VUID-vkGetMicromapBuildSizesEXT-dstMicromap-09180", - "text": " VkMicromapBuildInfoEXT::dstMicromap must have been created from device" + "text": "VkMicromapBuildInfoEXT::dstMicromap must have been created from device", + "page": "vkspec" }, { "vuid": "VUID-vkGetMicromapBuildSizesEXT-micromap-07439", - "text": " The micromap feature must be enabled" + "text": "The micromap feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkGetMicromapBuildSizesEXT-device-07440", - "text": " If device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled" + "text": "If device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkGetMicromapBuildSizesEXT-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetMicromapBuildSizesEXT-buildType-parameter", - "text": " buildType must be a valid VkAccelerationStructureBuildTypeKHR value" + "text": "buildType must be a valid VkAccelerationStructureBuildTypeKHR value", + "page": "vkspec" }, { "vuid": "VUID-vkGetMicromapBuildSizesEXT-pBuildInfo-parameter", - "text": " pBuildInfo must be a valid pointer to a valid VkMicromapBuildInfoEXT structure" + "text": "pBuildInfo must be a valid pointer to a valid VkMicromapBuildInfoEXT structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetMicromapBuildSizesEXT-pSizeInfo-parameter", - "text": " pSizeInfo must be a valid pointer to a VkMicromapBuildSizesInfoEXT structure" + "text": "pSizeInfo must be a valid pointer to a VkMicromapBuildSizesInfoEXT structure", + "page": "vkspec" } ] }, @@ -19358,11 +24104,13 @@ "core": [ { "vuid": "VUID-VkMicromapBuildSizesInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkMicromapBuildSizesInfoEXT-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" } ] }, @@ -19370,31 +24118,38 @@ "core": [ { "vuid": "VUID-vkDestroyMicromapEXT-micromap-07441", - "text": " All submitted commands that refer to micromap must have completed execution" + "text": "All submitted commands that refer to micromap must have completed execution", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyMicromapEXT-micromap-07442", - "text": " If VkAllocationCallbacks were provided when micromap was created, a compatible set of callbacks must be provided here" + "text": "If VkAllocationCallbacks were provided when micromap was created, a compatible set of callbacks must be provided here", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyMicromapEXT-micromap-07443", - "text": " If no VkAllocationCallbacks were provided when micromap was created, pAllocator must be NULL" + "text": "If no VkAllocationCallbacks were provided when micromap was created, pAllocator must be NULL", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyMicromapEXT-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyMicromapEXT-micromap-parameter", - "text": " If micromap is not VK_NULL_HANDLE, micromap must be a valid VkMicromapEXT handle" + "text": "If micromap is not VK_NULL_HANDLE, micromap must be a valid VkMicromapEXT handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyMicromapEXT-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyMicromapEXT-micromap-parent", - "text": " If micromap is a valid handle, it must have been created, allocated, or retrieved from device" + "text": "If micromap is a valid handle, it must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -19402,19 +24157,23 @@ "core": [ { "vuid": "VUID-vkGetBufferMemoryRequirements-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetBufferMemoryRequirements-buffer-parameter", - "text": " buffer must be a valid VkBuffer handle" + "text": "buffer must be a valid VkBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetBufferMemoryRequirements-pMemoryRequirements-parameter", - "text": " pMemoryRequirements must be a valid pointer to a VkMemoryRequirements structure" + "text": "pMemoryRequirements must be a valid pointer to a VkMemoryRequirements structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetBufferMemoryRequirements-buffer-parent", - "text": " buffer must have been created, allocated, or retrieved from device" + "text": "buffer must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -19422,31 +24181,38 @@ "core": [ { "vuid": "VUID-vkGetImageMemoryRequirements-image-01588", - "text": " image must not have been created with the VK_IMAGE_CREATE_DISJOINT_BIT flag set" + "text": "image must not have been created with the VK_IMAGE_CREATE_DISJOINT_BIT flag set", + "page": "vkspec" }, { "vuid": "VUID-vkGetImageMemoryRequirements-image-04004", - "text": " If image was created with the VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID external memory handle type, then image must be bound to memory" + "text": "If image was created with the VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID external memory handle type, then image must be bound to memory", + "page": "vkspec" }, { "vuid": "VUID-vkGetImageMemoryRequirements-image-08960", - "text": " If image was created with the VK_EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX external memory handle type, then image must be bound to memory" + "text": "If image was created with the VK_EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX external memory handle type, then image must be bound to memory", + "page": "vkspec" }, { "vuid": "VUID-vkGetImageMemoryRequirements-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetImageMemoryRequirements-image-parameter", - "text": " image must be a valid VkImage handle" + "text": "image must be a valid VkImage handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetImageMemoryRequirements-pMemoryRequirements-parameter", - "text": " pMemoryRequirements must be a valid pointer to a VkMemoryRequirements structure" + "text": "pMemoryRequirements must be a valid pointer to a VkMemoryRequirements structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetImageMemoryRequirements-image-parent", - "text": " image must have been created, allocated, or retrieved from device" + "text": "image must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -19454,15 +24220,18 @@ "core": [ { "vuid": "VUID-vkGetBufferMemoryRequirements2-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetBufferMemoryRequirements2-pInfo-parameter", - "text": " pInfo must be a valid pointer to a valid VkBufferMemoryRequirementsInfo2 structure" + "text": "pInfo must be a valid pointer to a valid VkBufferMemoryRequirementsInfo2 structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetBufferMemoryRequirements2-pMemoryRequirements-parameter", - "text": " pMemoryRequirements must be a valid pointer to a VkMemoryRequirements2 structure" + "text": "pMemoryRequirements must be a valid pointer to a VkMemoryRequirements2 structure", + "page": "vkspec" } ] }, @@ -19470,15 +24239,18 @@ "core": [ { "vuid": "VUID-vkGetDeviceBufferMemoryRequirements-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetDeviceBufferMemoryRequirements-pInfo-parameter", - "text": " pInfo must be a valid pointer to a valid VkDeviceBufferMemoryRequirements structure" + "text": "pInfo must be a valid pointer to a valid VkDeviceBufferMemoryRequirements structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetDeviceBufferMemoryRequirements-pMemoryRequirements-parameter", - "text": " pMemoryRequirements must be a valid pointer to a VkMemoryRequirements2 structure" + "text": "pMemoryRequirements must be a valid pointer to a VkMemoryRequirements2 structure", + "page": "vkspec" } ] }, @@ -19486,15 +24258,18 @@ "core": [ { "vuid": "VUID-VkBufferMemoryRequirementsInfo2-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2" + "text": "sType must be VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryRequirementsInfo2-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkBufferMemoryRequirementsInfo2-buffer-parameter", - "text": " buffer must be a valid VkBuffer handle" + "text": "buffer must be a valid VkBuffer handle", + "page": "vkspec" } ] }, @@ -19502,15 +24277,18 @@ "core": [ { "vuid": "VUID-VkDeviceBufferMemoryRequirements-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS" + "text": "sType must be VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceBufferMemoryRequirements-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceBufferMemoryRequirements-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkBufferCreateInfo structure" + "text": "pCreateInfo must be a valid pointer to a valid VkBufferCreateInfo structure", + "page": "vkspec" } ] }, @@ -19518,15 +24296,18 @@ "core": [ { "vuid": "VUID-vkGetImageMemoryRequirements2-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetImageMemoryRequirements2-pInfo-parameter", - "text": " pInfo must be a valid pointer to a valid VkImageMemoryRequirementsInfo2 structure" + "text": "pInfo must be a valid pointer to a valid VkImageMemoryRequirementsInfo2 structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetImageMemoryRequirements2-pMemoryRequirements-parameter", - "text": " pMemoryRequirements must be a valid pointer to a VkMemoryRequirements2 structure" + "text": "pMemoryRequirements must be a valid pointer to a VkMemoryRequirements2 structure", + "page": "vkspec" } ] }, @@ -19534,15 +24315,18 @@ "core": [ { "vuid": "VUID-vkGetDeviceImageMemoryRequirements-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetDeviceImageMemoryRequirements-pInfo-parameter", - "text": " pInfo must be a valid pointer to a valid VkDeviceImageMemoryRequirements structure" + "text": "pInfo must be a valid pointer to a valid VkDeviceImageMemoryRequirements structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetDeviceImageMemoryRequirements-pMemoryRequirements-parameter", - "text": " pMemoryRequirements must be a valid pointer to a VkMemoryRequirements2 structure" + "text": "pMemoryRequirements must be a valid pointer to a VkMemoryRequirements2 structure", + "page": "vkspec" } ] }, @@ -19550,91 +24334,112 @@ "core": [ { "vuid": "VUID-VkImageMemoryRequirementsInfo2-image-01589", - "text": " If image was created with a multi-planar format and the VK_IMAGE_CREATE_DISJOINT_BIT flag, there must be a VkImagePlaneMemoryRequirementsInfo included in the pNext chain of the VkImageMemoryRequirementsInfo2 structure" + "text": "If image was created with a multi-planar format and the VK_IMAGE_CREATE_DISJOINT_BIT flag, there must be a VkImagePlaneMemoryRequirementsInfo included in the pNext chain of the VkImageMemoryRequirementsInfo2 structure", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryRequirementsInfo2-image-02279", - "text": " If image was created with VK_IMAGE_CREATE_DISJOINT_BIT and with VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, then there must be a VkImagePlaneMemoryRequirementsInfo included in the pNext chain of the VkImageMemoryRequirementsInfo2 structure" + "text": "If image was created with VK_IMAGE_CREATE_DISJOINT_BIT and with VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, then there must be a VkImagePlaneMemoryRequirementsInfo included in the pNext chain of the VkImageMemoryRequirementsInfo2 structure", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryRequirementsInfo2-image-01590", - "text": " If image was not created with the VK_IMAGE_CREATE_DISJOINT_BIT flag, there must not be a VkImagePlaneMemoryRequirementsInfo included in the pNext chain of the VkImageMemoryRequirementsInfo2 structure" + "text": "If image was not created with the VK_IMAGE_CREATE_DISJOINT_BIT flag, there must not be a VkImagePlaneMemoryRequirementsInfo included in the pNext chain of the VkImageMemoryRequirementsInfo2 structure", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryRequirementsInfo2-image-02280", - "text": " If image was created with a single-plane format and with any tiling other than VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, then there must not be a VkImagePlaneMemoryRequirementsInfo included in the pNext chain of the VkImageMemoryRequirementsInfo2 structure" + "text": "If image was created with a single-plane format and with any tiling other than VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, then there must not be a VkImagePlaneMemoryRequirementsInfo included in the pNext chain of the VkImageMemoryRequirementsInfo2 structure", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryRequirementsInfo2-image-01897", - "text": " If image was created with the VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID external memory handle type, then image must be bound to memory" + "text": "If image was created with the VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID external memory handle type, then image must be bound to memory", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryRequirementsInfo2-image-08961", - "text": " If image was created with the VK_EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX external memory handle type, then image must be bound to memory" + "text": "If image was created with the VK_EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX external memory handle type, then image must be bound to memory", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryRequirementsInfo2-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2" + "text": "sType must be VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryRequirementsInfo2-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkImagePlaneMemoryRequirementsInfo" + "text": "pNext must be NULL or a pointer to a valid instance of VkImagePlaneMemoryRequirementsInfo", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryRequirementsInfo2-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" }, { "vuid": "VUID-VkImageMemoryRequirementsInfo2-image-parameter", - "text": " image must be a valid VkImage handle" + "text": "image must be a valid VkImage handle", + "page": "vkspec" } ] }, "VkDeviceImageMemoryRequirements": { "core": [ { - "vuid": "VUID-VkDeviceImageMemoryRequirementsKHR-pCreateInfo-06416", - "text": " The pCreateInfo::pNext chain must not contain a VkImageSwapchainCreateInfoKHR structure" + "vuid": "VUID-VkDeviceImageMemoryRequirements-pCreateInfo-06416", + "text": "The pCreateInfo::pNext chain must not contain a VkImageSwapchainCreateInfoKHR structure", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceImageMemoryRequirements-pCreateInfo-06776", - "text": " The pCreateInfo::pNext chain must not contain a VkImageDrmFormatModifierExplicitCreateInfoEXT structure" + "text": "The pCreateInfo::pNext chain must not contain a VkImageDrmFormatModifierExplicitCreateInfoEXT structure", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceImageMemoryRequirements-pNext-06996", - "text": " Applications also must not call vkGetDeviceImageMemoryRequirements with a VkImageCreateInfo whose pNext chain includes a VkExternalFormatANDROID structure with non-zero externalFormat" + "text": "Applications also must not call vkGetDeviceImageMemoryRequirements with a VkImageCreateInfo whose pNext chain includes a VkExternalFormatANDROID structure with non-zero externalFormat", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceImageMemoryRequirements-pNext-08962", - "text": " Applications also must not call vkGetDeviceImageMemoryRequirements with a VkImageCreateInfo whose pNext chain includes a VkExternalFormatQNX structure with non-zero externalFormat" + "text": "Applications also must not call vkGetDeviceImageMemoryRequirements with a VkImageCreateInfo whose pNext chain includes a VkExternalFormatQNX structure with non-zero externalFormat", + "page": "vkspec" }, { - "vuid": "VUID-VkDeviceImageMemoryRequirementsKHR-pCreateInfo-06417", - "text": " If pCreateInfo::format specifies a multi-planar format and pCreateInfo::flags has VK_IMAGE_CREATE_DISJOINT_BIT set then planeAspect must not be VK_IMAGE_ASPECT_NONE_KHR" + "vuid": "VUID-VkDeviceImageMemoryRequirements-pCreateInfo-06417", + "text": "If pCreateInfo::format specifies a multi-planar format and pCreateInfo::flags has VK_IMAGE_CREATE_DISJOINT_BIT set then planeAspect must not be VK_IMAGE_ASPECT_NONE_KHR", + "page": "vkspec" }, { - "vuid": "VUID-VkDeviceImageMemoryRequirementsKHR-pCreateInfo-06419", - "text": " If pCreateInfo::flags has VK_IMAGE_CREATE_DISJOINT_BIT set and if the pCreateInfo::tiling is VK_IMAGE_TILING_LINEAR or VK_IMAGE_TILING_OPTIMAL, then planeAspect must be a single valid multi-planar aspect mask" + "vuid": "VUID-VkDeviceImageMemoryRequirements-pCreateInfo-06419", + "text": "If pCreateInfo::flags has VK_IMAGE_CREATE_DISJOINT_BIT set and if the pCreateInfo::tiling is VK_IMAGE_TILING_LINEAR or VK_IMAGE_TILING_OPTIMAL, then planeAspect must be a single valid multi-planar aspect mask bit", + "page": "vkspec" }, { - "vuid": "VUID-VkDeviceImageMemoryRequirementsKHR-pCreateInfo-06420", - "text": " If pCreateInfo::tiling is VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, then planeAspect must be a single valid memory plane for the image (that is, aspectMask must specify a plane index that is less than the VkDrmFormatModifierPropertiesEXT::drmFormatModifierPlaneCount associated with the image’s format and VkImageDrmFormatModifierPropertiesEXT::drmFormatModifier)" + "vuid": "VUID-VkDeviceImageMemoryRequirements-pCreateInfo-06420", + "text": "If pCreateInfo::tiling is VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, then planeAspect must be a single valid memory plane for the image (that is, aspectMask must specify a plane index that is less than the VkDrmFormatModifierPropertiesEXT::drmFormatModifierPlaneCount associated with the image’s format and VkImageDrmFormatModifierPropertiesEXT::drmFormatModifier)", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceImageMemoryRequirements-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS" + "text": "sType must be VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceImageMemoryRequirements-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceImageMemoryRequirements-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkImageCreateInfo structure" + "text": "pCreateInfo must be a valid pointer to a valid VkImageCreateInfo structure", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceImageMemoryRequirements-planeAspect-parameter", - "text": " If planeAspect is not 0, planeAspect must be a valid VkImageAspectFlagBits value" + "text": "If planeAspect is not 0, planeAspect must be a valid VkImageAspectFlagBits value", + "page": "vkspec" } ] }, @@ -19642,19 +24447,23 @@ "core": [ { "vuid": "VUID-VkImagePlaneMemoryRequirementsInfo-planeAspect-02281", - "text": " If the image’s tiling is VK_IMAGE_TILING_LINEAR or VK_IMAGE_TILING_OPTIMAL, then planeAspect must be a single valid multi-planar aspect mask" + "text": "If the image’s tiling is VK_IMAGE_TILING_LINEAR or VK_IMAGE_TILING_OPTIMAL, then planeAspect must be a single valid multi-planar aspect mask bit", + "page": "vkspec" }, { "vuid": "VUID-VkImagePlaneMemoryRequirementsInfo-planeAspect-02282", - "text": " If the image’s tiling is VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, then planeAspect must be a single valid memory plane for the image (that is, aspectMask must specify a plane index that is less than the VkDrmFormatModifierPropertiesEXT::drmFormatModifierPlaneCount associated with the image’s format and VkImageDrmFormatModifierPropertiesEXT::drmFormatModifier)" + "text": "If the image’s tiling is VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, then planeAspect must be a single valid memory plane for the image (that is, aspectMask must specify a plane index that is less than the VkDrmFormatModifierPropertiesEXT::drmFormatModifierPlaneCount associated with the image’s format and VkImageDrmFormatModifierPropertiesEXT::drmFormatModifier)", + "page": "vkspec" }, { "vuid": "VUID-VkImagePlaneMemoryRequirementsInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkImagePlaneMemoryRequirementsInfo-planeAspect-parameter", - "text": " planeAspect must be a valid VkImageAspectFlagBits value" + "text": "planeAspect must be a valid VkImageAspectFlagBits value", + "page": "vkspec" } ] }, @@ -19662,15 +24471,18 @@ "core": [ { "vuid": "VUID-VkMemoryRequirements2-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2" + "text": "sType must be VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryRequirements2-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkMemoryDedicatedRequirements" + "text": "pNext must be NULL or a pointer to a valid instance of VkMemoryDedicatedRequirements", + "page": "vkspec" }, { "vuid": "VUID-VkMemoryRequirements2-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" } ] }, @@ -19678,7 +24490,8 @@ "core": [ { "vuid": "VUID-VkMemoryDedicatedRequirements-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS" + "text": "sType must be VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS", + "page": "vkspec" } ] }, @@ -19686,103 +24499,128 @@ "core": [ { "vuid": "VUID-vkBindBufferMemory-buffer-07459", - "text": " buffer must not have been bound to a memory object" + "text": "buffer must not have been bound to a memory object", + "page": "vkspec" }, { "vuid": "VUID-vkBindBufferMemory-buffer-01030", - "text": " buffer must not have been created with any sparse memory binding flags" + "text": "buffer must not have been created with any sparse memory binding flags", + "page": "vkspec" }, { "vuid": "VUID-vkBindBufferMemory-memoryOffset-01031", - "text": " memoryOffset must be less than the size of memory" + "text": "memoryOffset must be less than the size of memory", + "page": "vkspec" }, { "vuid": "VUID-vkBindBufferMemory-memory-01035", - "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 vkGetBufferMemoryRequirements with buffer" + "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 vkGetBufferMemoryRequirements with buffer", + "page": "vkspec" }, { "vuid": "VUID-vkBindBufferMemory-memoryOffset-01036", - "text": " memoryOffset must be an integer multiple of the alignment member of the VkMemoryRequirements structure returned from a call to vkGetBufferMemoryRequirements with buffer" + "text": "memoryOffset must be an integer multiple of the alignment member of the VkMemoryRequirements structure returned from a call to vkGetBufferMemoryRequirements with buffer", + "page": "vkspec" }, { "vuid": "VUID-vkBindBufferMemory-size-01037", - "text": " The size member of the VkMemoryRequirements structure returned from a call to vkGetBufferMemoryRequirements with buffer must be less than or equal to the size of memory minus memoryOffset" + "text": "The size member of the VkMemoryRequirements structure returned from a call to vkGetBufferMemoryRequirements with buffer must be less than or equal to the size of memory minus memoryOffset", + "page": "vkspec" }, { "vuid": "VUID-vkBindBufferMemory-buffer-01444", - "text": " If buffer requires a dedicated allocation (as reported by vkGetBufferMemoryRequirements2 in VkMemoryDedicatedRequirements::requiresDedicatedAllocation for buffer), memory must have been allocated with VkMemoryDedicatedAllocateInfo::buffer equal to buffer" + "text": "If buffer requires a dedicated allocation (as reported by vkGetBufferMemoryRequirements2 in VkMemoryDedicatedRequirements::requiresDedicatedAllocation for buffer), memory must have been allocated with VkMemoryDedicatedAllocateInfo::buffer equal to buffer", + "page": "vkspec" }, { "vuid": "VUID-vkBindBufferMemory-memory-01508", - "text": " If the VkMemoryAllocateInfo provided when memory was allocated included a VkMemoryDedicatedAllocateInfo structure in its pNext chain, and VkMemoryDedicatedAllocateInfo::buffer was not VK_NULL_HANDLE, then buffer must equal VkMemoryDedicatedAllocateInfo::buffer, and memoryOffset must be zero" + "text": "If the VkMemoryAllocateInfo provided when memory was allocated included a VkMemoryDedicatedAllocateInfo structure in its pNext chain, and VkMemoryDedicatedAllocateInfo::buffer was not VK_NULL_HANDLE, then buffer must equal VkMemoryDedicatedAllocateInfo::buffer, and memoryOffset must be zero", + "page": "vkspec" }, { "vuid": "VUID-vkBindBufferMemory-None-01898", - "text": " If buffer was created with the VK_BUFFER_CREATE_PROTECTED_BIT bit set, the buffer must be bound to a memory object allocated with a memory type that reports VK_MEMORY_PROPERTY_PROTECTED_BIT" + "text": "If buffer was created with the VK_BUFFER_CREATE_PROTECTED_BIT bit set, the buffer must be bound to a memory object allocated with a memory type that reports VK_MEMORY_PROPERTY_PROTECTED_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkBindBufferMemory-None-01899", - "text": " If buffer was created with the VK_BUFFER_CREATE_PROTECTED_BIT bit not set, the buffer must not be bound to a memory object allocated with a memory type that reports VK_MEMORY_PROPERTY_PROTECTED_BIT" + "text": "If buffer was created with the VK_BUFFER_CREATE_PROTECTED_BIT bit not set, the buffer must not be bound to a memory object allocated with a memory type that reports VK_MEMORY_PROPERTY_PROTECTED_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkBindBufferMemory-buffer-01038", - "text": " If buffer was created with VkDedicatedAllocationBufferCreateInfoNV::dedicatedAllocation equal to VK_TRUE, memory must have been allocated with VkDedicatedAllocationMemoryAllocateInfoNV::buffer equal to a buffer handle created with identical creation parameters to buffer and memoryOffset must be zero" + "text": "If buffer was created with VkDedicatedAllocationBufferCreateInfoNV::dedicatedAllocation equal to VK_TRUE, memory must have been allocated with VkDedicatedAllocationMemoryAllocateInfoNV::buffer equal to a buffer handle created with identical creation parameters to buffer and memoryOffset must be zero", + "page": "vkspec" }, { "vuid": "VUID-vkBindBufferMemory-apiVersion-07920", - "text": " If the VK_KHR_dedicated_allocation extension is not enabled, VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, and buffer was not created with VkDedicatedAllocationBufferCreateInfoNV::dedicatedAllocation equal to VK_TRUE, memory must not have been allocated dedicated for a specific buffer or image" + "text": "If the VK_KHR_dedicated_allocation extension is not enabled, VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, and buffer was not created with VkDedicatedAllocationBufferCreateInfoNV::dedicatedAllocation equal to VK_TRUE, memory must not have been allocated dedicated for a specific buffer or image", + "page": "vkspec" }, { "vuid": "VUID-vkBindBufferMemory-memory-02726", - "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 VkExternalMemoryBufferCreateInfo::handleTypes when buffer was created" + "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 VkExternalMemoryBufferCreateInfo::handleTypes when buffer was created", + "page": "vkspec" }, { "vuid": "VUID-vkBindBufferMemory-memory-02985", - "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 VkExternalMemoryBufferCreateInfo::handleTypes when buffer was created" + "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 VkExternalMemoryBufferCreateInfo::handleTypes when buffer was created", + "page": "vkspec" }, { "vuid": "VUID-vkBindBufferMemory-memory-02986", - "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 VkExternalMemoryBufferCreateInfo::handleTypes when buffer was created" + "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 VkExternalMemoryBufferCreateInfo::handleTypes when buffer was created", + "page": "vkspec" }, { "vuid": "VUID-vkBindBufferMemory-bufferDeviceAddress-03339", - "text": " If the VkPhysicalDeviceBufferDeviceAddressFeatures::bufferDeviceAddress feature is enabled and buffer was created with the VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT bit set, memory must have been allocated with the VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT bit set" + "text": "If the VkPhysicalDeviceBufferDeviceAddressFeatures::bufferDeviceAddress feature is enabled and buffer was created with the VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT bit set, memory must have been allocated with the VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT bit set", + "page": "vkspec" }, { "vuid": "VUID-vkBindBufferMemory-bufferDeviceAddressCaptureReplay-09200", - "text": " If the VkPhysicalDeviceBufferDeviceAddressFeatures::bufferDeviceAddressCaptureReplay feature is enabled and buffer was created with the VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT bit set, memory must have been allocated with the VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT bit set" + "text": "If the VkPhysicalDeviceBufferDeviceAddressFeatures::bufferDeviceAddressCaptureReplay feature is enabled and buffer was created with the VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT bit set, memory must have been allocated with the VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT bit set", + "page": "vkspec" }, { "vuid": "VUID-vkBindBufferMemory-buffer-06408", - "text": " If buffer was created with VkBufferCollectionBufferCreateInfoFUCHSIA chained to VkBufferCreateInfo::pNext, memory must be allocated with a VkImportMemoryBufferCollectionFUCHSIA chained to VkMemoryAllocateInfo::pNext" + "text": "If buffer was created with VkBufferCollectionBufferCreateInfoFUCHSIA chained to VkBufferCreateInfo::pNext, memory must be allocated with a VkImportMemoryBufferCollectionFUCHSIA chained to VkMemoryAllocateInfo::pNext", + "page": "vkspec" }, { "vuid": "VUID-vkBindBufferMemory-descriptorBufferCaptureReplay-08112", - "text": " If the buffer was created with the VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT bit set, memory must have been allocated with the VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT bit set" + "text": "If the buffer was created with the VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT bit set, memory must have been allocated with the VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT bit set", + "page": "vkspec" }, { "vuid": "VUID-vkBindBufferMemory-buffer-09201", - "text": " If the buffer was created with the VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT bit set, memory must have been allocated with the VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT bit set" + "text": "If the buffer was created with the VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT bit set, memory must have been allocated with the VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT bit set", + "page": "vkspec" }, { "vuid": "VUID-vkBindBufferMemory-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkBindBufferMemory-buffer-parameter", - "text": " buffer must be a valid VkBuffer handle" + "text": "buffer must be a valid VkBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkBindBufferMemory-memory-parameter", - "text": " memory must be a valid VkDeviceMemory handle" + "text": "memory must be a valid VkDeviceMemory handle", + "page": "vkspec" }, { "vuid": "VUID-vkBindBufferMemory-buffer-parent", - "text": " buffer must have been created, allocated, or retrieved from device" + "text": "buffer must have been created, allocated, or retrieved from device", + "page": "vkspec" }, { "vuid": "VUID-vkBindBufferMemory-memory-parent", - "text": " memory must have been created, allocated, or retrieved from device" + "text": "memory must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -19790,15 +24628,18 @@ "core": [ { "vuid": "VUID-vkBindBufferMemory2-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkBindBufferMemory2-pBindInfos-parameter", - "text": " pBindInfos must be a valid pointer to an array of bindInfoCount valid VkBindBufferMemoryInfo structures" + "text": "pBindInfos must be a valid pointer to an array of bindInfoCount valid VkBindBufferMemoryInfo structures", + "page": "vkspec" }, { "vuid": "VUID-vkBindBufferMemory2-bindInfoCount-arraylength", - "text": " bindInfoCount must be greater than 0" + "text": "bindInfoCount must be greater than 0", + "page": "vkspec" } ] }, @@ -19806,111 +24647,138 @@ "core": [ { "vuid": "VUID-VkBindBufferMemoryInfo-buffer-07459", - "text": " buffer must not have been bound to a memory object" + "text": "buffer must not have been bound to a memory object", + "page": "vkspec" }, { "vuid": "VUID-VkBindBufferMemoryInfo-buffer-01030", - "text": " buffer must not have been created with any sparse memory binding flags" + "text": "buffer must not have been created with any sparse memory binding flags", + "page": "vkspec" }, { "vuid": "VUID-VkBindBufferMemoryInfo-memoryOffset-01031", - "text": " memoryOffset must be less than the size of memory" + "text": "memoryOffset must be less than the size of memory", + "page": "vkspec" }, { "vuid": "VUID-VkBindBufferMemoryInfo-memory-01035", - "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 vkGetBufferMemoryRequirements with buffer" + "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 vkGetBufferMemoryRequirements with buffer", + "page": "vkspec" }, { "vuid": "VUID-VkBindBufferMemoryInfo-memoryOffset-01036", - "text": " memoryOffset must be an integer multiple of the alignment member of the VkMemoryRequirements structure returned from a call to vkGetBufferMemoryRequirements with buffer" + "text": "memoryOffset must be an integer multiple of the alignment member of the VkMemoryRequirements structure returned from a call to vkGetBufferMemoryRequirements with buffer", + "page": "vkspec" }, { "vuid": "VUID-VkBindBufferMemoryInfo-size-01037", - "text": " The size member of the VkMemoryRequirements structure returned from a call to vkGetBufferMemoryRequirements with buffer must be less than or equal to the size of memory minus memoryOffset" + "text": "The size member of the VkMemoryRequirements structure returned from a call to vkGetBufferMemoryRequirements with buffer must be less than or equal to the size of memory minus memoryOffset", + "page": "vkspec" }, { "vuid": "VUID-VkBindBufferMemoryInfo-buffer-01444", - "text": " If buffer requires a dedicated allocation (as reported by vkGetBufferMemoryRequirements2 in VkMemoryDedicatedRequirements::requiresDedicatedAllocation for buffer), memory must have been allocated with VkMemoryDedicatedAllocateInfo::buffer equal to buffer" + "text": "If buffer requires a dedicated allocation (as reported by vkGetBufferMemoryRequirements2 in VkMemoryDedicatedRequirements::requiresDedicatedAllocation for buffer), memory must have been allocated with VkMemoryDedicatedAllocateInfo::buffer equal to buffer", + "page": "vkspec" }, { "vuid": "VUID-VkBindBufferMemoryInfo-memory-01508", - "text": " If the VkMemoryAllocateInfo provided when memory was allocated included a VkMemoryDedicatedAllocateInfo structure in its pNext chain, and VkMemoryDedicatedAllocateInfo::buffer was not VK_NULL_HANDLE, then buffer must equal VkMemoryDedicatedAllocateInfo::buffer, and memoryOffset must be zero" + "text": "If the VkMemoryAllocateInfo provided when memory was allocated included a VkMemoryDedicatedAllocateInfo structure in its pNext chain, and VkMemoryDedicatedAllocateInfo::buffer was not VK_NULL_HANDLE, then buffer must equal VkMemoryDedicatedAllocateInfo::buffer, and memoryOffset must be zero", + "page": "vkspec" }, { "vuid": "VUID-VkBindBufferMemoryInfo-None-01898", - "text": " If buffer was created with the VK_BUFFER_CREATE_PROTECTED_BIT bit set, the buffer must be bound to a memory object allocated with a memory type that reports VK_MEMORY_PROPERTY_PROTECTED_BIT" + "text": "If buffer was created with the VK_BUFFER_CREATE_PROTECTED_BIT bit set, the buffer must be bound to a memory object allocated with a memory type that reports VK_MEMORY_PROPERTY_PROTECTED_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkBindBufferMemoryInfo-None-01899", - "text": " If buffer was created with the VK_BUFFER_CREATE_PROTECTED_BIT bit not set, the buffer must not be bound to a memory object allocated with a memory type that reports VK_MEMORY_PROPERTY_PROTECTED_BIT" + "text": "If buffer was created with the VK_BUFFER_CREATE_PROTECTED_BIT bit not set, the buffer must not be bound to a memory object allocated with a memory type that reports VK_MEMORY_PROPERTY_PROTECTED_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkBindBufferMemoryInfo-buffer-01038", - "text": " If buffer was created with VkDedicatedAllocationBufferCreateInfoNV::dedicatedAllocation equal to VK_TRUE, memory must have been allocated with VkDedicatedAllocationMemoryAllocateInfoNV::buffer equal to a buffer handle created with identical creation parameters to buffer and memoryOffset must be zero" + "text": "If buffer was created with VkDedicatedAllocationBufferCreateInfoNV::dedicatedAllocation equal to VK_TRUE, memory must have been allocated with VkDedicatedAllocationMemoryAllocateInfoNV::buffer equal to a buffer handle created with identical creation parameters to buffer and memoryOffset must be zero", + "page": "vkspec" }, { "vuid": "VUID-VkBindBufferMemoryInfo-apiVersion-07920", - "text": " If the VK_KHR_dedicated_allocation extension is not enabled, VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, and buffer was not created with VkDedicatedAllocationBufferCreateInfoNV::dedicatedAllocation equal to VK_TRUE, memory must not have been allocated dedicated for a specific buffer or image" + "text": "If the VK_KHR_dedicated_allocation extension is not enabled, VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, and buffer was not created with VkDedicatedAllocationBufferCreateInfoNV::dedicatedAllocation equal to VK_TRUE, memory must not have been allocated dedicated for a specific buffer or image", + "page": "vkspec" }, { "vuid": "VUID-VkBindBufferMemoryInfo-memory-02726", - "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 VkExternalMemoryBufferCreateInfo::handleTypes when buffer was created" + "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 VkExternalMemoryBufferCreateInfo::handleTypes when buffer was created", + "page": "vkspec" }, { "vuid": "VUID-VkBindBufferMemoryInfo-memory-02985", - "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 VkExternalMemoryBufferCreateInfo::handleTypes when buffer was created" + "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 VkExternalMemoryBufferCreateInfo::handleTypes when buffer was created", + "page": "vkspec" }, { "vuid": "VUID-VkBindBufferMemoryInfo-memory-02986", - "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 VkExternalMemoryBufferCreateInfo::handleTypes when buffer was created" + "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 VkExternalMemoryBufferCreateInfo::handleTypes when buffer was created", + "page": "vkspec" }, { "vuid": "VUID-VkBindBufferMemoryInfo-bufferDeviceAddress-03339", - "text": " If the VkPhysicalDeviceBufferDeviceAddressFeatures::bufferDeviceAddress feature is enabled and buffer was created with the VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT bit set, memory must have been allocated with the VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT bit set" + "text": "If the VkPhysicalDeviceBufferDeviceAddressFeatures::bufferDeviceAddress feature is enabled and buffer was created with the VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT bit set, memory must have been allocated with the VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT bit set", + "page": "vkspec" }, { "vuid": "VUID-VkBindBufferMemoryInfo-bufferDeviceAddressCaptureReplay-09200", - "text": " If the VkPhysicalDeviceBufferDeviceAddressFeatures::bufferDeviceAddressCaptureReplay feature is enabled and buffer was created with the VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT bit set, memory must have been allocated with the VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT bit set" + "text": "If the VkPhysicalDeviceBufferDeviceAddressFeatures::bufferDeviceAddressCaptureReplay feature is enabled and buffer was created with the VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT bit set, memory must have been allocated with the VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT bit set", + "page": "vkspec" }, { "vuid": "VUID-VkBindBufferMemoryInfo-buffer-06408", - "text": " If buffer was created with VkBufferCollectionBufferCreateInfoFUCHSIA chained to VkBufferCreateInfo::pNext, memory must be allocated with a VkImportMemoryBufferCollectionFUCHSIA chained to VkMemoryAllocateInfo::pNext" + "text": "If buffer was created with VkBufferCollectionBufferCreateInfoFUCHSIA chained to VkBufferCreateInfo::pNext, memory must be allocated with a VkImportMemoryBufferCollectionFUCHSIA chained to VkMemoryAllocateInfo::pNext", + "page": "vkspec" }, { "vuid": "VUID-VkBindBufferMemoryInfo-descriptorBufferCaptureReplay-08112", - "text": " If the buffer was created with the VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT bit set, memory must have been allocated with the VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT bit set" + "text": "If the buffer was created with the VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT bit set, memory must have been allocated with the VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT bit set", + "page": "vkspec" }, { "vuid": "VUID-VkBindBufferMemoryInfo-buffer-09201", - "text": " If the buffer was created with the VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT bit set, memory must have been allocated with the VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT bit set" + "text": "If the buffer was created with the VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT bit set, memory must have been allocated with the VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT bit set", + "page": "vkspec" }, { "vuid": "VUID-VkBindBufferMemoryInfo-pNext-01605", - "text": " If the pNext chain includes a VkBindBufferMemoryDeviceGroupInfo structure, all instances of memory specified by VkBindBufferMemoryDeviceGroupInfo::pDeviceIndices must have been allocated" + "text": "If the pNext chain includes a VkBindBufferMemoryDeviceGroupInfo structure, all instances of memory specified by VkBindBufferMemoryDeviceGroupInfo::pDeviceIndices must have been allocated", + "page": "vkspec" }, { "vuid": "VUID-VkBindBufferMemoryInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkBindBufferMemoryInfo-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkBindBufferMemoryDeviceGroupInfo" + "text": "pNext must be NULL or a pointer to a valid instance of VkBindBufferMemoryDeviceGroupInfo", + "page": "vkspec" }, { "vuid": "VUID-VkBindBufferMemoryInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" }, { "vuid": "VUID-VkBindBufferMemoryInfo-buffer-parameter", - "text": " buffer must be a valid VkBuffer handle" + "text": "buffer must be a valid VkBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-VkBindBufferMemoryInfo-memory-parameter", - "text": " memory must be a valid VkDeviceMemory handle" + "text": "memory must be a valid VkDeviceMemory handle", + "page": "vkspec" }, { "vuid": "VUID-VkBindBufferMemoryInfo-commonparent", - "text": " Both of buffer, and memory must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of buffer, and memory must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -19918,19 +24786,23 @@ "core": [ { "vuid": "VUID-VkBindBufferMemoryDeviceGroupInfo-deviceIndexCount-01606", - "text": " deviceIndexCount must either be zero or equal to the number of physical devices in the logical device" + "text": "deviceIndexCount must either be zero or equal to the number of physical devices in the logical device", + "page": "vkspec" }, { "vuid": "VUID-VkBindBufferMemoryDeviceGroupInfo-pDeviceIndices-01607", - "text": " All elements of pDeviceIndices must be valid device indices" + "text": "All elements of pDeviceIndices must be valid device indices", + "page": "vkspec" }, { "vuid": "VUID-VkBindBufferMemoryDeviceGroupInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkBindBufferMemoryDeviceGroupInfo-pDeviceIndices-parameter", - "text": " If deviceIndexCount is not 0, pDeviceIndices must be a valid pointer to an array of deviceIndexCount uint32_t values" + "text": "If deviceIndexCount is not 0, pDeviceIndices must be a valid pointer to an array of deviceIndexCount uint32_t values", + "page": "vkspec" } ] }, @@ -19938,103 +24810,128 @@ "core": [ { "vuid": "VUID-vkBindImageMemory-image-07460", - "text": " image must not have been bound to a memory object" + "text": "image must not have been bound to a memory object", + "page": "vkspec" }, { "vuid": "VUID-vkBindImageMemory-image-01045", - "text": " image must not have been created with any sparse memory binding flags" + "text": "image must not have been created with any sparse memory binding flags", + "page": "vkspec" }, { "vuid": "VUID-vkBindImageMemory-memoryOffset-01046", - "text": " memoryOffset must be less than the size of memory" + "text": "memoryOffset must be less than the size of memory", + "page": "vkspec" }, { "vuid": "VUID-vkBindImageMemory-image-01445", - "text": " If image requires a dedicated allocation (as reported by vkGetImageMemoryRequirements2 in VkMemoryDedicatedRequirements::requiresDedicatedAllocation for image), memory must have been created with VkMemoryDedicatedAllocateInfo::image equal to image" + "text": "If image requires a dedicated allocation (as reported by vkGetImageMemoryRequirements2 in VkMemoryDedicatedRequirements::requiresDedicatedAllocation for image), memory must have been created with VkMemoryDedicatedAllocateInfo::image equal to image", + "page": "vkspec" }, { "vuid": "VUID-vkBindImageMemory-memory-02628", - "text": " If the dedicatedAllocationImageAliasing feature is not enabled, and the VkMemoryAllocateInfo provided when memory was allocated included a VkMemoryDedicatedAllocateInfo structure in its pNext chain, and VkMemoryDedicatedAllocateInfo::image was not VK_NULL_HANDLE, then image must equal VkMemoryDedicatedAllocateInfo::image and memoryOffset must be zero" + "text": "If the dedicatedAllocationImageAliasing feature is not enabled, and the VkMemoryAllocateInfo provided when memory was allocated included a VkMemoryDedicatedAllocateInfo structure in its pNext chain, and VkMemoryDedicatedAllocateInfo::image was not VK_NULL_HANDLE, then image must equal VkMemoryDedicatedAllocateInfo::image and memoryOffset must be zero", + "page": "vkspec" }, { "vuid": "VUID-vkBindImageMemory-memory-02629", - "text": " If the dedicatedAllocationImageAliasing feature is enabled, and the VkMemoryAllocateInfo provided when memory was allocated included a VkMemoryDedicatedAllocateInfo structure in its pNext chain, and VkMemoryDedicatedAllocateInfo::image was not VK_NULL_HANDLE, then memoryOffset must be zero, and image must be either equal to VkMemoryDedicatedAllocateInfo::image or an image that was created using the same parameters in VkImageCreateInfo, with the exception that extent and arrayLayers may differ subject to the following restrictions: every dimension in the extent parameter of the image being bound must be equal to or smaller than the original image for which the allocation was created; and the arrayLayers parameter of the image being bound must be equal to or smaller than the original image for which the allocation was created" + "text": "If the dedicatedAllocationImageAliasing feature is enabled, and the VkMemoryAllocateInfo provided when memory was allocated included a VkMemoryDedicatedAllocateInfo structure in its pNext chain, and VkMemoryDedicatedAllocateInfo::image was not VK_NULL_HANDLE, then memoryOffset must be zero, and image must be either equal to VkMemoryDedicatedAllocateInfo::image or an image that was created using the same parameters in VkImageCreateInfo, with the exception that extent and arrayLayers may differ subject to the following restrictions: every dimension in the extent parameter of the image being bound must be equal to or smaller than the original image for which the allocation was created; and the arrayLayers parameter of the image being bound must be equal to or smaller than the original image for which the allocation was created", + "page": "vkspec" }, { "vuid": "VUID-vkBindImageMemory-None-01901", - "text": " If image was created with the VK_IMAGE_CREATE_PROTECTED_BIT bit set, the image must be bound to a memory object allocated with a memory type that reports VK_MEMORY_PROPERTY_PROTECTED_BIT" + "text": "If image was created with the VK_IMAGE_CREATE_PROTECTED_BIT bit set, the image must be bound to a memory object allocated with a memory type that reports VK_MEMORY_PROPERTY_PROTECTED_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkBindImageMemory-None-01902", - "text": " If image was created with the VK_IMAGE_CREATE_PROTECTED_BIT bit not set, the image must not be bound to a memory object created with a memory type that reports VK_MEMORY_PROPERTY_PROTECTED_BIT" + "text": "If image was created with the VK_IMAGE_CREATE_PROTECTED_BIT bit not set, the image must not be bound to a memory object created with a memory type that reports VK_MEMORY_PROPERTY_PROTECTED_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkBindImageMemory-image-01050", - "text": " If image was created with VkDedicatedAllocationImageCreateInfoNV::dedicatedAllocation equal to VK_TRUE, memory must have been created with VkDedicatedAllocationMemoryAllocateInfoNV::image equal to an image handle created with identical creation parameters to image and memoryOffset must be zero" + "text": "If image was created with VkDedicatedAllocationImageCreateInfoNV::dedicatedAllocation equal to VK_TRUE, memory must have been created with VkDedicatedAllocationMemoryAllocateInfoNV::image equal to an image handle created with identical creation parameters to image and memoryOffset must be zero", + "page": "vkspec" }, { "vuid": "VUID-vkBindImageMemory-apiVersion-07921", - "text": " If the VK_KHR_dedicated_allocation extension is not enabled, VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, and image was not created with VkDedicatedAllocationImageCreateInfoNV::dedicatedAllocation equal to VK_TRUE, memory must not have been allocated dedicated for a specific buffer or image" + "text": "If the VK_KHR_dedicated_allocation extension is not enabled, VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, and image was not created with VkDedicatedAllocationImageCreateInfoNV::dedicatedAllocation equal to VK_TRUE, memory must not have been allocated dedicated for a specific buffer or image", + "page": "vkspec" }, { "vuid": "VUID-vkBindImageMemory-memory-02728", - "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 VkExternalMemoryImageCreateInfo::handleTypes when image was created" + "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 VkExternalMemoryImageCreateInfo::handleTypes when image was created", + "page": "vkspec" }, { "vuid": "VUID-vkBindImageMemory-memory-02989", - "text": " If memory was created 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 VkExternalMemoryImageCreateInfo::handleTypes when image was created" + "text": "If memory was created 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 VkExternalMemoryImageCreateInfo::handleTypes when image was created", + "page": "vkspec" }, { "vuid": "VUID-vkBindImageMemory-memory-02990", - "text": " If memory was created 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 VkExternalMemoryImageCreateInfo::handleTypes when image was created" + "text": "If memory was created 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 VkExternalMemoryImageCreateInfo::handleTypes when image was created", + "page": "vkspec" }, { "vuid": "VUID-vkBindImageMemory-descriptorBufferCaptureReplay-08113", - "text": " If the image was created with the VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT bit set, memory must have been allocated with the VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT bit set" + "text": "If the image was created with the VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT bit set, memory must have been allocated with the VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT bit set", + "page": "vkspec" }, { "vuid": "VUID-vkBindImageMemory-image-09202", - "text": " If the image was created with the VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT bit set, memory must have been allocated with the VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT bit set" + "text": "If the image was created with the VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT bit set, memory must have been allocated with the VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT bit set", + "page": "vkspec" }, { "vuid": "VUID-vkBindImageMemory-image-01608", - "text": " image must not have been created with the VK_IMAGE_CREATE_DISJOINT_BIT set" + "text": "image must not have been created with the VK_IMAGE_CREATE_DISJOINT_BIT set", + "page": "vkspec" }, { "vuid": "VUID-vkBindImageMemory-memory-01047", - "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 vkGetImageMemoryRequirements with image" + "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 vkGetImageMemoryRequirements with image", + "page": "vkspec" }, { "vuid": "VUID-vkBindImageMemory-memoryOffset-01048", - "text": " memoryOffset must be an integer multiple of the alignment member of the VkMemoryRequirements structure returned from a call to vkGetImageMemoryRequirements with image" + "text": "memoryOffset must be an integer multiple of the alignment member of the VkMemoryRequirements structure returned from a call to vkGetImageMemoryRequirements with image", + "page": "vkspec" }, { "vuid": "VUID-vkBindImageMemory-size-01049", - "text": " The difference of the size of memory and memoryOffset must be greater than or equal to the size member of the VkMemoryRequirements structure returned from a call to vkGetImageMemoryRequirements with the same image" + "text": "The difference of the size of memory and memoryOffset must be greater than or equal to the size member of the VkMemoryRequirements structure returned from a call to vkGetImageMemoryRequirements with the same image", + "page": "vkspec" }, { "vuid": "VUID-vkBindImageMemory-image-06392", - "text": " If image was created with VkBufferCollectionImageCreateInfoFUCHSIA chained to VkImageCreateInfo::pNext, memory must be allocated with a VkImportMemoryBufferCollectionFUCHSIA chained to VkMemoryAllocateInfo::pNext" + "text": "If image was created with VkBufferCollectionImageCreateInfoFUCHSIA chained to VkImageCreateInfo::pNext, memory must be allocated with a VkImportMemoryBufferCollectionFUCHSIA chained to VkMemoryAllocateInfo::pNext", + "page": "vkspec" }, { "vuid": "VUID-vkBindImageMemory-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkBindImageMemory-image-parameter", - "text": " image must be a valid VkImage handle" + "text": "image must be a valid VkImage handle", + "page": "vkspec" }, { "vuid": "VUID-vkBindImageMemory-memory-parameter", - "text": " memory must be a valid VkDeviceMemory handle" + "text": "memory must be a valid VkDeviceMemory handle", + "page": "vkspec" }, { "vuid": "VUID-vkBindImageMemory-image-parent", - "text": " image must have been created, allocated, or retrieved from device" + "text": "image must have been created, allocated, or retrieved from device", + "page": "vkspec" }, { "vuid": "VUID-vkBindImageMemory-memory-parent", - "text": " memory must have been created, allocated, or retrieved from device" + "text": "memory must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -20042,23 +24939,28 @@ "core": [ { "vuid": "VUID-vkBindImageMemory2-pBindInfos-02858", - "text": " If any VkBindImageMemoryInfo::image was created with VK_IMAGE_CREATE_DISJOINT_BIT then all planes of VkBindImageMemoryInfo::image must be bound individually in separate pBindInfos" + "text": "If any VkBindImageMemoryInfo::image was created with VK_IMAGE_CREATE_DISJOINT_BIT then all planes of VkBindImageMemoryInfo::image must be bound individually in separate pBindInfos", + "page": "vkspec" }, { "vuid": "VUID-vkBindImageMemory2-pBindInfos-04006", - "text": " pBindInfos must not refer to the same image subresource more than once" + "text": "pBindInfos must not refer to the same image subresource more than once", + "page": "vkspec" }, { "vuid": "VUID-vkBindImageMemory2-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkBindImageMemory2-pBindInfos-parameter", - "text": " pBindInfos must be a valid pointer to an array of bindInfoCount valid VkBindImageMemoryInfo structures" + "text": "pBindInfos must be a valid pointer to an array of bindInfoCount valid VkBindImageMemoryInfo structures", + "page": "vkspec" }, { "vuid": "VUID-vkBindImageMemory2-bindInfoCount-arraylength", - "text": " bindInfoCount must be greater than 0" + "text": "bindInfoCount must be greater than 0", + "page": "vkspec" } ] }, @@ -20066,143 +24968,178 @@ "core": [ { "vuid": "VUID-VkBindImageMemoryInfo-image-07460", - "text": " image must not have been bound to a memory object" + "text": "image must not have been bound to a memory object", + "page": "vkspec" }, { "vuid": "VUID-VkBindImageMemoryInfo-image-01045", - "text": " image must not have been created with any sparse memory binding flags" + "text": "image must not have been created with any sparse memory binding flags", + "page": "vkspec" }, { "vuid": "VUID-VkBindImageMemoryInfo-memoryOffset-01046", - "text": " memoryOffset must be less than the size of memory" + "text": "memoryOffset must be less than the size of memory", + "page": "vkspec" }, { "vuid": "VUID-VkBindImageMemoryInfo-image-01445", - "text": " If image requires a dedicated allocation (as reported by vkGetImageMemoryRequirements2 in VkMemoryDedicatedRequirements::requiresDedicatedAllocation for image), memory must have been created with VkMemoryDedicatedAllocateInfo::image equal to image" + "text": "If image requires a dedicated allocation (as reported by vkGetImageMemoryRequirements2 in VkMemoryDedicatedRequirements::requiresDedicatedAllocation for image), memory must have been created with VkMemoryDedicatedAllocateInfo::image equal to image", + "page": "vkspec" }, { "vuid": "VUID-VkBindImageMemoryInfo-memory-02628", - "text": " If the dedicatedAllocationImageAliasing feature is not enabled, and the VkMemoryAllocateInfo provided when memory was allocated included a VkMemoryDedicatedAllocateInfo structure in its pNext chain, and VkMemoryDedicatedAllocateInfo::image was not VK_NULL_HANDLE, then image must equal VkMemoryDedicatedAllocateInfo::image and memoryOffset must be zero" + "text": "If the dedicatedAllocationImageAliasing feature is not enabled, and the VkMemoryAllocateInfo provided when memory was allocated included a VkMemoryDedicatedAllocateInfo structure in its pNext chain, and VkMemoryDedicatedAllocateInfo::image was not VK_NULL_HANDLE, then image must equal VkMemoryDedicatedAllocateInfo::image and memoryOffset must be zero", + "page": "vkspec" }, { "vuid": "VUID-VkBindImageMemoryInfo-memory-02629", - "text": " If the dedicatedAllocationImageAliasing feature is enabled, and the VkMemoryAllocateInfo provided when memory was allocated included a VkMemoryDedicatedAllocateInfo structure in its pNext chain, and VkMemoryDedicatedAllocateInfo::image was not VK_NULL_HANDLE, then memoryOffset must be zero, and image must be either equal to VkMemoryDedicatedAllocateInfo::image or an image that was created using the same parameters in VkImageCreateInfo, with the exception that extent and arrayLayers may differ subject to the following restrictions: every dimension in the extent parameter of the image being bound must be equal to or smaller than the original image for which the allocation was created; and the arrayLayers parameter of the image being bound must be equal to or smaller than the original image for which the allocation was created" + "text": "If the dedicatedAllocationImageAliasing feature is enabled, and the VkMemoryAllocateInfo provided when memory was allocated included a VkMemoryDedicatedAllocateInfo structure in its pNext chain, and VkMemoryDedicatedAllocateInfo::image was not VK_NULL_HANDLE, then memoryOffset must be zero, and image must be either equal to VkMemoryDedicatedAllocateInfo::image or an image that was created using the same parameters in VkImageCreateInfo, with the exception that extent and arrayLayers may differ subject to the following restrictions: every dimension in the extent parameter of the image being bound must be equal to or smaller than the original image for which the allocation was created; and the arrayLayers parameter of the image being bound must be equal to or smaller than the original image for which the allocation was created", + "page": "vkspec" }, { "vuid": "VUID-VkBindImageMemoryInfo-None-01901", - "text": " If image was created with the VK_IMAGE_CREATE_PROTECTED_BIT bit set, the image must be bound to a memory object allocated with a memory type that reports VK_MEMORY_PROPERTY_PROTECTED_BIT" + "text": "If image was created with the VK_IMAGE_CREATE_PROTECTED_BIT bit set, the image must be bound to a memory object allocated with a memory type that reports VK_MEMORY_PROPERTY_PROTECTED_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkBindImageMemoryInfo-None-01902", - "text": " If image was created with the VK_IMAGE_CREATE_PROTECTED_BIT bit not set, the image must not be bound to a memory object created with a memory type that reports VK_MEMORY_PROPERTY_PROTECTED_BIT" + "text": "If image was created with the VK_IMAGE_CREATE_PROTECTED_BIT bit not set, the image must not be bound to a memory object created with a memory type that reports VK_MEMORY_PROPERTY_PROTECTED_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkBindImageMemoryInfo-image-01050", - "text": " If image was created with VkDedicatedAllocationImageCreateInfoNV::dedicatedAllocation equal to VK_TRUE, memory must have been created with VkDedicatedAllocationMemoryAllocateInfoNV::image equal to an image handle created with identical creation parameters to image and memoryOffset must be zero" + "text": "If image was created with VkDedicatedAllocationImageCreateInfoNV::dedicatedAllocation equal to VK_TRUE, memory must have been created with VkDedicatedAllocationMemoryAllocateInfoNV::image equal to an image handle created with identical creation parameters to image and memoryOffset must be zero", + "page": "vkspec" }, { "vuid": "VUID-VkBindImageMemoryInfo-apiVersion-07921", - "text": " If the VK_KHR_dedicated_allocation extension is not enabled, VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, and image was not created with VkDedicatedAllocationImageCreateInfoNV::dedicatedAllocation equal to VK_TRUE, memory must not have been allocated dedicated for a specific buffer or image" + "text": "If the VK_KHR_dedicated_allocation extension is not enabled, VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, and image was not created with VkDedicatedAllocationImageCreateInfoNV::dedicatedAllocation equal to VK_TRUE, memory must not have been allocated dedicated for a specific buffer or image", + "page": "vkspec" }, { "vuid": "VUID-VkBindImageMemoryInfo-memory-02728", - "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 VkExternalMemoryImageCreateInfo::handleTypes when image was created" + "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 VkExternalMemoryImageCreateInfo::handleTypes when image was created", + "page": "vkspec" }, { "vuid": "VUID-VkBindImageMemoryInfo-memory-02989", - "text": " If memory was created 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 VkExternalMemoryImageCreateInfo::handleTypes when image was created" + "text": "If memory was created 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 VkExternalMemoryImageCreateInfo::handleTypes when image was created", + "page": "vkspec" }, { "vuid": "VUID-VkBindImageMemoryInfo-memory-02990", - "text": " If memory was created 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 VkExternalMemoryImageCreateInfo::handleTypes when image was created" + "text": "If memory was created 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 VkExternalMemoryImageCreateInfo::handleTypes when image was created", + "page": "vkspec" }, { "vuid": "VUID-VkBindImageMemoryInfo-descriptorBufferCaptureReplay-08113", - "text": " If the image was created with the VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT bit set, memory must have been allocated with the VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT bit set" + "text": "If the image was created with the VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT bit set, memory must have been allocated with the VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT bit set", + "page": "vkspec" }, { "vuid": "VUID-VkBindImageMemoryInfo-image-09202", - "text": " If the image was created with the VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT bit set, memory must have been allocated with the VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT bit set" + "text": "If the image was created with the VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT bit set, memory must have been allocated with the VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT bit set", + "page": "vkspec" }, { "vuid": "VUID-VkBindImageMemoryInfo-pNext-01615", - "text": " If the pNext chain does not include a VkBindImagePlaneMemoryInfo structure, 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 vkGetImageMemoryRequirements2 with image" + "text": "If the pNext chain does not include a VkBindImagePlaneMemoryInfo structure, 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 vkGetImageMemoryRequirements2 with image", + "page": "vkspec" }, { "vuid": "VUID-VkBindImageMemoryInfo-pNext-01616", - "text": " If the pNext chain does not include a VkBindImagePlaneMemoryInfo structure, memoryOffset must be an integer multiple of the alignment member of the VkMemoryRequirements structure returned from a call to vkGetImageMemoryRequirements2 with image" + "text": "If the pNext chain does not include a VkBindImagePlaneMemoryInfo structure, memoryOffset must be an integer multiple of the alignment member of the VkMemoryRequirements structure returned from a call to vkGetImageMemoryRequirements2 with image", + "page": "vkspec" }, { "vuid": "VUID-VkBindImageMemoryInfo-pNext-01617", - "text": " If the pNext chain does not include a VkBindImagePlaneMemoryInfo structure, the difference of the size of memory and memoryOffset must be greater than or equal to the size member of the VkMemoryRequirements structure returned from a call to vkGetImageMemoryRequirements2 with the same image" + "text": "If the pNext chain does not include a VkBindImagePlaneMemoryInfo structure, the difference of the size of memory and memoryOffset must be greater than or equal to the size member of the VkMemoryRequirements structure returned from a call to vkGetImageMemoryRequirements2 with the same image", + "page": "vkspec" }, { "vuid": "VUID-VkBindImageMemoryInfo-pNext-01618", - "text": " If the pNext chain includes a VkBindImagePlaneMemoryInfo structure, image must have been created with the VK_IMAGE_CREATE_DISJOINT_BIT bit set" + "text": "If the pNext chain includes a VkBindImagePlaneMemoryInfo structure, image must have been created with the VK_IMAGE_CREATE_DISJOINT_BIT bit set", + "page": "vkspec" }, { "vuid": "VUID-VkBindImageMemoryInfo-image-07736", - "text": " If image was created with the VK_IMAGE_CREATE_DISJOINT_BIT bit set, then the pNext chain must include a VkBindImagePlaneMemoryInfo structure" + "text": "If image was created with the VK_IMAGE_CREATE_DISJOINT_BIT bit set, then the pNext chain must include a VkBindImagePlaneMemoryInfo structure", + "page": "vkspec" }, { "vuid": "VUID-VkBindImageMemoryInfo-pNext-01619", - "text": " If the pNext chain includes a VkBindImagePlaneMemoryInfo structure, 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 vkGetImageMemoryRequirements2 with image and where VkBindImagePlaneMemoryInfo::planeAspect corresponds to the VkImagePlaneMemoryRequirementsInfo::planeAspect in the VkImageMemoryRequirementsInfo2 structure’s pNext chain" + "text": "If the pNext chain includes a VkBindImagePlaneMemoryInfo structure, 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 vkGetImageMemoryRequirements2 with image and where VkBindImagePlaneMemoryInfo::planeAspect corresponds to the VkImagePlaneMemoryRequirementsInfo::planeAspect in the VkImageMemoryRequirementsInfo2 structure’s pNext chain", + "page": "vkspec" }, { "vuid": "VUID-VkBindImageMemoryInfo-pNext-01620", - "text": " If the pNext chain includes a VkBindImagePlaneMemoryInfo structure, memoryOffset must be an integer multiple of the alignment member of the VkMemoryRequirements structure returned from a call to vkGetImageMemoryRequirements2 with image and where VkBindImagePlaneMemoryInfo::planeAspect corresponds to the VkImagePlaneMemoryRequirementsInfo::planeAspect in the VkImageMemoryRequirementsInfo2 structure’s pNext chain" + "text": "If the pNext chain includes a VkBindImagePlaneMemoryInfo structure, memoryOffset must be an integer multiple of the alignment member of the VkMemoryRequirements structure returned from a call to vkGetImageMemoryRequirements2 with image and where VkBindImagePlaneMemoryInfo::planeAspect corresponds to the VkImagePlaneMemoryRequirementsInfo::planeAspect in the VkImageMemoryRequirementsInfo2 structure’s pNext chain", + "page": "vkspec" }, { "vuid": "VUID-VkBindImageMemoryInfo-pNext-01621", - "text": " If the pNext chain includes a VkBindImagePlaneMemoryInfo structure, the difference of the size of memory and memoryOffset must be greater than or equal to the size member of the VkMemoryRequirements structure returned from a call to vkGetImageMemoryRequirements2 with the same image and where VkBindImagePlaneMemoryInfo::planeAspect corresponds to the VkImagePlaneMemoryRequirementsInfo::planeAspect in the VkImageMemoryRequirementsInfo2 structure’s pNext chain" + "text": "If the pNext chain includes a VkBindImagePlaneMemoryInfo structure, the difference of the size of memory and memoryOffset must be greater than or equal to the size member of the VkMemoryRequirements structure returned from a call to vkGetImageMemoryRequirements2 with the same image and where VkBindImagePlaneMemoryInfo::planeAspect corresponds to the VkImagePlaneMemoryRequirementsInfo::planeAspect in the VkImageMemoryRequirementsInfo2 structure’s pNext chain", + "page": "vkspec" }, { "vuid": "VUID-VkBindImageMemoryInfo-pNext-01626", - "text": " If the pNext chain includes a VkBindImageMemoryDeviceGroupInfo structure, all instances of memory specified by VkBindImageMemoryDeviceGroupInfo::pDeviceIndices must have been allocated" + "text": "If the pNext chain includes a VkBindImageMemoryDeviceGroupInfo structure, all instances of memory specified by VkBindImageMemoryDeviceGroupInfo::pDeviceIndices must have been allocated", + "page": "vkspec" }, { "vuid": "VUID-VkBindImageMemoryInfo-pNext-01627", - "text": " If the pNext chain includes a VkBindImageMemoryDeviceGroupInfo structure, and VkBindImageMemoryDeviceGroupInfo::splitInstanceBindRegionCount is not zero, then image must have been created with the VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT bit set" + "text": "If the pNext chain includes a VkBindImageMemoryDeviceGroupInfo structure, and VkBindImageMemoryDeviceGroupInfo::splitInstanceBindRegionCount is not zero, then image must have been created with the VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT bit set", + "page": "vkspec" }, { "vuid": "VUID-VkBindImageMemoryInfo-pNext-01628", - "text": " If the pNext chain includes a VkBindImageMemoryDeviceGroupInfo structure, all elements of VkBindImageMemoryDeviceGroupInfo::pSplitInstanceBindRegions must be valid rectangles contained within the dimensions of image" + "text": "If the pNext chain includes a VkBindImageMemoryDeviceGroupInfo structure, all elements of VkBindImageMemoryDeviceGroupInfo::pSplitInstanceBindRegions must be valid rectangles contained within the dimensions of image", + "page": "vkspec" }, { "vuid": "VUID-VkBindImageMemoryInfo-pNext-01629", - "text": " If the pNext chain includes a VkBindImageMemoryDeviceGroupInfo structure, the union of the areas of all elements of VkBindImageMemoryDeviceGroupInfo::pSplitInstanceBindRegions that correspond to the same instance of image must cover the entire image" + "text": "If the pNext chain includes a VkBindImageMemoryDeviceGroupInfo structure, the union of the areas of all elements of VkBindImageMemoryDeviceGroupInfo::pSplitInstanceBindRegions that correspond to the same instance of image must cover the entire image", + "page": "vkspec" }, { "vuid": "VUID-VkBindImageMemoryInfo-image-01630", - "text": " If image was created with a valid swapchain handle in VkImageSwapchainCreateInfoKHR::swapchain, then the pNext chain must include a VkBindImageMemorySwapchainInfoKHR structure containing the same swapchain handle" + "text": "If image was created with a valid swapchain handle in VkImageSwapchainCreateInfoKHR::swapchain, then the pNext chain must include a VkBindImageMemorySwapchainInfoKHR structure containing the same swapchain handle", + "page": "vkspec" }, { "vuid": "VUID-VkBindImageMemoryInfo-pNext-01631", - "text": " If the pNext chain includes a VkBindImageMemorySwapchainInfoKHR structure, memory must be VK_NULL_HANDLE" + "text": "If the pNext chain includes a VkBindImageMemorySwapchainInfoKHR structure, memory must be VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-VkBindImageMemoryInfo-pNext-01632", - "text": " If the pNext chain does not include a VkBindImageMemorySwapchainInfoKHR structure, memory must be a valid VkDeviceMemory handle" + "text": "If the pNext chain does not include a VkBindImageMemorySwapchainInfoKHR structure, memory must be a valid VkDeviceMemory handle", + "page": "vkspec" }, { "vuid": "VUID-VkBindImageMemoryInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkBindImageMemoryInfo-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 VkBindImageMemoryDeviceGroupInfo, VkBindImageMemorySwapchainInfoKHR, or VkBindImagePlaneMemoryInfo" + "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 VkBindImageMemoryDeviceGroupInfo, VkBindImageMemorySwapchainInfoKHR, or VkBindImagePlaneMemoryInfo", + "page": "vkspec" }, { "vuid": "VUID-VkBindImageMemoryInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" }, { "vuid": "VUID-VkBindImageMemoryInfo-image-parameter", - "text": " image must be a valid VkImage handle" + "text": "image must be a valid VkImage handle", + "page": "vkspec" }, { "vuid": "VUID-VkBindImageMemoryInfo-commonparent", - "text": " Both of image, and memory that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of image, and memory that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -20210,51 +25147,63 @@ "core": [ { "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-deviceIndexCount-01633", - "text": " At least one of deviceIndexCount and splitInstanceBindRegionCount must be zero" + "text": "At least one of deviceIndexCount and splitInstanceBindRegionCount must be zero", + "page": "vkspec" }, { "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-deviceIndexCount-01634", - "text": " deviceIndexCount must either be zero or equal to the number of physical devices in the logical device" + "text": "deviceIndexCount must either be zero or equal to the number of physical devices in the logical device", + "page": "vkspec" }, { "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-pDeviceIndices-01635", - "text": " All elements of pDeviceIndices must be valid device indices" + "text": "All elements of pDeviceIndices must be valid device indices", + "page": "vkspec" }, { "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-splitInstanceBindRegionCount-01636", - "text": " splitInstanceBindRegionCount must either be zero or equal to the number of physical devices in the logical device squared" + "text": "splitInstanceBindRegionCount must either be zero or equal to the number of physical devices in the logical device squared", + "page": "vkspec" }, { "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-pSplitInstanceBindRegions-01637", - "text": " Elements of pSplitInstanceBindRegions that correspond to the same instance of an image must not overlap" + "text": "Elements of pSplitInstanceBindRegions that correspond to the same instance of an image must not overlap", + "page": "vkspec" }, { "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-offset-01638", - "text": " The offset.x member of any element of pSplitInstanceBindRegions must be a multiple of the sparse image block width (VkSparseImageFormatProperties::imageGranularity.width) of all non-metadata aspects of the image" + "text": "The offset.x member of any element of pSplitInstanceBindRegions must be a multiple of the sparse image block width (VkSparseImageFormatProperties::imageGranularity.width) of all non-metadata aspects of the image", + "page": "vkspec" }, { "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-offset-01639", - "text": " The offset.y member of any element of pSplitInstanceBindRegions must be a multiple of the sparse image block height (VkSparseImageFormatProperties::imageGranularity.height) of all non-metadata aspects of the image" + "text": "The offset.y member of any element of pSplitInstanceBindRegions must be a multiple of the sparse image block height (VkSparseImageFormatProperties::imageGranularity.height) of all non-metadata aspects of the image", + "page": "vkspec" }, { "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-extent-01640", - "text": " The extent.width member of any element of pSplitInstanceBindRegions must either be a multiple of the sparse image block width of all non-metadata aspects of the image, or else extent.width + offset.x must equal the width of the image subresource" + "text": "The extent.width member of any element of pSplitInstanceBindRegions must either be a multiple of the sparse image block width of all non-metadata aspects of the image, or else extent.width + offset.x must equal the width of the image subresource", + "page": "vkspec" }, { "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-extent-01641", - "text": " The extent.height member of any element of pSplitInstanceBindRegions must either be a multiple of the sparse image block height of all non-metadata aspects of the image, or else extent.height + offset.y must equal the height of the image subresource" + "text": "The extent.height member of any element of pSplitInstanceBindRegions must either be a multiple of the sparse image block height of all non-metadata aspects of the image, or else extent.height + offset.y must equal the height of the image subresource", + "page": "vkspec" }, { "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-pDeviceIndices-parameter", - "text": " If deviceIndexCount is not 0, pDeviceIndices must be a valid pointer to an array of deviceIndexCount uint32_t values" + "text": "If deviceIndexCount is not 0, pDeviceIndices must be a valid pointer to an array of deviceIndexCount uint32_t values", + "page": "vkspec" }, { "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-pSplitInstanceBindRegions-parameter", - "text": " If splitInstanceBindRegionCount is not 0, pSplitInstanceBindRegions must be a valid pointer to an array of splitInstanceBindRegionCount VkRect2D structures" + "text": "If splitInstanceBindRegionCount is not 0, pSplitInstanceBindRegions must be a valid pointer to an array of splitInstanceBindRegionCount VkRect2D structures", + "page": "vkspec" } ] }, @@ -20262,19 +25211,23 @@ "core": [ { "vuid": "VUID-VkBindImageMemorySwapchainInfoKHR-imageIndex-01644", - "text": " imageIndex must be less than the number of images in swapchain" + "text": "imageIndex must be less than the number of images in swapchain", + "page": "vkspec" }, { "vuid": "VUID-VkBindImageMemorySwapchainInfoKHR-swapchain-07756", - "text": " If the swapchain has been created with VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT, imageIndex must be one that has previously been returned by vkAcquireNextImageKHR or vkAcquireNextImage2KHR" + "text": "If the swapchain has been created with VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT, imageIndex must be one that has previously been returned by vkAcquireNextImageKHR or vkAcquireNextImage2KHR", + "page": "vkspec" }, { "vuid": "VUID-VkBindImageMemorySwapchainInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkBindImageMemorySwapchainInfoKHR-swapchain-parameter", - "text": " swapchain must be a valid VkSwapchainKHR handle" + "text": "swapchain must be a valid VkSwapchainKHR handle", + "page": "vkspec" } ] }, @@ -20282,19 +25235,23 @@ "core": [ { "vuid": "VUID-VkBindImagePlaneMemoryInfo-planeAspect-02283", - "text": " If the image’s tiling is VK_IMAGE_TILING_LINEAR or VK_IMAGE_TILING_OPTIMAL, then planeAspect must be a single valid multi-planar aspect mask" + "text": "If the image’s tiling is VK_IMAGE_TILING_LINEAR or VK_IMAGE_TILING_OPTIMAL, then planeAspect must be a single valid multi-planar aspect mask bit", + "page": "vkspec" }, { "vuid": "VUID-VkBindImagePlaneMemoryInfo-planeAspect-02284", - "text": " If the image’s tiling is VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, then planeAspect must be a single valid memory plane for the image (that is, aspectMask must specify a plane index that is less than the VkDrmFormatModifierPropertiesEXT::drmFormatModifierPlaneCount associated with the image’s format and VkImageDrmFormatModifierPropertiesEXT::drmFormatModifier)" + "text": "If the image’s tiling is VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, then planeAspect must be a single valid memory plane for the image (that is, aspectMask must specify a plane index that is less than the VkDrmFormatModifierPropertiesEXT::drmFormatModifierPlaneCount associated with the image’s format and VkImageDrmFormatModifierPropertiesEXT::drmFormatModifier)", + "page": "vkspec" }, { "vuid": "VUID-VkBindImagePlaneMemoryInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkBindImagePlaneMemoryInfo-planeAspect-parameter", - "text": " planeAspect must be a valid VkImageAspectFlagBits value" + "text": "planeAspect must be a valid VkImageAspectFlagBits value", + "page": "vkspec" } ] }, @@ -20302,19 +25259,23 @@ "core": [ { "vuid": "VUID-vkCreateBufferCollectionFUCHSIA-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkCreateBufferCollectionFUCHSIA-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkBufferCollectionCreateInfoFUCHSIA structure" + "text": "pCreateInfo must be a valid pointer to a valid VkBufferCollectionCreateInfoFUCHSIA structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateBufferCollectionFUCHSIA-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateBufferCollectionFUCHSIA-pCollection-parameter", - "text": " pCollection must be a valid pointer to a VkBufferCollectionFUCHSIA handle" + "text": "pCollection must be a valid pointer to a VkBufferCollectionFUCHSIA handle", + "page": "vkspec" } ] }, @@ -20322,15 +25283,18 @@ "core": [ { "vuid": "VUID-VkBufferCollectionCreateInfoFUCHSIA-collectionToken-06393", - "text": " collectionToken must be a valid zx_handle_t to a Zircon channel allocated from Sysmem (fuchsia.sysmem.Allocator/AllocateSharedCollection) with ZX_DEFAULT_CHANNEL_RIGHTS rights" + "text": "collectionToken must be a valid zx_handle_t to a Zircon channel allocated from Sysmem (fuchsia.sysmem.Allocator/AllocateSharedCollection) with ZX_DEFAULT_CHANNEL_RIGHTS rights", + "page": "vkspec" }, { "vuid": "VUID-VkBufferCollectionCreateInfoFUCHSIA-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA" + "text": "sType must be VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA", + "page": "vkspec" }, { "vuid": "VUID-VkBufferCollectionCreateInfoFUCHSIA-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" } ] }, @@ -20338,23 +25302,28 @@ "core": [ { "vuid": "VUID-vkSetBufferCollectionImageConstraintsFUCHSIA-collection-06394", - "text": " vkSetBufferCollectionImageConstraintsFUCHSIA or vkSetBufferCollectionBufferConstraintsFUCHSIA must not have already been called on collection" + "text": "vkSetBufferCollectionImageConstraintsFUCHSIA or vkSetBufferCollectionBufferConstraintsFUCHSIA must not have already been called on collection", + "page": "vkspec" }, { "vuid": "VUID-vkSetBufferCollectionImageConstraintsFUCHSIA-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkSetBufferCollectionImageConstraintsFUCHSIA-collection-parameter", - "text": " collection must be a valid VkBufferCollectionFUCHSIA handle" + "text": "collection must be a valid VkBufferCollectionFUCHSIA handle", + "page": "vkspec" }, { "vuid": "VUID-vkSetBufferCollectionImageConstraintsFUCHSIA-pImageConstraintsInfo-parameter", - "text": " pImageConstraintsInfo must be a valid pointer to a valid VkImageConstraintsInfoFUCHSIA structure" + "text": "pImageConstraintsInfo must be a valid pointer to a valid VkImageConstraintsInfoFUCHSIA structure", + "page": "vkspec" }, { "vuid": "VUID-vkSetBufferCollectionImageConstraintsFUCHSIA-collection-parent", - "text": " collection must have been created, allocated, or retrieved from device" + "text": "collection must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -20362,55 +25331,68 @@ "core": [ { "vuid": "VUID-VkImageConstraintsInfoFUCHSIA-pFormatConstraints-06395", - "text": " All elements of pFormatConstraints must have at least one bit set in its VkImageFormatConstraintsInfoFUCHSIA::requiredFormatFeatures" + "text": "All elements of pFormatConstraints must have at least one bit set in its VkImageFormatConstraintsInfoFUCHSIA::requiredFormatFeatures", + "page": "vkspec" }, { "vuid": "VUID-VkImageConstraintsInfoFUCHSIA-pFormatConstraints-06396", - "text": " If pFormatConstraints::imageCreateInfo::usage contains VK_IMAGE_USAGE_SAMPLED_BIT, then pFormatConstraints::requiredFormatFeatures must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT" + "text": "If pFormatConstraints::imageCreateInfo::usage contains VK_IMAGE_USAGE_SAMPLED_BIT, then pFormatConstraints::requiredFormatFeatures must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageConstraintsInfoFUCHSIA-pFormatConstraints-06397", - "text": " If pFormatConstraints::imageCreateInfo::usage contains VK_IMAGE_USAGE_STORAGE_BIT, then pFormatConstraints::requiredFormatFeatures must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT" + "text": "If pFormatConstraints::imageCreateInfo::usage contains VK_IMAGE_USAGE_STORAGE_BIT, then pFormatConstraints::requiredFormatFeatures must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageConstraintsInfoFUCHSIA-pFormatConstraints-06398", - "text": " If pFormatConstraints::imageCreateInfo::usage contains VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, then pFormatConstraints::requiredFormatFeatures must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT" + "text": "If pFormatConstraints::imageCreateInfo::usage contains VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, then pFormatConstraints::requiredFormatFeatures must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageConstraintsInfoFUCHSIA-pFormatConstraints-06399", - "text": " If pFormatConstraints::imageCreateInfo::usage contains VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, then pFormatConstraints::requiredFormatFeatures must contain VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT" + "text": "If pFormatConstraints::imageCreateInfo::usage contains VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, then pFormatConstraints::requiredFormatFeatures must contain VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageConstraintsInfoFUCHSIA-pFormatConstraints-06400", - "text": " If pFormatConstraints::imageCreateInfo::usage contains VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, then pFormatConstraints::requiredFormatFeatures must contain at least one of VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT or VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT" + "text": "If pFormatConstraints::imageCreateInfo::usage contains VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, then pFormatConstraints::requiredFormatFeatures must contain at least one of VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT or VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageConstraintsInfoFUCHSIA-attachmentFragmentShadingRate-06401", - "text": " If the attachmentFragmentShadingRate feature is enabled, and pFormatConstraints::imageCreateInfo::usage contains VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, then pFormatConstraints::requiredFormatFeatures must contain VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR" + "text": "If the attachmentFragmentShadingRate feature is enabled, and pFormatConstraints::imageCreateInfo::usage contains VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, then pFormatConstraints::requiredFormatFeatures must contain VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkImageConstraintsInfoFUCHSIA-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA" + "text": "sType must be VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA", + "page": "vkspec" }, { "vuid": "VUID-VkImageConstraintsInfoFUCHSIA-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkImageConstraintsInfoFUCHSIA-pFormatConstraints-parameter", - "text": " pFormatConstraints must be a valid pointer to an array of formatConstraintsCount valid VkImageFormatConstraintsInfoFUCHSIA structures" + "text": "pFormatConstraints must be a valid pointer to an array of formatConstraintsCount valid VkImageFormatConstraintsInfoFUCHSIA structures", + "page": "vkspec" }, { "vuid": "VUID-VkImageConstraintsInfoFUCHSIA-bufferCollectionConstraints-parameter", - "text": " bufferCollectionConstraints must be a valid VkBufferCollectionConstraintsInfoFUCHSIA structure" + "text": "bufferCollectionConstraints must be a valid VkBufferCollectionConstraintsInfoFUCHSIA structure", + "page": "vkspec" }, { "vuid": "VUID-VkImageConstraintsInfoFUCHSIA-flags-parameter", - "text": " flags must be a valid combination of VkImageConstraintsInfoFlagBitsFUCHSIA values" + "text": "flags must be a valid combination of VkImageConstraintsInfoFlagBitsFUCHSIA values", + "page": "vkspec" }, { "vuid": "VUID-VkImageConstraintsInfoFUCHSIA-formatConstraintsCount-arraylength", - "text": " formatConstraintsCount must be greater than 0" + "text": "formatConstraintsCount must be greater than 0", + "page": "vkspec" } ] }, @@ -20418,35 +25400,43 @@ "core": [ { "vuid": "VUID-VkImageFormatConstraintsInfoFUCHSIA-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA" + "text": "sType must be VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA", + "page": "vkspec" }, { "vuid": "VUID-VkImageFormatConstraintsInfoFUCHSIA-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkImageFormatConstraintsInfoFUCHSIA-imageCreateInfo-parameter", - "text": " imageCreateInfo must be a valid VkImageCreateInfo structure" + "text": "imageCreateInfo must be a valid VkImageCreateInfo structure", + "page": "vkspec" }, { "vuid": "VUID-VkImageFormatConstraintsInfoFUCHSIA-requiredFormatFeatures-parameter", - "text": " requiredFormatFeatures must be a valid combination of VkFormatFeatureFlagBits values" + "text": "requiredFormatFeatures must be a valid combination of VkFormatFeatureFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkImageFormatConstraintsInfoFUCHSIA-requiredFormatFeatures-requiredbitmask", - "text": " requiredFormatFeatures must not be 0" + "text": "requiredFormatFeatures must not be 0", + "page": "vkspec" }, { "vuid": "VUID-VkImageFormatConstraintsInfoFUCHSIA-flags-zerobitmask", - "text": " flags must be 0" + "text": "flags must be 0", + "page": "vkspec" }, { "vuid": "VUID-VkImageFormatConstraintsInfoFUCHSIA-pColorSpaces-parameter", - "text": " pColorSpaces must be a valid pointer to an array of colorSpaceCount valid VkSysmemColorSpaceFUCHSIA structures" + "text": "pColorSpaces must be a valid pointer to an array of colorSpaceCount valid VkSysmemColorSpaceFUCHSIA structures", + "page": "vkspec" }, { "vuid": "VUID-VkImageFormatConstraintsInfoFUCHSIA-colorSpaceCount-arraylength", - "text": " colorSpaceCount must be greater than 0" + "text": "colorSpaceCount must be greater than 0", + "page": "vkspec" } ] }, @@ -20454,11 +25444,13 @@ "core": [ { "vuid": "VUID-VkBufferCollectionConstraintsInfoFUCHSIA-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA" + "text": "sType must be VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA", + "page": "vkspec" }, { "vuid": "VUID-VkBufferCollectionConstraintsInfoFUCHSIA-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" } ] }, @@ -20466,15 +25458,18 @@ "core": [ { "vuid": "VUID-VkSysmemColorSpaceFUCHSIA-colorSpace-06402", - "text": " colorSpace must be a ColorSpaceType as defined in fuchsia.sysmem/image_formats.fidl" + "text": "colorSpace must be a ColorSpaceType as defined in fuchsia.sysmem/image_formats.fidl", + "page": "vkspec" }, { "vuid": "VUID-VkSysmemColorSpaceFUCHSIA-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA" + "text": "sType must be VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA", + "page": "vkspec" }, { "vuid": "VUID-VkSysmemColorSpaceFUCHSIA-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" } ] }, @@ -20482,23 +25477,28 @@ "core": [ { "vuid": "VUID-vkSetBufferCollectionBufferConstraintsFUCHSIA-collection-06403", - "text": " vkSetBufferCollectionImageConstraintsFUCHSIA or vkSetBufferCollectionBufferConstraintsFUCHSIA must not have already been called on collection" + "text": "vkSetBufferCollectionImageConstraintsFUCHSIA or vkSetBufferCollectionBufferConstraintsFUCHSIA must not have already been called on collection", + "page": "vkspec" }, { "vuid": "VUID-vkSetBufferCollectionBufferConstraintsFUCHSIA-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkSetBufferCollectionBufferConstraintsFUCHSIA-collection-parameter", - "text": " collection must be a valid VkBufferCollectionFUCHSIA handle" + "text": "collection must be a valid VkBufferCollectionFUCHSIA handle", + "page": "vkspec" }, { "vuid": "VUID-vkSetBufferCollectionBufferConstraintsFUCHSIA-pBufferConstraintsInfo-parameter", - "text": " pBufferConstraintsInfo must be a valid pointer to a valid VkBufferConstraintsInfoFUCHSIA structure" + "text": "pBufferConstraintsInfo must be a valid pointer to a valid VkBufferConstraintsInfoFUCHSIA structure", + "page": "vkspec" }, { "vuid": "VUID-vkSetBufferCollectionBufferConstraintsFUCHSIA-collection-parent", - "text": " collection must have been created, allocated, or retrieved from device" + "text": "collection must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -20506,27 +25506,33 @@ "core": [ { "vuid": "VUID-VkBufferConstraintsInfoFUCHSIA-requiredFormatFeatures-06404", - "text": " The requiredFormatFeatures bitmask of VkFormatFeatureFlagBits must be chosen from among the buffer compatible format features listed in buffer compatible format features" + "text": "The requiredFormatFeatures bitmask of VkFormatFeatureFlagBits must be chosen from among the buffer compatible format features listed in buffer compatible format features", + "page": "vkspec" }, { "vuid": "VUID-VkBufferConstraintsInfoFUCHSIA-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA" + "text": "sType must be VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA", + "page": "vkspec" }, { "vuid": "VUID-VkBufferConstraintsInfoFUCHSIA-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkBufferConstraintsInfoFUCHSIA-createInfo-parameter", - "text": " createInfo must be a valid VkBufferCreateInfo structure" + "text": "createInfo must be a valid VkBufferCreateInfo structure", + "page": "vkspec" }, { "vuid": "VUID-VkBufferConstraintsInfoFUCHSIA-requiredFormatFeatures-parameter", - "text": " requiredFormatFeatures must be a valid combination of VkFormatFeatureFlagBits values" + "text": "requiredFormatFeatures must be a valid combination of VkFormatFeatureFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkBufferConstraintsInfoFUCHSIA-bufferCollectionConstraints-parameter", - "text": " bufferCollectionConstraints must be a valid VkBufferCollectionConstraintsInfoFUCHSIA structure" + "text": "bufferCollectionConstraints must be a valid VkBufferCollectionConstraintsInfoFUCHSIA structure", + "page": "vkspec" } ] }, @@ -20534,23 +25540,28 @@ "core": [ { "vuid": "VUID-vkGetBufferCollectionPropertiesFUCHSIA-None-06405", - "text": " Prior to calling vkGetBufferCollectionPropertiesFUCHSIA, the constraints on the buffer collection must have been set by either vkSetBufferCollectionImageConstraintsFUCHSIA or vkSetBufferCollectionBufferConstraintsFUCHSIA" + "text": "Prior to calling vkGetBufferCollectionPropertiesFUCHSIA, the constraints on the buffer collection must have been set by either vkSetBufferCollectionImageConstraintsFUCHSIA or vkSetBufferCollectionBufferConstraintsFUCHSIA", + "page": "vkspec" }, { "vuid": "VUID-vkGetBufferCollectionPropertiesFUCHSIA-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetBufferCollectionPropertiesFUCHSIA-collection-parameter", - "text": " collection must be a valid VkBufferCollectionFUCHSIA handle" + "text": "collection must be a valid VkBufferCollectionFUCHSIA handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetBufferCollectionPropertiesFUCHSIA-pProperties-parameter", - "text": " pProperties must be a valid pointer to a VkBufferCollectionPropertiesFUCHSIA structure" + "text": "pProperties must be a valid pointer to a VkBufferCollectionPropertiesFUCHSIA structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetBufferCollectionPropertiesFUCHSIA-collection-parent", - "text": " collection must have been created, allocated, or retrieved from device" + "text": "collection must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -20558,43 +25569,53 @@ "core": [ { "vuid": "VUID-VkBufferCollectionPropertiesFUCHSIA-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA" + "text": "sType must be VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA", + "page": "vkspec" }, { "vuid": "VUID-VkBufferCollectionPropertiesFUCHSIA-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkBufferCollectionPropertiesFUCHSIA-formatFeatures-parameter", - "text": " formatFeatures must be a valid combination of VkFormatFeatureFlagBits values" + "text": "formatFeatures must be a valid combination of VkFormatFeatureFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkBufferCollectionPropertiesFUCHSIA-formatFeatures-requiredbitmask", - "text": " formatFeatures must not be 0" + "text": "formatFeatures must not be 0", + "page": "vkspec" }, { "vuid": "VUID-VkBufferCollectionPropertiesFUCHSIA-sysmemColorSpaceIndex-parameter", - "text": " sysmemColorSpaceIndex must be a valid VkSysmemColorSpaceFUCHSIA structure" + "text": "sysmemColorSpaceIndex must be a valid VkSysmemColorSpaceFUCHSIA structure", + "page": "vkspec" }, { "vuid": "VUID-VkBufferCollectionPropertiesFUCHSIA-samplerYcbcrConversionComponents-parameter", - "text": " samplerYcbcrConversionComponents must be a valid VkComponentMapping structure" + "text": "samplerYcbcrConversionComponents must be a valid VkComponentMapping structure", + "page": "vkspec" }, { "vuid": "VUID-VkBufferCollectionPropertiesFUCHSIA-suggestedYcbcrModel-parameter", - "text": " suggestedYcbcrModel must be a valid VkSamplerYcbcrModelConversion value" + "text": "suggestedYcbcrModel must be a valid VkSamplerYcbcrModelConversion value", + "page": "vkspec" }, { "vuid": "VUID-VkBufferCollectionPropertiesFUCHSIA-suggestedYcbcrRange-parameter", - "text": " suggestedYcbcrRange must be a valid VkSamplerYcbcrRange value" + "text": "suggestedYcbcrRange must be a valid VkSamplerYcbcrRange value", + "page": "vkspec" }, { "vuid": "VUID-VkBufferCollectionPropertiesFUCHSIA-suggestedXChromaOffset-parameter", - "text": " suggestedXChromaOffset must be a valid VkChromaLocation value" + "text": "suggestedXChromaOffset must be a valid VkChromaLocation value", + "page": "vkspec" }, { "vuid": "VUID-VkBufferCollectionPropertiesFUCHSIA-suggestedYChromaOffset-parameter", - "text": " suggestedYChromaOffset must be a valid VkChromaLocation value" + "text": "suggestedYChromaOffset must be a valid VkChromaLocation value", + "page": "vkspec" } ] }, @@ -20602,15 +25623,18 @@ "core": [ { "vuid": "VUID-VkImportMemoryBufferCollectionFUCHSIA-index-06406", - "text": " index must be less than the value retrieved as VkBufferCollectionPropertiesFUCHSIA:bufferCount" + "text": "index must be less than the value retrieved as VkBufferCollectionPropertiesFUCHSIA:bufferCount", + "page": "vkspec" }, { "vuid": "VUID-VkImportMemoryBufferCollectionFUCHSIA-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA" + "text": "sType must be VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA", + "page": "vkspec" }, { "vuid": "VUID-VkImportMemoryBufferCollectionFUCHSIA-collection-parameter", - "text": " collection must be a valid VkBufferCollectionFUCHSIA handle" + "text": "collection must be a valid VkBufferCollectionFUCHSIA handle", + "page": "vkspec" } ] }, @@ -20618,23 +25642,28 @@ "core": [ { "vuid": "VUID-vkDestroyBufferCollectionFUCHSIA-collection-06407", - "text": " VkImage and VkBuffer objects that referenced collection upon creation by inclusion of a VkBufferCollectionImageCreateInfoFUCHSIA or VkBufferCollectionBufferCreateInfoFUCHSIA chained to their VkImageCreateInfo or VkBufferCreateInfo structures respectively, may outlive collection" + "text": "VkImage and VkBuffer objects that referenced collection upon creation by inclusion of a VkBufferCollectionImageCreateInfoFUCHSIA or VkBufferCollectionBufferCreateInfoFUCHSIA chained to their VkImageCreateInfo or VkBufferCreateInfo structures respectively, may outlive collection", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyBufferCollectionFUCHSIA-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyBufferCollectionFUCHSIA-collection-parameter", - "text": " collection must be a valid VkBufferCollectionFUCHSIA handle" + "text": "collection must be a valid VkBufferCollectionFUCHSIA handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyBufferCollectionFUCHSIA-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyBufferCollectionFUCHSIA-collection-parent", - "text": " collection must have been created, allocated, or retrieved from device" + "text": "collection must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -20642,23 +25671,28 @@ "core": [ { "vuid": "VUID-vkCreateSampler-maxSamplerAllocationCount-04110", - "text": " There must be less than VkPhysicalDeviceLimits::maxSamplerAllocationCount VkSampler objects currently created on the device" + "text": "There must be less than VkPhysicalDeviceLimits::maxSamplerAllocationCount VkSampler objects currently created on the device", + "page": "vkspec" }, { "vuid": "VUID-vkCreateSampler-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkCreateSampler-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkSamplerCreateInfo structure" + "text": "pCreateInfo must be a valid pointer to a valid VkSamplerCreateInfo structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateSampler-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateSampler-pSampler-parameter", - "text": " pSampler must be a valid pointer to a VkSampler handle" + "text": "pSampler must be a valid pointer to a VkSampler handle", + "page": "vkspec" } ] }, @@ -20666,211 +25700,263 @@ "core": [ { "vuid": "VUID-VkSamplerCreateInfo-mipLodBias-01069", - "text": " The absolute value of mipLodBias must be less than or equal to VkPhysicalDeviceLimits::maxSamplerLodBias" + "text": "The absolute value of mipLodBias must be less than or equal to VkPhysicalDeviceLimits::maxSamplerLodBias", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerCreateInfo-samplerMipLodBias-04467", - "text": " If the VK_KHR_portability_subset extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::samplerMipLodBias is VK_FALSE, mipLodBias must be zero" + "text": "If the VK_KHR_portability_subset extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::samplerMipLodBias is VK_FALSE, mipLodBias must be zero", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerCreateInfo-maxLod-01973", - "text": " maxLod must be greater than or equal to minLod" + "text": "maxLod must be greater than or equal to minLod", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerCreateInfo-anisotropyEnable-01070", - "text": " If the samplerAnisotropy feature is not enabled, anisotropyEnable must be VK_FALSE" + "text": "If the samplerAnisotropy feature is not enabled, anisotropyEnable must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerCreateInfo-anisotropyEnable-01071", - "text": " If anisotropyEnable is VK_TRUE, maxAnisotropy must be between 1.0 and VkPhysicalDeviceLimits::maxSamplerAnisotropy, inclusive" + "text": "If anisotropyEnable is VK_TRUE, maxAnisotropy must be between 1.0 and VkPhysicalDeviceLimits::maxSamplerAnisotropy, inclusive", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerCreateInfo-minFilter-01645", - "text": " If sampler {YCbCr} conversion is enabled and the potential format features of the sampler {YCbCr} conversion do not support VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT, minFilter and magFilter must be equal to the sampler {YCbCr} conversion’s chromaFilter" + "text": "If sampler Y′CBCR conversion is enabled and the potential format features of the sampler Y′CBCR conversion do not support VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT, minFilter and magFilter must be equal to the sampler Y′CBCR conversion’s chromaFilter", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerCreateInfo-unnormalizedCoordinates-01072", - "text": " If unnormalizedCoordinates is VK_TRUE, minFilter and magFilter must be equal" + "text": "If unnormalizedCoordinates is VK_TRUE, minFilter and magFilter must be equal", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerCreateInfo-unnormalizedCoordinates-01073", - "text": " If unnormalizedCoordinates is VK_TRUE, mipmapMode must be VK_SAMPLER_MIPMAP_MODE_NEAREST" + "text": "If unnormalizedCoordinates is VK_TRUE, mipmapMode must be VK_SAMPLER_MIPMAP_MODE_NEAREST", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerCreateInfo-unnormalizedCoordinates-01074", - "text": " If unnormalizedCoordinates is VK_TRUE, minLod and maxLod must be zero" + "text": "If unnormalizedCoordinates is VK_TRUE, minLod and maxLod must be zero", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerCreateInfo-unnormalizedCoordinates-01075", - "text": " If unnormalizedCoordinates is VK_TRUE, addressModeU and addressModeV must each be either VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE or VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER" + "text": "If unnormalizedCoordinates is VK_TRUE, addressModeU and addressModeV must each be either VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE or VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerCreateInfo-unnormalizedCoordinates-01076", - "text": " If unnormalizedCoordinates is VK_TRUE, anisotropyEnable must be VK_FALSE" + "text": "If unnormalizedCoordinates is VK_TRUE, anisotropyEnable must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerCreateInfo-unnormalizedCoordinates-01077", - "text": " If unnormalizedCoordinates is VK_TRUE, compareEnable must be VK_FALSE" + "text": "If unnormalizedCoordinates is VK_TRUE, compareEnable must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerCreateInfo-addressModeU-01078", - "text": " If any of addressModeU, addressModeV or addressModeW are VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER, borderColor must be a valid VkBorderColor value" + "text": "If any of addressModeU, addressModeV or addressModeW are VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER, borderColor must be a valid VkBorderColor value", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerCreateInfo-addressModeU-01646", - "text": " If sampler {YCbCr} conversion is enabled, addressModeU, addressModeV, and addressModeW must be VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE, anisotropyEnable must be VK_FALSE, and unnormalizedCoordinates must be VK_FALSE" + "text": "If sampler Y′CBCR conversion is enabled, addressModeU, addressModeV, and addressModeW must be VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE, anisotropyEnable must be VK_FALSE, and unnormalizedCoordinates must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerCreateInfo-None-01647", - "text": " If sampler {YCbCr} conversion is enabled and the pNext chain includes a VkSamplerReductionModeCreateInfo structure, then the sampler reduction mode must be set to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE" + "text": "If sampler Y′CBCR conversion is enabled and the pNext chain includes a VkSamplerReductionModeCreateInfo structure, then the sampler reduction mode must be set to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerCreateInfo-pNext-06726", - "text": " If samplerFilterMinmax is not enabled and the pNext chain includes a VkSamplerReductionModeCreateInfo structure, then the sampler reduction mode must be set to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE" + "text": "If samplerFilterMinmax is not enabled and the pNext chain includes a VkSamplerReductionModeCreateInfo structure, then the sampler reduction mode must be set to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerCreateInfo-addressModeU-01079", - "text": " If samplerMirrorClampToEdge is not enabled, and if the VK_KHR_sampler_mirror_clamp_to_edge extension is not enabled, addressModeU, addressModeV and addressModeW must not be VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE" + "text": "If samplerMirrorClampToEdge is not enabled, and if the VK_KHR_sampler_mirror_clamp_to_edge extension is not enabled, addressModeU, addressModeV and addressModeW must not be VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerCreateInfo-compareEnable-01080", - "text": " If compareEnable is VK_TRUE, compareOp must be a valid VkCompareOp value" + "text": "If compareEnable is VK_TRUE, compareOp must be a valid VkCompareOp value", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerCreateInfo-magFilter-01081", - "text": " If either magFilter or minFilter is VK_FILTER_CUBIC_EXT, anisotropyEnable must be VK_FALSE" + "text": "If either magFilter or minFilter is VK_FILTER_CUBIC_EXT, anisotropyEnable must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerCreateInfo-magFilter-07911", - "text": " If the VK_EXT_filter_cubic extension is not enabled and either magFilter or minFilter is VK_FILTER_CUBIC_EXT, the reductionMode member of VkSamplerReductionModeCreateInfo must be VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE" + "text": "If the VK_EXT_filter_cubic extension is not enabled and either magFilter or minFilter is VK_FILTER_CUBIC_EXT, the reductionMode member of VkSamplerReductionModeCreateInfo must be VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerCreateInfo-compareEnable-01423", - "text": " If compareEnable is VK_TRUE, the reductionMode member of VkSamplerReductionModeCreateInfo must be VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE" + "text": "If compareEnable is VK_TRUE, the reductionMode member of VkSamplerReductionModeCreateInfo must be VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerCreateInfo-flags-02574", - "text": " If flags includes VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT, then minFilter and magFilter must be equal" + "text": "If flags includes VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT, then minFilter and magFilter must be equal", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerCreateInfo-flags-02575", - "text": " If flags includes VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT, then mipmapMode must be VK_SAMPLER_MIPMAP_MODE_NEAREST" + "text": "If flags includes VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT, then mipmapMode must be VK_SAMPLER_MIPMAP_MODE_NEAREST", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerCreateInfo-flags-02576", - "text": " If flags includes VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT, then minLod and maxLod must be zero" + "text": "If flags includes VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT, then minLod and maxLod must be zero", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerCreateInfo-flags-02577", - "text": " If flags includes VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT, then addressModeU and addressModeV must each be either VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE or VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER" + "text": "If flags includes VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT, then addressModeU and addressModeV must each be either VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE or VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerCreateInfo-flags-02578", - "text": " If flags includes VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT, then anisotropyEnable must be VK_FALSE" + "text": "If flags includes VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT, then anisotropyEnable must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerCreateInfo-flags-02579", - "text": " If flags includes VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT, then compareEnable must be VK_FALSE" + "text": "If flags includes VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT, then compareEnable must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerCreateInfo-flags-02580", - "text": " If flags includes VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT, then unnormalizedCoordinates must be VK_FALSE" + "text": "If flags includes VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT, then unnormalizedCoordinates must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerCreateInfo-nonSeamlessCubeMap-06788", - "text": " If the nonSeamlessCubeMap feature is not enabled, flags must not include VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT" + "text": "If the nonSeamlessCubeMap feature is not enabled, flags must not include VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerCreateInfo-borderColor-04011", - "text": " If borderColor is one of VK_BORDER_COLOR_FLOAT_CUSTOM_EXT or VK_BORDER_COLOR_INT_CUSTOM_EXT, then a VkSamplerCustomBorderColorCreateInfoEXT must be included in the pNext chain" + "text": "If borderColor is one of VK_BORDER_COLOR_FLOAT_CUSTOM_EXT or VK_BORDER_COLOR_INT_CUSTOM_EXT, then a VkSamplerCustomBorderColorCreateInfoEXT must be included in the pNext chain", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerCreateInfo-customBorderColors-04085", - "text": " If the customBorderColors feature is not enabled, borderColor must not be VK_BORDER_COLOR_FLOAT_CUSTOM_EXT or VK_BORDER_COLOR_INT_CUSTOM_EXT" + "text": "If the customBorderColors feature is not enabled, borderColor must not be VK_BORDER_COLOR_FLOAT_CUSTOM_EXT or VK_BORDER_COLOR_INT_CUSTOM_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerCreateInfo-borderColor-04442", - "text": " If borderColor is one of VK_BORDER_COLOR_FLOAT_CUSTOM_EXT or VK_BORDER_COLOR_INT_CUSTOM_EXT, and VkSamplerCustomBorderColorCreateInfoEXT::format is not VK_FORMAT_UNDEFINED, VkSamplerCustomBorderColorCreateInfoEXT::customBorderColor must be within the range of values representable in format" + "text": "If borderColor is one of VK_BORDER_COLOR_FLOAT_CUSTOM_EXT or VK_BORDER_COLOR_INT_CUSTOM_EXT, and VkSamplerCustomBorderColorCreateInfoEXT::format is not VK_FORMAT_UNDEFINED, VkSamplerCustomBorderColorCreateInfoEXT::customBorderColor must be within the range of values representable in format", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerCreateInfo-None-04012", - "text": " The maximum number of samplers with custom border colors which can be simultaneously created on a device is implementation-dependent and specified by the maxCustomBorderColorSamplers member of the VkPhysicalDeviceCustomBorderColorPropertiesEXT structure" + "text": "The maximum number of samplers with custom border colors which can be simultaneously created on a device is implementation-dependent and specified by the maxCustomBorderColorSamplers member of the VkPhysicalDeviceCustomBorderColorPropertiesEXT structure", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerCreateInfo-flags-08110", - "text": " If flags includes VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT, the descriptorBufferCaptureReplay feature must be enabled" + "text": "If flags includes VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT, the descriptorBufferCaptureReplay feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerCreateInfo-pNext-08111", - "text": " If the pNext chain includes a VkOpaqueCaptureDescriptorDataCreateInfoEXT structure, flags must contain VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT" + "text": "If the pNext chain includes a VkOpaqueCaptureDescriptorDataCreateInfoEXT structure, flags must contain VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerCreateInfo-flags-06964", - "text": " If flags includes VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM, then minFilter and magFilter must be VK_FILTER_NEAREST" + "text": "If flags includes VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM, then minFilter and magFilter must be VK_FILTER_NEAREST", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerCreateInfo-flags-06965", - "text": " If flags includes VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM, then mipmapMode must be VK_SAMPLER_MIPMAP_MODE_NEAREST" + "text": "If flags includes VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM, then mipmapMode must be VK_SAMPLER_MIPMAP_MODE_NEAREST", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerCreateInfo-flags-06966", - "text": " [If flags includes VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM, then minLod and maxLod must be zero" + "text": "[If flags includes VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM, then minLod and maxLod must be zero", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerCreateInfo-flags-06967", - "text": " If flags includes VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM, then addressModeU and addressModeV must each be either VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE or VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER" + "text": "If flags includes VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM, then addressModeU and addressModeV must each be either VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE or VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerCreateInfo-flags-06968", - "text": " If flags includes VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM, and if addressModeU or addressModeV is VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER, then borderColor must be VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK" + "text": "If flags includes VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM, and if addressModeU or addressModeV is VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER, then borderColor must be VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerCreateInfo-flags-06969", - "text": " If flags includes VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM, then anisotropyEnable must be VK_FALSE" + "text": "If flags includes VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM, then anisotropyEnable must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerCreateInfo-flags-06970", - "text": " If flags includes VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM, then compareEnable must be VK_FALSE" + "text": "If flags includes VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM, then compareEnable must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerCreateInfo-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 VkOpaqueCaptureDescriptorDataCreateInfoEXT, VkSamplerBorderColorComponentMappingCreateInfoEXT, VkSamplerCustomBorderColorCreateInfoEXT, VkSamplerReductionModeCreateInfo, or VkSamplerYcbcrConversionInfo" + "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 VkOpaqueCaptureDescriptorDataCreateInfoEXT, VkSamplerBlockMatchWindowCreateInfoQCOM, VkSamplerBorderColorComponentMappingCreateInfoEXT, VkSamplerCubicWeightsCreateInfoQCOM, VkSamplerCustomBorderColorCreateInfoEXT, VkSamplerReductionModeCreateInfo, or VkSamplerYcbcrConversionInfo", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerCreateInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerCreateInfo-flags-parameter", - "text": " flags must be a valid combination of VkSamplerCreateFlagBits values" + "text": "flags must be a valid combination of VkSamplerCreateFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerCreateInfo-magFilter-parameter", - "text": " magFilter must be a valid VkFilter value" + "text": "magFilter must be a valid VkFilter value", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerCreateInfo-minFilter-parameter", - "text": " minFilter must be a valid VkFilter value" + "text": "minFilter must be a valid VkFilter value", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerCreateInfo-mipmapMode-parameter", - "text": " mipmapMode must be a valid VkSamplerMipmapMode value" + "text": "mipmapMode must be a valid VkSamplerMipmapMode value", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerCreateInfo-addressModeU-parameter", - "text": " addressModeU must be a valid VkSamplerAddressMode value" + "text": "addressModeU must be a valid VkSamplerAddressMode value", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerCreateInfo-addressModeV-parameter", - "text": " addressModeV must be a valid VkSamplerAddressMode value" + "text": "addressModeV must be a valid VkSamplerAddressMode value", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerCreateInfo-addressModeW-parameter", - "text": " addressModeW must be a valid VkSamplerAddressMode value" + "text": "addressModeW must be a valid VkSamplerAddressMode value", + "page": "vkspec" } ] }, @@ -20878,11 +25964,27 @@ "core": [ { "vuid": "VUID-VkSamplerReductionModeCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerReductionModeCreateInfo-reductionMode-parameter", - "text": " reductionMode must be a valid VkSamplerReductionMode value" + "text": "reductionMode must be a valid VkSamplerReductionMode value", + "page": "vkspec" + } + ] + }, + "VkSamplerCubicWeightsCreateInfoQCOM": { + "core": [ + { + "vuid": "VUID-VkSamplerCubicWeightsCreateInfoQCOM-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM", + "page": "vkspec" + }, + { + "vuid": "VUID-VkSamplerCubicWeightsCreateInfoQCOM-cubicWeights-parameter", + "text": "cubicWeights must be a valid VkCubicFilterWeightsQCOM value", + "page": "vkspec" } ] }, @@ -20890,31 +25992,38 @@ "core": [ { "vuid": "VUID-vkDestroySampler-sampler-01082", - "text": " All submitted commands that refer to sampler must have completed execution" + "text": "All submitted commands that refer to sampler must have completed execution", + "page": "vkspec" }, { "vuid": "VUID-vkDestroySampler-sampler-01083", - "text": " If VkAllocationCallbacks were provided when sampler was created, a compatible set of callbacks must be provided here" + "text": "If VkAllocationCallbacks were provided when sampler was created, a compatible set of callbacks must be provided here", + "page": "vkspec" }, { "vuid": "VUID-vkDestroySampler-sampler-01084", - "text": " If no VkAllocationCallbacks were provided when sampler was created, pAllocator must be NULL" + "text": "If no VkAllocationCallbacks were provided when sampler was created, pAllocator must be NULL", + "page": "vkspec" }, { "vuid": "VUID-vkDestroySampler-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroySampler-sampler-parameter", - "text": " If sampler is not VK_NULL_HANDLE, sampler must be a valid VkSampler handle" + "text": "If sampler is not VK_NULL_HANDLE, sampler must be a valid VkSampler handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroySampler-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkDestroySampler-sampler-parent", - "text": " If sampler is a valid handle, it must have been created, allocated, or retrieved from device" + "text": "If sampler is a valid handle, it must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -20922,11 +26031,13 @@ "core": [ { "vuid": "VUID-VkSamplerYcbcrConversionInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerYcbcrConversionInfo-conversion-parameter", - "text": " conversion must be a valid VkSamplerYcbcrConversion handle" + "text": "conversion must be a valid VkSamplerYcbcrConversion handle", + "page": "vkspec" } ] }, @@ -20934,23 +26045,28 @@ "core": [ { "vuid": "VUID-vkCreateSamplerYcbcrConversion-None-01648", - "text": " The samplerYcbcrConversion feature must be enabled" + "text": "The samplerYcbcrConversion feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCreateSamplerYcbcrConversion-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkCreateSamplerYcbcrConversion-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkSamplerYcbcrConversionCreateInfo structure" + "text": "pCreateInfo must be a valid pointer to a valid VkSamplerYcbcrConversionCreateInfo structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateSamplerYcbcrConversion-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateSamplerYcbcrConversion-pYcbcrConversion-parameter", - "text": " pYcbcrConversion must be a valid pointer to a VkSamplerYcbcrConversion handle" + "text": "pYcbcrConversion must be a valid pointer to a VkSamplerYcbcrConversion handle", + "page": "vkspec" } ] }, @@ -20958,99 +26074,147 @@ "core": [ { "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-format-01904", - "text": " If an external format conversion is being created, format must be VK_FORMAT_UNDEFINED" + "text": "If an external format conversion is being created, format must be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-format-04061", - "text": " If an external format conversion is not being created, format must represent unsigned normalized values (i.e. the format must be a UNORM format)" + "text": "If an external format conversion is not being created, format must represent unsigned normalized values (i.e. the format must be a UNORM format)", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-format-01650", - "text": " The potential format features of the sampler {YCbCr} conversion must support VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT or VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT" + "text": "The potential format features of the sampler Y′CBCR conversion must support VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT or VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-xChromaOffset-01651", - "text": " If the potential format features of the sampler {YCbCr} conversion do not support VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT, xChromaOffset and yChromaOffset must not be VK_CHROMA_LOCATION_COSITED_EVEN if the corresponding components are downsampled" + "text": "If the potential format features of the sampler Y′CBCR conversion do not support VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT, xChromaOffset and yChromaOffset must not be VK_CHROMA_LOCATION_COSITED_EVEN if the corresponding components are downsampled", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-xChromaOffset-01652", - "text": " If the potential format features of the sampler {YCbCr} conversion do not support VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT, xChromaOffset and yChromaOffset must not be VK_CHROMA_LOCATION_MIDPOINT if the corresponding components are downsampled" + "text": "If the potential format features of the sampler Y′CBCR conversion do not support VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT, xChromaOffset and yChromaOffset must not be VK_CHROMA_LOCATION_MIDPOINT if the corresponding components are downsampled", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-components-02581", - "text": " If the format has a _422 or _420 suffix, then components.g must be the identity swizzle" + "text": "If the format has a _422 or _420 suffix, then components.g must be the identity swizzle", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-components-02582", - "text": " If the format has a _422 or _420 suffix, then components.a must be the identity swizzle, VK_COMPONENT_SWIZZLE_ONE, or VK_COMPONENT_SWIZZLE_ZERO" + "text": "If the format has a _422 or _420 suffix, then components.a must be the identity swizzle, VK_COMPONENT_SWIZZLE_ONE, or VK_COMPONENT_SWIZZLE_ZERO", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-components-02583", - "text": " If the format has a _422 or _420 suffix, then components.r must be the identity swizzle or VK_COMPONENT_SWIZZLE_B" + "text": "If the format has a _422 or _420 suffix, then components.r must be the identity swizzle or VK_COMPONENT_SWIZZLE_B", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-components-02584", - "text": " If the format has a _422 or _420 suffix, then components.b must be the identity swizzle or VK_COMPONENT_SWIZZLE_R" + "text": "If the format has a _422 or _420 suffix, then components.b must be the identity swizzle or VK_COMPONENT_SWIZZLE_R", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-components-02585", - "text": " If the format has a _422 or _420 suffix, and if either components.r or components.b is the identity swizzle, both values must be the identity swizzle" + "text": "If the format has a _422 or _420 suffix, and if either components.r or components.b is the identity swizzle, both values must be the identity swizzle", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-ycbcrModel-01655", - "text": " If ycbcrModel is not VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY, then components.r, components.g, and components.b must correspond to components of the format; that is, components.r, components.g, and components.b must not be VK_COMPONENT_SWIZZLE_ZERO or VK_COMPONENT_SWIZZLE_ONE, and must not correspond to a component containing zero or one as a consequence of conversion to RGBA" + "text": "If ycbcrModel is not VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY, then components.r, components.g, and components.b must correspond to components of the format; that is, components.r, components.g, and components.b must not be VK_COMPONENT_SWIZZLE_ZERO or VK_COMPONENT_SWIZZLE_ONE, and must not correspond to a component containing zero or one as a consequence of conversion to RGBA", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-ycbcrRange-02748", - "text": " If ycbcrRange is VK_SAMPLER_YCBCR_RANGE_ITU_NARROW then the R, G and B components obtained by applying the component swizzle to format must each have a bit-depth greater than or equal to 8" + "text": "If ycbcrRange is VK_SAMPLER_YCBCR_RANGE_ITU_NARROW then the R, G and B components obtained by applying the component swizzle to format must each have a bit-depth greater than or equal to 8", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-forceExplicitReconstruction-01656", - "text": " If the potential format features of the sampler {YCbCr} conversion do not support VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT forceExplicitReconstruction must be VK_FALSE" + "text": "If the potential format features of the sampler Y′CBCR conversion do not support VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT forceExplicitReconstruction must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-chromaFilter-01657", - "text": " If the potential format features of the sampler {YCbCr} conversion do not support VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT, chromaFilter must not be VK_FILTER_LINEAR" + "text": "If the potential format features of the sampler Y′CBCR conversion do not support VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT, chromaFilter must not be VK_FILTER_LINEAR", + "page": "vkspec" + }, + { + "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-pNext-09207", + "text": "If the pNext chain includes a VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM structure, and if the ycbcrDegamma feature is not enabled, then VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM::enableYDegamma must be VK_FALSE", + "page": "vkspec" + }, + { + "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-pNext-09208", + "text": "If the pNext chain includes a VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM structure, and if the ycbcrDegamma feature is not enabled, then VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM::enableCbCrDegamma must be VK_FALSE", + "page": "vkspec" + }, + { + "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-pNext-09209", + "text": "If the pNext chain includes a VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM structure, format must be a format with 8-bit R, G, and B components.", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-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 VkExternalFormatANDROID or VkExternalFormatQNX" + "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 VkExternalFormatANDROID, VkExternalFormatQNX, or VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-format-parameter", - "text": " format must be a valid VkFormat value" + "text": "format must be a valid VkFormat value", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-ycbcrModel-parameter", - "text": " ycbcrModel must be a valid VkSamplerYcbcrModelConversion value" + "text": "ycbcrModel must be a valid VkSamplerYcbcrModelConversion value", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-ycbcrRange-parameter", - "text": " ycbcrRange must be a valid VkSamplerYcbcrRange value" + "text": "ycbcrRange must be a valid VkSamplerYcbcrRange value", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-components-parameter", - "text": " components must be a valid VkComponentMapping structure" + "text": "components must be a valid VkComponentMapping structure", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-xChromaOffset-parameter", - "text": " xChromaOffset must be a valid VkChromaLocation value" + "text": "xChromaOffset must be a valid VkChromaLocation value", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-yChromaOffset-parameter", - "text": " yChromaOffset must be a valid VkChromaLocation value" + "text": "yChromaOffset must be a valid VkChromaLocation value", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-chromaFilter-parameter", - "text": " chromaFilter must be a valid VkFilter value" + "text": "chromaFilter must be a valid VkFilter value", + "page": "vkspec" + } + ] + }, + "VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM": { + "core": [ + { + "vuid": "VUID-VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM", + "page": "vkspec" } ] }, @@ -21058,19 +26222,23 @@ "core": [ { "vuid": "VUID-vkDestroySamplerYcbcrConversion-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroySamplerYcbcrConversion-ycbcrConversion-parameter", - "text": " If ycbcrConversion is not VK_NULL_HANDLE, ycbcrConversion must be a valid VkSamplerYcbcrConversion handle" + "text": "If ycbcrConversion is not VK_NULL_HANDLE, ycbcrConversion must be a valid VkSamplerYcbcrConversion handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroySamplerYcbcrConversion-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkDestroySamplerYcbcrConversion-ycbcrConversion-parent", - "text": " If ycbcrConversion is a valid handle, it must have been created, allocated, or retrieved from device" + "text": "If ycbcrConversion is a valid handle, it must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -21078,27 +26246,28 @@ "core": [ { "vuid": "VUID-VkSamplerCustomBorderColorCreateInfoEXT-format-07605", - "text": " If format is not VK_FORMAT_UNDEFINED and format is not a depth/stencil format then the VkSamplerCreateInfo::borderColor type must match the sampled type of the provided format, as shown in the SPIR-V Type column of the Interpretation of Numeric Format table" + "text": "If format is not VK_FORMAT_UNDEFINED and format is not a depth/stencil format then the VkSamplerCreateInfo::borderColor type must match the sampled type of the provided format, as shown in the SPIR-V Type column of the Interpretation of Numeric Format table", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerCustomBorderColorCreateInfoEXT-format-04014", - "text": " If the customBorderColorWithoutFormat feature is not enabled then format must not be VK_FORMAT_UNDEFINED" + "text": "If the customBorderColorWithoutFormat feature is not enabled then format must not be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerCustomBorderColorCreateInfoEXT-format-04015", - "text": " If the sampler is used to sample an image view of VK_FORMAT_B4G4R4A4_UNORM_PACK16, VK_FORMAT_B5G6R5_UNORM_PACK16, or VK_FORMAT_B5G5R5A1_UNORM_PACK16 format then format must not be VK_FORMAT_UNDEFINED" - }, - { - "vuid": "VUID-VkSamplerCustomBorderColorCreateInfoEXT-format-08807", - "text": " If the sampler is used to sample an image view of VK_FORMAT_A1B5G5R5_UNORM_PACK16_KHR format then format must not be VK_FORMAT_UNDEFINED" + "text": "If the sampler is used to sample an image view of VK_FORMAT_B4G4R4A4_UNORM_PACK16, VK_FORMAT_B5G6R5_UNORM_PACK16, VK_FORMAT_A1B5G5R5_UNORM_PACK16_KHR, or VK_FORMAT_B5G5R5A1_UNORM_PACK16 format then format must not be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerCustomBorderColorCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerCustomBorderColorCreateInfoEXT-format-parameter", - "text": " format must be a valid VkFormat value" + "text": "format must be a valid VkFormat value", + "page": "vkspec" } ] }, @@ -21106,15 +26275,37 @@ "core": [ { "vuid": "VUID-VkSamplerBorderColorComponentMappingCreateInfoEXT-borderColorSwizzle-06437", - "text": " The borderColorSwizzle feature must be enabled" + "text": "The borderColorSwizzle feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerBorderColorComponentMappingCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerBorderColorComponentMappingCreateInfoEXT-components-parameter", - "text": " components must be a valid VkComponentMapping structure" + "text": "components must be a valid VkComponentMapping structure", + "page": "vkspec" + } + ] + }, + "VkSamplerBlockMatchWindowCreateInfoQCOM": { + "core": [ + { + "vuid": "VUID-VkSamplerBlockMatchWindowCreateInfoQCOM-WindowExtent-09210", + "text": "WindowExtent must not be larger than VkPhysicalDeviceImageProcessing2PropertiesQCOM::maxBlockMatchWindow.", + "page": "vkspec" + }, + { + "vuid": "VUID-VkSamplerBlockMatchWindowCreateInfoQCOM-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM", + "page": "vkspec" + }, + { + "vuid": "VUID-VkSamplerBlockMatchWindowCreateInfoQCOM-windowCompareMode-parameter", + "text": "windowCompareMode must be a valid VkBlockMatchWindowCompareModeQCOM value", + "page": "vkspec" } ] }, @@ -21122,19 +26313,23 @@ "core": [ { "vuid": "VUID-vkCreateDescriptorSetLayout-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkCreateDescriptorSetLayout-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkDescriptorSetLayoutCreateInfo structure" + "text": "pCreateInfo must be a valid pointer to a valid VkDescriptorSetLayoutCreateInfo structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateDescriptorSetLayout-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateDescriptorSetLayout-pSetLayout-parameter", - "text": " pSetLayout must be a valid pointer to a VkDescriptorSetLayout handle" + "text": "pSetLayout must be a valid pointer to a VkDescriptorSetLayout handle", + "page": "vkspec" } ] }, @@ -21142,91 +26337,113 @@ "core": [ { "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-binding-00279", - "text": " The VkDescriptorSetLayoutBinding::binding members of the elements of the pBindings array must each have different values" + "text": "The VkDescriptorSetLayoutBinding::binding members of the elements of the pBindings array must each have different values", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-flags-00280", - "text": " If flags contains VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR, then all elements of pBindings must not have a descriptorType of VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC" + "text": "If flags contains VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR, then all elements of pBindings must not have a descriptorType of VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-flags-02208", - "text": " If flags contains VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR, then all elements of pBindings must not have a descriptorType of VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK" + "text": "If flags contains VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR, then all elements of pBindings must not have a descriptorType of VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-flags-00281", - "text": " If flags contains VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR, then the total number of elements of all bindings must be less than or equal to VkPhysicalDevicePushDescriptorPropertiesKHR::maxPushDescriptors" + "text": "If flags contains VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR, then the total number of elements of all bindings must be less than or equal to VkPhysicalDevicePushDescriptorPropertiesKHR::maxPushDescriptors", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-flags-04590", - "text": " If flags contains VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR, flags must not contain VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT" + "text": "If flags contains VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR, flags must not contain VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-flags-04591", - "text": " If flags contains VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR, pBindings must not have a descriptorType of VK_DESCRIPTOR_TYPE_MUTABLE_EXT" + "text": "If flags contains VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR, pBindings must not have a descriptorType of VK_DESCRIPTOR_TYPE_MUTABLE_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-flags-03000", - "text": " If any binding has the VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT bit set, flags must include VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT" + "text": "If any binding has the VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT bit set, flags must include VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-descriptorType-03001", - "text": " If any binding has the VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT bit set, then all bindings must not have descriptorType of VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC" + "text": "If any binding has the VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT bit set, then all bindings must not have descriptorType of VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-flags-04592", - "text": " If flags contains VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT, flags must not contain VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT" + "text": "If flags contains VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT, flags must not contain VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-pBindings-07303", - "text": " If any element pBindings[i] has a descriptorType of VK_DESCRIPTOR_TYPE_MUTABLE_EXT, then a VkMutableDescriptorTypeCreateInfoEXT must be present in the pNext chain, and mutableDescriptorTypeListCount must be greater than i" + "text": "If any element pBindings[i] has a descriptorType of VK_DESCRIPTOR_TYPE_MUTABLE_EXT, then a VkMutableDescriptorTypeCreateInfoEXT must be present in the pNext chain, and mutableDescriptorTypeListCount must be greater than i", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-descriptorType-04594", - "text": " If a binding has a descriptorType value of VK_DESCRIPTOR_TYPE_MUTABLE_EXT, then pImmutableSamplers must be NULL" + "text": "If a binding has a descriptorType value of VK_DESCRIPTOR_TYPE_MUTABLE_EXT, then pImmutableSamplers must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-mutableDescriptorType-04595", - "text": " If VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT::mutableDescriptorType is not enabled, pBindings must not contain a descriptorType of VK_DESCRIPTOR_TYPE_MUTABLE_EXT" + "text": "If VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT::mutableDescriptorType is not enabled, pBindings must not contain a descriptorType of VK_DESCRIPTOR_TYPE_MUTABLE_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-flags-04596", - "text": " If flags contains VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT, VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT::mutableDescriptorType must be enabled" + "text": "If flags contains VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT, VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT::mutableDescriptorType must be enabled", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-flags-08000", - "text": " If flags contains VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, then all elements of pBindings must not have a descriptorType of VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC" + "text": "If flags contains VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, then all elements of pBindings must not have a descriptorType of VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-flags-08001", - "text": " If flags contains VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT, flags must also contain VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "If flags contains VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT, flags must also contain VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-flags-08002", - "text": " If flags contains VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, then flags must not contain VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT" + "text": "If flags contains VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, then flags must not contain VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-flags-08003", - "text": " If flags contains VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, then flags must not contain VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE" + "text": "If flags contains VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, then flags must not contain VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-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 VkDescriptorSetLayoutBindingFlagsCreateInfo or VkMutableDescriptorTypeCreateInfoEXT" + "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 VkDescriptorSetLayoutBindingFlagsCreateInfo or VkMutableDescriptorTypeCreateInfoEXT", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-flags-parameter", - "text": " flags must be a valid combination of VkDescriptorSetLayoutCreateFlagBits values" + "text": "flags must be a valid combination of VkDescriptorSetLayoutCreateFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-pBindings-parameter", - "text": " If bindingCount is not 0, pBindings must be a valid pointer to an array of bindingCount valid VkDescriptorSetLayoutBinding structures" + "text": "If bindingCount is not 0, pBindings must be a valid pointer to an array of bindingCount valid VkDescriptorSetLayoutBinding structures", + "page": "vkspec" } ] }, @@ -21234,11 +26451,13 @@ "core": [ { "vuid": "VUID-VkMutableDescriptorTypeCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkMutableDescriptorTypeCreateInfoEXT-pMutableDescriptorTypeLists-parameter", - "text": " If mutableDescriptorTypeListCount is not 0, pMutableDescriptorTypeLists must be a valid pointer to an array of mutableDescriptorTypeListCount valid VkMutableDescriptorTypeListEXT structures" + "text": "If mutableDescriptorTypeListCount is not 0, pMutableDescriptorTypeLists must be a valid pointer to an array of mutableDescriptorTypeListCount valid VkMutableDescriptorTypeListEXT structures", + "page": "vkspec" } ] }, @@ -21246,35 +26465,43 @@ "core": [ { "vuid": "VUID-VkMutableDescriptorTypeListEXT-descriptorTypeCount-04597", - "text": " descriptorTypeCount must not be 0 if the corresponding binding is of VK_DESCRIPTOR_TYPE_MUTABLE_EXT" + "text": "descriptorTypeCount must not be 0 if the corresponding binding is of VK_DESCRIPTOR_TYPE_MUTABLE_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkMutableDescriptorTypeListEXT-pDescriptorTypes-04598", - "text": " pDescriptorTypes must be a valid pointer to an array of descriptorTypeCount valid, unique VkDescriptorType values if the given binding is of VK_DESCRIPTOR_TYPE_MUTABLE_EXT type" + "text": "pDescriptorTypes must be a valid pointer to an array of descriptorTypeCount valid, unique VkDescriptorType values if the given binding is of VK_DESCRIPTOR_TYPE_MUTABLE_EXT type", + "page": "vkspec" }, { "vuid": "VUID-VkMutableDescriptorTypeListEXT-descriptorTypeCount-04599", - "text": " descriptorTypeCount must be 0 if the corresponding binding is not of VK_DESCRIPTOR_TYPE_MUTABLE_EXT" + "text": "descriptorTypeCount must be 0 if the corresponding binding is not of VK_DESCRIPTOR_TYPE_MUTABLE_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkMutableDescriptorTypeListEXT-pDescriptorTypes-04600", - "text": " pDescriptorTypes must not contain VK_DESCRIPTOR_TYPE_MUTABLE_EXT" + "text": "pDescriptorTypes must not contain VK_DESCRIPTOR_TYPE_MUTABLE_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkMutableDescriptorTypeListEXT-pDescriptorTypes-04601", - "text": " pDescriptorTypes must not contain VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC" + "text": "pDescriptorTypes must not contain VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC", + "page": "vkspec" }, { "vuid": "VUID-VkMutableDescriptorTypeListEXT-pDescriptorTypes-04602", - "text": " pDescriptorTypes must not contain VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC" + "text": "pDescriptorTypes must not contain VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC", + "page": "vkspec" }, { "vuid": "VUID-VkMutableDescriptorTypeListEXT-pDescriptorTypes-04603", - "text": " pDescriptorTypes must not contain VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK" + "text": "pDescriptorTypes must not contain VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK", + "page": "vkspec" }, { "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" + "text": "If descriptorTypeCount is not 0, pDescriptorTypes must be a valid pointer to an array of descriptorTypeCount valid VkDescriptorType values", + "page": "vkspec" } ] }, @@ -21282,51 +26509,63 @@ "core": [ { "vuid": "VUID-VkDescriptorSetLayoutBinding-descriptorType-00282", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_SAMPLER or VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, and descriptorCount is not 0 and pImmutableSamplers is not NULL, pImmutableSamplers must be a valid pointer to an array of descriptorCount valid VkSampler handles" + "text": "If descriptorType is VK_DESCRIPTOR_TYPE_SAMPLER or VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, and descriptorCount is not 0 and pImmutableSamplers is not NULL, pImmutableSamplers must be a valid pointer to an array of descriptorCount valid VkSampler handles", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorSetLayoutBinding-descriptorType-04604", - "text": " If the inlineUniformBlock feature is not enabled, descriptorType must not be VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK" + "text": "If the inlineUniformBlock feature is not enabled, descriptorType must not be VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorSetLayoutBinding-descriptorType-02209", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK then descriptorCount must be a multiple of 4" + "text": "If descriptorType is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK then descriptorCount must be a multiple of 4", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorSetLayoutBinding-descriptorType-08004", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK and VkDescriptorSetLayoutCreateInfo::flags does not contain VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT then descriptorCount must be less than or equal to VkPhysicalDeviceInlineUniformBlockPropertiesEXT::maxInlineUniformBlockSize" + "text": "If descriptorType is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK and VkDescriptorSetLayoutCreateInfo::flags does not contain VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT then descriptorCount must be less than or equal to VkPhysicalDeviceInlineUniformBlockPropertiesEXT::maxInlineUniformBlockSize", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorSetLayoutBinding-flags-08005", - "text": " If VkDescriptorSetLayoutCreateInfo::flags contains VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT, descriptorType must be VK_DESCRIPTOR_TYPE_SAMPLER" + "text": "If VkDescriptorSetLayoutCreateInfo::flags contains VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT, descriptorType must be VK_DESCRIPTOR_TYPE_SAMPLER", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorSetLayoutBinding-flags-08006", - "text": " If VkDescriptorSetLayoutCreateInfo::flags contains VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT, descriptorCount must less than or equal to 1" + "text": "If VkDescriptorSetLayoutCreateInfo::flags contains VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT, descriptorCount must less than or equal to 1", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorSetLayoutBinding-flags-08007", - "text": " If VkDescriptorSetLayoutCreateInfo::flags contains VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT, and descriptorCount is equal to 1, pImmutableSamplers must not be NULL" + "text": "If VkDescriptorSetLayoutCreateInfo::flags contains VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT, and descriptorCount is equal to 1, pImmutableSamplers must not be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorSetLayoutBinding-descriptorCount-00283", - "text": " If descriptorCount is not 0, stageFlags must be a valid combination of VkShaderStageFlagBits values" + "text": "If descriptorCount is not 0, stageFlags must be a valid combination of VkShaderStageFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorSetLayoutBinding-descriptorType-01510", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT and descriptorCount is not 0, then stageFlags must be 0 or VK_SHADER_STAGE_FRAGMENT_BIT" + "text": "If descriptorType is VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT and descriptorCount is not 0, then stageFlags must be 0 or VK_SHADER_STAGE_FRAGMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorSetLayoutBinding-pImmutableSamplers-04009", - "text": " The sampler objects indicated by pImmutableSamplers must not have a borderColor with one of the values VK_BORDER_COLOR_FLOAT_CUSTOM_EXT or VK_BORDER_COLOR_INT_CUSTOM_EXT" + "text": "The sampler objects indicated by pImmutableSamplers must not have a borderColor with one of the values VK_BORDER_COLOR_FLOAT_CUSTOM_EXT or VK_BORDER_COLOR_INT_CUSTOM_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorSetLayoutBinding-descriptorType-04605", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_MUTABLE_EXT, then pImmutableSamplers must be NULL" + "text": "If descriptorType is VK_DESCRIPTOR_TYPE_MUTABLE_EXT, then pImmutableSamplers must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorSetLayoutBinding-descriptorType-parameter", - "text": " descriptorType must be a valid VkDescriptorType value" + "text": "descriptorType must be a valid VkDescriptorType value", + "page": "vkspec" } ] }, @@ -21334,75 +26573,98 @@ "core": [ { "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-bindingCount-03002", - "text": " If bindingCount is not zero, bindingCount must equal VkDescriptorSetLayoutCreateInfo::bindingCount" + "text": "If bindingCount is not zero, bindingCount must equal VkDescriptorSetLayoutCreateInfo::bindingCount", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-flags-03003", - "text": " If VkDescriptorSetLayoutCreateInfo::flags includes VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR, then all elements of pBindingFlags must not include VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT, VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT, or VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT" + "text": "If VkDescriptorSetLayoutCreateInfo::flags includes VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR, then all elements of pBindingFlags must not include VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT, VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT, or VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-pBindingFlags-03004", - "text": " If an element of pBindingFlags includes VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT, then all other elements of VkDescriptorSetLayoutCreateInfo::pBindings must have a smaller value of binding" + "text": "If an element of pBindingFlags includes VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT, then all other elements of VkDescriptorSetLayoutCreateInfo::pBindings must have a smaller value of binding", + "page": "vkspec" + }, + { + "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-pBindingFlags-09379", + "text": "If an element of pBindingFlags includes VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT, then it must be the element with the the highest binding number", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingUniformBufferUpdateAfterBind-03005", - "text": " If VkPhysicalDeviceDescriptorIndexingFeatures::descriptorBindingUniformBufferUpdateAfterBind is not enabled, all bindings with descriptor type VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER must not use VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT" + "text": "If VkPhysicalDeviceDescriptorIndexingFeatures::descriptorBindingUniformBufferUpdateAfterBind is not enabled, all bindings with descriptor type VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER must not use VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingSampledImageUpdateAfterBind-03006", - "text": " If VkPhysicalDeviceDescriptorIndexingFeatures::descriptorBindingSampledImageUpdateAfterBind is not enabled, all bindings with descriptor type VK_DESCRIPTOR_TYPE_SAMPLER, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, or VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE must not use VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT" + "text": "If VkPhysicalDeviceDescriptorIndexingFeatures::descriptorBindingSampledImageUpdateAfterBind is not enabled, all bindings with descriptor type VK_DESCRIPTOR_TYPE_SAMPLER, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, or VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE must not use VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingStorageImageUpdateAfterBind-03007", - "text": " If VkPhysicalDeviceDescriptorIndexingFeatures::descriptorBindingStorageImageUpdateAfterBind is not enabled, all bindings with descriptor type VK_DESCRIPTOR_TYPE_STORAGE_IMAGE must not use VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT" + "text": "If VkPhysicalDeviceDescriptorIndexingFeatures::descriptorBindingStorageImageUpdateAfterBind is not enabled, all bindings with descriptor type VK_DESCRIPTOR_TYPE_STORAGE_IMAGE must not use VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingStorageBufferUpdateAfterBind-03008", - "text": " If VkPhysicalDeviceDescriptorIndexingFeatures::descriptorBindingStorageBufferUpdateAfterBind is not enabled, all bindings with descriptor type VK_DESCRIPTOR_TYPE_STORAGE_BUFFER must not use VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT" + "text": "If VkPhysicalDeviceDescriptorIndexingFeatures::descriptorBindingStorageBufferUpdateAfterBind is not enabled, all bindings with descriptor type VK_DESCRIPTOR_TYPE_STORAGE_BUFFER must not use VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingUniformTexelBufferUpdateAfterBind-03009", - "text": " If VkPhysicalDeviceDescriptorIndexingFeatures::descriptorBindingUniformTexelBufferUpdateAfterBind is not enabled, all bindings with descriptor type VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER must not use VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT" + "text": "If VkPhysicalDeviceDescriptorIndexingFeatures::descriptorBindingUniformTexelBufferUpdateAfterBind is not enabled, all bindings with descriptor type VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER must not use VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingStorageTexelBufferUpdateAfterBind-03010", - "text": " If VkPhysicalDeviceDescriptorIndexingFeatures::descriptorBindingStorageTexelBufferUpdateAfterBind is not enabled, all bindings with descriptor type VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER must not use VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT" + "text": "If VkPhysicalDeviceDescriptorIndexingFeatures::descriptorBindingStorageTexelBufferUpdateAfterBind is not enabled, all bindings with descriptor type VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER must not use VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingInlineUniformBlockUpdateAfterBind-02211", - "text": " If VkPhysicalDeviceInlineUniformBlockFeatures::descriptorBindingInlineUniformBlockUpdateAfterBind is not enabled, all bindings with descriptor type VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK must not use VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT" + "text": "If VkPhysicalDeviceInlineUniformBlockFeatures::descriptorBindingInlineUniformBlockUpdateAfterBind is not enabled, all bindings with descriptor type VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK must not use VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingAccelerationStructureUpdateAfterBind-03570", - "text": " If VkPhysicalDeviceAccelerationStructureFeaturesKHR::descriptorBindingAccelerationStructureUpdateAfterBind is not enabled, all bindings with descriptor type VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR or VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV must not use VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT" + "text": "If VkPhysicalDeviceAccelerationStructureFeaturesKHR::descriptorBindingAccelerationStructureUpdateAfterBind is not enabled, all bindings with descriptor type VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR or VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV must not use VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-None-03011", - "text": " All bindings with descriptor type VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC must not use VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT" + "text": "All bindings with descriptor type VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC must not use VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingUpdateUnusedWhilePending-03012", - "text": " If VkPhysicalDeviceDescriptorIndexingFeatures::descriptorBindingUpdateUnusedWhilePending is not enabled, all elements of pBindingFlags must not include VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT" + "text": "If VkPhysicalDeviceDescriptorIndexingFeatures::descriptorBindingUpdateUnusedWhilePending is not enabled, all elements of pBindingFlags must not include VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingPartiallyBound-03013", - "text": " If VkPhysicalDeviceDescriptorIndexingFeatures::descriptorBindingPartiallyBound is not enabled, all elements of pBindingFlags must not include VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT" + "text": "If VkPhysicalDeviceDescriptorIndexingFeatures::descriptorBindingPartiallyBound is not enabled, all elements of pBindingFlags must not include VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingVariableDescriptorCount-03014", - "text": " If VkPhysicalDeviceDescriptorIndexingFeatures::descriptorBindingVariableDescriptorCount is not enabled, all elements of pBindingFlags must not include VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT" + "text": "If VkPhysicalDeviceDescriptorIndexingFeatures::descriptorBindingVariableDescriptorCount is not enabled, all elements of pBindingFlags must not include VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-pBindingFlags-03015", - "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" + "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": "vkspec" }, { "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-pBindingFlags-parameter", - "text": " If bindingCount is not 0, pBindingFlags must be a valid pointer to an array of bindingCount valid combinations of VkDescriptorBindingFlagBits values" + "text": "If bindingCount is not 0, pBindingFlags must be a valid pointer to an array of bindingCount valid combinations of VkDescriptorBindingFlagBits values", + "page": "vkspec" } ] }, @@ -21410,15 +26672,18 @@ "core": [ { "vuid": "VUID-vkGetDescriptorSetLayoutSupport-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetDescriptorSetLayoutSupport-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkDescriptorSetLayoutCreateInfo structure" + "text": "pCreateInfo must be a valid pointer to a valid VkDescriptorSetLayoutCreateInfo structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetDescriptorSetLayoutSupport-pSupport-parameter", - "text": " pSupport must be a valid pointer to a VkDescriptorSetLayoutSupport structure" + "text": "pSupport must be a valid pointer to a VkDescriptorSetLayoutSupport structure", + "page": "vkspec" } ] }, @@ -21426,15 +26691,18 @@ "core": [ { "vuid": "VUID-VkDescriptorSetLayoutSupport-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT" + "text": "sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorSetLayoutSupport-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkDescriptorSetVariableDescriptorCountLayoutSupport" + "text": "pNext must be NULL or a pointer to a valid instance of VkDescriptorSetVariableDescriptorCountLayoutSupport", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorSetLayoutSupport-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" } ] }, @@ -21442,7 +26710,8 @@ "core": [ { "vuid": "VUID-VkDescriptorSetVariableDescriptorCountLayoutSupport-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT" + "text": "sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT", + "page": "vkspec" } ] }, @@ -21450,27 +26719,33 @@ "core": [ { "vuid": "VUID-vkDestroyDescriptorSetLayout-descriptorSetLayout-00284", - "text": " If VkAllocationCallbacks were provided when descriptorSetLayout was created, a compatible set of callbacks must be provided here" + "text": "If VkAllocationCallbacks were provided when descriptorSetLayout was created, a compatible set of callbacks must be provided here", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyDescriptorSetLayout-descriptorSetLayout-00285", - "text": " If no VkAllocationCallbacks were provided when descriptorSetLayout was created, pAllocator must be NULL" + "text": "If no VkAllocationCallbacks were provided when descriptorSetLayout was created, pAllocator must be NULL", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyDescriptorSetLayout-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyDescriptorSetLayout-descriptorSetLayout-parameter", - "text": " If descriptorSetLayout is not VK_NULL_HANDLE, descriptorSetLayout must be a valid VkDescriptorSetLayout handle" + "text": "If descriptorSetLayout is not VK_NULL_HANDLE, descriptorSetLayout must be a valid VkDescriptorSetLayout handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyDescriptorSetLayout-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyDescriptorSetLayout-descriptorSetLayout-parent", - "text": " If descriptorSetLayout is a valid handle, it must have been created, allocated, or retrieved from device" + "text": "If descriptorSetLayout is a valid handle, it must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -21478,19 +26753,23 @@ "core": [ { "vuid": "VUID-vkCreatePipelineLayout-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkCreatePipelineLayout-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkPipelineLayoutCreateInfo structure" + "text": "pCreateInfo must be a valid pointer to a valid VkPipelineLayoutCreateInfo structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreatePipelineLayout-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreatePipelineLayout-pPipelineLayout-parameter", - "text": " pPipelineLayout must be a valid pointer to a VkPipelineLayout handle" + "text": "pPipelineLayout must be a valid pointer to a VkPipelineLayout handle", + "page": "vkspec" } ] }, @@ -21498,203 +26777,253 @@ "core": [ { "vuid": "VUID-VkPipelineLayoutCreateInfo-setLayoutCount-00286", - "text": " setLayoutCount must be less than or equal to VkPhysicalDeviceLimits::maxBoundDescriptorSets" + "text": "setLayoutCount must be less than or equal to VkPhysicalDeviceLimits::maxBoundDescriptorSets", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03016", - "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_SAMPLER and VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxPerStageDescriptorSamplers" + "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_SAMPLER and VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxPerStageDescriptorSamplers", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03017", - "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_UNIFORM_BUFFER and VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxPerStageDescriptorUniformBuffers" + "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_UNIFORM_BUFFER and VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxPerStageDescriptorUniformBuffers", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03018", - "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_STORAGE_BUFFER and VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxPerStageDescriptorStorageBuffers" + "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_STORAGE_BUFFER and VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxPerStageDescriptorStorageBuffers", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-06939", - "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_COMBINED_IMAGE_SAMPLER, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER, VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM, and VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxPerStageDescriptorSampledImages" + "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_COMBINED_IMAGE_SAMPLER, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER, VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM, and VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxPerStageDescriptorSampledImages", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03020", - "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_STORAGE_IMAGE, and VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxPerStageDescriptorStorageImages" + "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_STORAGE_IMAGE, and VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxPerStageDescriptorStorageImages", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03021", - "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_INPUT_ATTACHMENT accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxPerStageDescriptorInputAttachments" + "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_INPUT_ATTACHMENT accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxPerStageDescriptorInputAttachments", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-02214", - "text": " The total number of bindings 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_INLINE_UNIFORM_BLOCK accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceInlineUniformBlockProperties::maxPerStageDescriptorInlineUniformBlocks" + "text": "The total number of bindings 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_INLINE_UNIFORM_BLOCK accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceInlineUniformBlockProperties::maxPerStageDescriptorInlineUniformBlocks", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03022", - "text": " The total number of descriptors with a descriptorType of VK_DESCRIPTOR_TYPE_SAMPLER and VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingProperties::maxPerStageDescriptorUpdateAfterBindSamplers" + "text": "The total number of descriptors with a descriptorType of VK_DESCRIPTOR_TYPE_SAMPLER and VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingProperties::maxPerStageDescriptorUpdateAfterBindSamplers", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03023", - "text": " The total number of descriptors with a descriptorType of VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER and VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingProperties::maxPerStageDescriptorUpdateAfterBindUniformBuffers" + "text": "The total number of descriptors with a descriptorType of VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER and VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingProperties::maxPerStageDescriptorUpdateAfterBindUniformBuffers", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03024", - "text": " The total number of descriptors with a descriptorType of VK_DESCRIPTOR_TYPE_STORAGE_BUFFER and VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingProperties::maxPerStageDescriptorUpdateAfterBindStorageBuffers" + "text": "The total number of descriptors with a descriptorType of VK_DESCRIPTOR_TYPE_STORAGE_BUFFER and VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingProperties::maxPerStageDescriptorUpdateAfterBindStorageBuffers", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03025", - "text": " The total number of descriptors with a descriptorType of VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, and VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingProperties::maxPerStageDescriptorUpdateAfterBindSampledImages" + "text": "The total number of descriptors with a descriptorType of VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, and VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingProperties::maxPerStageDescriptorUpdateAfterBindSampledImages", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03026", - "text": " The total number of descriptors with a descriptorType of VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, and VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingProperties::maxPerStageDescriptorUpdateAfterBindStorageImages" + "text": "The total number of descriptors with a descriptorType of VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, and VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingProperties::maxPerStageDescriptorUpdateAfterBindStorageImages", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03027", - "text": " The total number of descriptors with a descriptorType of VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingProperties::maxPerStageDescriptorUpdateAfterBindInputAttachments" + "text": "The total number of descriptors with a descriptorType of VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingProperties::maxPerStageDescriptorUpdateAfterBindInputAttachments", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-02215", - "text": " The total number of bindings with a descriptorType of VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceInlineUniformBlockProperties::maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks" + "text": "The total number of bindings with a descriptorType of VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceInlineUniformBlockProperties::maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03028", - "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_SAMPLER and VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetSamplers" + "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_SAMPLER and VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetSamplers", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03029", - "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_UNIFORM_BUFFER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetUniformBuffers" + "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_UNIFORM_BUFFER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetUniformBuffers", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03030", - "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_UNIFORM_BUFFER_DYNAMIC accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetUniformBuffersDynamic" + "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_UNIFORM_BUFFER_DYNAMIC accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetUniformBuffersDynamic", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03031", - "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_STORAGE_BUFFER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetStorageBuffers" + "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_STORAGE_BUFFER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetStorageBuffers", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03032", - "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_STORAGE_BUFFER_DYNAMIC accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetStorageBuffersDynamic" + "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_STORAGE_BUFFER_DYNAMIC accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetStorageBuffersDynamic", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03033", - "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_COMBINED_IMAGE_SAMPLER, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, and VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetSampledImages" + "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_COMBINED_IMAGE_SAMPLER, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, and VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetSampledImages", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03034", - "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_STORAGE_IMAGE, and VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetStorageImages" + "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_STORAGE_IMAGE, and VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetStorageImages", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03035", - "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_INPUT_ATTACHMENT accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetInputAttachments" + "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_INPUT_ATTACHMENT accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetInputAttachments", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-02216", - "text": " The total number of bindings 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_INLINE_UNIFORM_BLOCK accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceInlineUniformBlockProperties::maxDescriptorSetInlineUniformBlocks" + "text": "The total number of bindings 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_INLINE_UNIFORM_BLOCK accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceInlineUniformBlockProperties::maxDescriptorSetInlineUniformBlocks", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03036", - "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_SAMPLER and VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingProperties::maxDescriptorSetUpdateAfterBindSamplers" + "text": "The total number of descriptors of the type VK_DESCRIPTOR_TYPE_SAMPLER and VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingProperties::maxDescriptorSetUpdateAfterBindSamplers", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03037", - "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingProperties::maxDescriptorSetUpdateAfterBindUniformBuffers" + "text": "The total number of descriptors of the type VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingProperties::maxDescriptorSetUpdateAfterBindUniformBuffers", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03038", - "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingProperties::maxDescriptorSetUpdateAfterBindUniformBuffersDynamic" + "text": "The total number of descriptors of the type VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingProperties::maxDescriptorSetUpdateAfterBindUniformBuffersDynamic", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03039", - "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_STORAGE_BUFFER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingProperties::maxDescriptorSetUpdateAfterBindStorageBuffers" + "text": "The total number of descriptors of the type VK_DESCRIPTOR_TYPE_STORAGE_BUFFER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingProperties::maxDescriptorSetUpdateAfterBindStorageBuffers", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03040", - "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingProperties::maxDescriptorSetUpdateAfterBindStorageBuffersDynamic" + "text": "The total number of descriptors of the type VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingProperties::maxDescriptorSetUpdateAfterBindStorageBuffersDynamic", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03041", - "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, and VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingProperties::maxDescriptorSetUpdateAfterBindSampledImages" + "text": "The total number of descriptors of the type VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, and VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingProperties::maxDescriptorSetUpdateAfterBindSampledImages", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03042", - "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, and VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingProperties::maxDescriptorSetUpdateAfterBindStorageImages" + "text": "The total number of descriptors of the type VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, and VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingProperties::maxDescriptorSetUpdateAfterBindStorageImages", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03043", - "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingProperties::maxDescriptorSetUpdateAfterBindInputAttachments" + "text": "The total number of descriptors of the type VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingProperties::maxDescriptorSetUpdateAfterBindInputAttachments", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-02217", - "text": " The total number of bindings with a descriptorType of VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceInlineUniformBlockProperties::maxDescriptorSetUpdateAfterBindInlineUniformBlocks" + "text": "The total number of bindings with a descriptorType of VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceInlineUniformBlockProperties::maxDescriptorSetUpdateAfterBindInlineUniformBlocks", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-06531", - "text": " The total number of descriptors with a descriptorType of VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceVulkan13Properties::maxInlineUniformTotalSize" + "text": "The total number of descriptors with a descriptorType of VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceVulkan13Properties::maxInlineUniformTotalSize", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineLayoutCreateInfo-pPushConstantRanges-00292", - "text": " Any two elements of pPushConstantRanges must not include the same stage in stageFlags" + "text": "Any two elements of pPushConstantRanges must not include the same stage in stageFlags", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-00293", - "text": " pSetLayouts must not contain more than one descriptor set layout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR set" + "text": "pSetLayouts must not contain more than one descriptor set layout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR set", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03571", - "text": " The total number of bindings 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_ACCELERATION_STRUCTURE_KHR accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceAccelerationStructurePropertiesKHR::maxPerStageDescriptorAccelerationStructures" + "text": "The total number of bindings 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_ACCELERATION_STRUCTURE_KHR accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceAccelerationStructurePropertiesKHR::maxPerStageDescriptorAccelerationStructures", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03572", - "text": " The total number of bindings with a descriptorType of VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceAccelerationStructurePropertiesKHR::maxPerStageDescriptorUpdateAfterBindAccelerationStructures" + "text": "The total number of bindings with a descriptorType of VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceAccelerationStructurePropertiesKHR::maxPerStageDescriptorUpdateAfterBindAccelerationStructures", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03573", - "text": " The total number of bindings 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_ACCELERATION_STRUCTURE_KHR accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceAccelerationStructurePropertiesKHR::maxDescriptorSetAccelerationStructures" + "text": "The total number of bindings 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_ACCELERATION_STRUCTURE_KHR accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceAccelerationStructurePropertiesKHR::maxDescriptorSetAccelerationStructures", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03574", - "text": " The total number of bindings with a descriptorType of VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceAccelerationStructurePropertiesKHR::maxDescriptorSetUpdateAfterBindAccelerationStructures" + "text": "The total number of bindings with a descriptorType of VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceAccelerationStructurePropertiesKHR::maxDescriptorSetUpdateAfterBindAccelerationStructures", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-02381", - "text": " The total number of bindings with a descriptorType of VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxDescriptorSetAccelerationStructures" + "text": "The total number of bindings with a descriptorType of VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxDescriptorSetAccelerationStructures", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineLayoutCreateInfo-pImmutableSamplers-03566", - "text": " The total number of pImmutableSamplers created with flags containing VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT or VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceFragmentDensityMap2PropertiesEXT::maxDescriptorSetSubsampledSamplers" + "text": "The total number of pImmutableSamplers created with flags containing VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT or VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceFragmentDensityMap2PropertiesEXT::maxDescriptorSetSubsampledSamplers", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-04606", - "text": " Any element of pSetLayouts must not have been created with the VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT bit set" + "text": "Any element of pSetLayouts must not have been created with the VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT bit set", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineLayoutCreateInfo-graphicsPipelineLibrary-06753", - "text": " If graphicsPipelineLibrary is not enabled, elements of pSetLayouts must be valid VkDescriptorSetLayout objects" + "text": "If graphicsPipelineLibrary is not enabled, elements of pSetLayouts must be valid VkDescriptorSetLayout objects", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-08008", - "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" + "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": "vkspec" }, { "vuid": "VUID-VkPipelineLayoutCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineLayoutCreateInfo-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineLayoutCreateInfo-flags-parameter", - "text": " flags must be a valid combination of VkPipelineLayoutCreateFlagBits values" + "text": "flags must be a valid combination of VkPipelineLayoutCreateFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-parameter", - "text": " If setLayoutCount is not 0, pSetLayouts must be a valid pointer to an array of setLayoutCount valid or VK_NULL_HANDLE VkDescriptorSetLayout handles" + "text": "If setLayoutCount is not 0, pSetLayouts must be a valid pointer to an array of setLayoutCount valid or VK_NULL_HANDLE VkDescriptorSetLayout handles", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineLayoutCreateInfo-pPushConstantRanges-parameter", - "text": " If pushConstantRangeCount is not 0, pPushConstantRanges must be a valid pointer to an array of pushConstantRangeCount valid VkPushConstantRange structures" + "text": "If pushConstantRangeCount is not 0, pPushConstantRanges must be a valid pointer to an array of pushConstantRangeCount valid VkPushConstantRange structures", + "page": "vkspec" } ] }, @@ -21702,31 +27031,38 @@ "core": [ { "vuid": "VUID-VkPushConstantRange-offset-00294", - "text": " offset must be less than VkPhysicalDeviceLimits::maxPushConstantsSize" + "text": "offset must be less than VkPhysicalDeviceLimits::maxPushConstantsSize", + "page": "vkspec" }, { "vuid": "VUID-VkPushConstantRange-offset-00295", - "text": " offset must be a multiple of 4" + "text": "offset must be a multiple of 4", + "page": "vkspec" }, { "vuid": "VUID-VkPushConstantRange-size-00296", - "text": " size must be greater than 0" + "text": "size must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-VkPushConstantRange-size-00297", - "text": " size must be a multiple of 4" + "text": "size must be a multiple of 4", + "page": "vkspec" }, { "vuid": "VUID-VkPushConstantRange-size-00298", - "text": " size must be less than or equal to VkPhysicalDeviceLimits::maxPushConstantsSize minus offset" + "text": "size must be less than or equal to VkPhysicalDeviceLimits::maxPushConstantsSize minus offset", + "page": "vkspec" }, { "vuid": "VUID-VkPushConstantRange-stageFlags-parameter", - "text": " stageFlags must be a valid combination of VkShaderStageFlagBits values" + "text": "stageFlags must be a valid combination of VkShaderStageFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkPushConstantRange-stageFlags-requiredbitmask", - "text": " stageFlags must not be 0" + "text": "stageFlags must not be 0", + "page": "vkspec" } ] }, @@ -21734,31 +27070,38 @@ "core": [ { "vuid": "VUID-vkDestroyPipelineLayout-pipelineLayout-00299", - "text": " If VkAllocationCallbacks were provided when pipelineLayout was created, a compatible set of callbacks must be provided here" + "text": "If VkAllocationCallbacks were provided when pipelineLayout was created, a compatible set of callbacks must be provided here", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyPipelineLayout-pipelineLayout-00300", - "text": " If no VkAllocationCallbacks were provided when pipelineLayout was created, pAllocator must be NULL" + "text": "If no VkAllocationCallbacks were provided when pipelineLayout was created, pAllocator must be NULL", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyPipelineLayout-pipelineLayout-02004", - "text": " pipelineLayout must not have been passed to any vkCmd* command for any command buffers that are still in the recording state when vkDestroyPipelineLayout is called" + "text": "pipelineLayout must not have been passed to any vkCmd* command for any command buffers that are still in the recording state when vkDestroyPipelineLayout is called", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyPipelineLayout-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyPipelineLayout-pipelineLayout-parameter", - "text": " If pipelineLayout is not VK_NULL_HANDLE, pipelineLayout must be a valid VkPipelineLayout handle" + "text": "If pipelineLayout is not VK_NULL_HANDLE, pipelineLayout must be a valid VkPipelineLayout handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyPipelineLayout-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyPipelineLayout-pipelineLayout-parent", - "text": " If pipelineLayout is a valid handle, it must have been created, allocated, or retrieved from device" + "text": "If pipelineLayout is a valid handle, it must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -21766,63 +27109,82 @@ "core": [ { "vuid": "VUID-vkCreateDescriptorPool-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkCreateDescriptorPool-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkDescriptorPoolCreateInfo structure" + "text": "pCreateInfo must be a valid pointer to a valid VkDescriptorPoolCreateInfo structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateDescriptorPool-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateDescriptorPool-pDescriptorPool-parameter", - "text": " pDescriptorPool must be a valid pointer to a VkDescriptorPool handle" + "text": "pDescriptorPool must be a valid pointer to a VkDescriptorPool handle", + "page": "vkspec" } ] }, "VkDescriptorPoolCreateInfo": { "core": [ { - "vuid": "VUID-VkDescriptorPoolCreateInfo-maxSets-00301", - "text": " maxSets must be greater than 0" + "vuid": "VUID-VkDescriptorPoolCreateInfo-descriptorPoolOverallocation-09227", + "text": "If the descriptorPoolOverallocation feature is not enabled, or flags does not have VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_SETS_BIT_NV set, maxSets must be greater than 0", + "page": "vkspec" + }, + { + "vuid": "VUID-VkDescriptorPoolCreateInfo-flags-09228", + "text": "If flags has the VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_SETS_BIT_NV or VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_POOLS_BIT_NV bits set, then descriptorPoolOverallocation must be enabled", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorPoolCreateInfo-flags-04607", - "text": " If flags has the VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT bit set, then the VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT bit must not be set" + "text": "If flags has the VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT bit set, then the VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT bit must not be set", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorPoolCreateInfo-mutableDescriptorType-04608", - "text": " If VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT::mutableDescriptorType is not enabled, pPoolSizes must not contain a descriptorType of VK_DESCRIPTOR_TYPE_MUTABLE_EXT" + "text": "If VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT::mutableDescriptorType is not enabled, pPoolSizes must not contain a descriptorType of VK_DESCRIPTOR_TYPE_MUTABLE_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorPoolCreateInfo-flags-04609", - "text": " If flags has the VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT bit set, VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT::mutableDescriptorType must be enabled" + "text": "If flags has the VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT bit set, VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT::mutableDescriptorType must be enabled", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorPoolCreateInfo-pPoolSizes-04787", - "text": " If pPoolSizes contains a descriptorType of VK_DESCRIPTOR_TYPE_MUTABLE_EXT, any other VK_DESCRIPTOR_TYPE_MUTABLE_EXT element in pPoolSizes must not have sets of supported descriptor types which partially overlap" + "text": "If pPoolSizes contains a descriptorType of VK_DESCRIPTOR_TYPE_MUTABLE_EXT, any other VK_DESCRIPTOR_TYPE_MUTABLE_EXT element in pPoolSizes must not have sets of supported descriptor types which partially overlap", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorPoolCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorPoolCreateInfo-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 VkDescriptorPoolInlineUniformBlockCreateInfo or VkMutableDescriptorTypeCreateInfoEXT" + "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 VkDescriptorPoolInlineUniformBlockCreateInfo or VkMutableDescriptorTypeCreateInfoEXT", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorPoolCreateInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorPoolCreateInfo-flags-parameter", - "text": " flags must be a valid combination of VkDescriptorPoolCreateFlagBits values" + "text": "flags must be a valid combination of VkDescriptorPoolCreateFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorPoolCreateInfo-pPoolSizes-parameter", - "text": " If poolSizeCount is not 0, pPoolSizes must be a valid pointer to an array of poolSizeCount valid VkDescriptorPoolSize structures" + "text": "If poolSizeCount is not 0, pPoolSizes must be a valid pointer to an array of poolSizeCount valid VkDescriptorPoolSize structures", + "page": "vkspec" } ] }, @@ -21830,7 +27192,8 @@ "core": [ { "vuid": "VUID-VkDescriptorPoolInlineUniformBlockCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO", + "page": "vkspec" } ] }, @@ -21838,15 +27201,18 @@ "core": [ { "vuid": "VUID-VkDescriptorPoolSize-descriptorCount-00302", - "text": " descriptorCount must be greater than 0" + "text": "descriptorCount must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorPoolSize-type-02218", - "text": " If type is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK then descriptorCount must be a multiple of 4" + "text": "If type is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK then descriptorCount must be a multiple of 4", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorPoolSize-type-parameter", - "text": " type must be a valid VkDescriptorType value" + "text": "type must be a valid VkDescriptorType value", + "page": "vkspec" } ] }, @@ -21854,31 +27220,38 @@ "core": [ { "vuid": "VUID-vkDestroyDescriptorPool-descriptorPool-00303", - "text": " All submitted commands that refer to descriptorPool (via any allocated descriptor sets) must have completed execution" + "text": "All submitted commands that refer to descriptorPool (via any allocated descriptor sets) must have completed execution", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyDescriptorPool-descriptorPool-00304", - "text": " If VkAllocationCallbacks were provided when descriptorPool was created, a compatible set of callbacks must be provided here" + "text": "If VkAllocationCallbacks were provided when descriptorPool was created, a compatible set of callbacks must be provided here", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyDescriptorPool-descriptorPool-00305", - "text": " If no VkAllocationCallbacks were provided when descriptorPool was created, pAllocator must be NULL" + "text": "If no VkAllocationCallbacks were provided when descriptorPool was created, pAllocator must be NULL", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyDescriptorPool-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyDescriptorPool-descriptorPool-parameter", - "text": " If descriptorPool is not VK_NULL_HANDLE, descriptorPool must be a valid VkDescriptorPool handle" + "text": "If descriptorPool is not VK_NULL_HANDLE, descriptorPool must be a valid VkDescriptorPool handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyDescriptorPool-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyDescriptorPool-descriptorPool-parent", - "text": " If descriptorPool is a valid handle, it must have been created, allocated, or retrieved from device" + "text": "If descriptorPool is a valid handle, it must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -21886,19 +27259,23 @@ "core": [ { "vuid": "VUID-vkAllocateDescriptorSets-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkAllocateDescriptorSets-pAllocateInfo-parameter", - "text": " pAllocateInfo must be a valid pointer to a valid VkDescriptorSetAllocateInfo structure" + "text": "pAllocateInfo must be a valid pointer to a valid VkDescriptorSetAllocateInfo structure", + "page": "vkspec" }, { "vuid": "VUID-vkAllocateDescriptorSets-pDescriptorSets-parameter", - "text": " pDescriptorSets must be a valid pointer to an array of pAllocateInfo->descriptorSetCount VkDescriptorSet handles" + "text": "pDescriptorSets must be a valid pointer to an array of pAllocateInfo->descriptorSetCount VkDescriptorSet handles", + "page": "vkspec" }, { "vuid": "VUID-vkAllocateDescriptorSets-pAllocateInfo::descriptorSetCount-arraylength", - "text": " pAllocateInfo->descriptorSetCount must be greater than 0" + "text": "pAllocateInfo->descriptorSetCount must be greater than 0", + "page": "vkspec" } ] }, @@ -21906,55 +27283,73 @@ "core": [ { "vuid": "VUID-VkDescriptorSetAllocateInfo-apiVersion-07895", - "text": " If the VK_KHR_maintenance1 extension is not enabled, VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, descriptorSetCount must not be greater than the number of sets that are currently available for allocation in descriptorPool" + "text": "If the VK_KHR_maintenance1 extension is not enabled, VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, descriptorSetCount must not be greater than the number of sets that are currently available for allocation in descriptorPool", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorSetAllocateInfo-apiVersion-07896", - "text": " If the VK_KHR_maintenance1 extension is not enabled, VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, descriptorPool must have enough free descriptor capacity remaining to allocate the descriptor sets of the specified layouts" + "text": "If the VK_KHR_maintenance1 extension is not enabled, VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, descriptorPool must have enough free descriptor capacity remaining to allocate the descriptor sets of the specified layouts", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorSetAllocateInfo-pSetLayouts-00308", - "text": " Each element of pSetLayouts must not have been created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR set" + "text": "Each element of pSetLayouts must not have been created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR set", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorSetAllocateInfo-pSetLayouts-03044", - "text": " If any element of pSetLayouts was created with the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set, descriptorPool must have been created with the VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT flag set" + "text": "If any element of pSetLayouts was created with the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set, descriptorPool must have been created with the VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT flag set", + "page": "vkspec" + }, + { + "vuid": "VUID-VkDescriptorSetAllocateInfo-pSetLayouts-09380", + "text": "If pSetLayouts[i] was created with an element of pBindingFlags that includes VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT, and VkDescriptorSetVariableDescriptorCountAllocateInfo is included in the pNext chain, and VkDescriptorSetVariableDescriptorCountAllocateInfo::descriptorSetCount is not zero, then slink::VkDescriptorSetVariableDescriptorCountAllocateInfo::pDescriptorCounts[i] must be less than or equal to slink::VkDescriptorSetLayoutBinding::descriptorCount for the corresponding binding used to create pSetLayouts[i]", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorSetAllocateInfo-pSetLayouts-04610", - "text": " If any element of pSetLayouts was created with the VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT bit set, descriptorPool must have been created with the VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT flag set" + "text": "If any element of pSetLayouts was created with the VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT bit set, descriptorPool must have been created with the VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT flag set", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorSetAllocateInfo-pSetLayouts-08009", - "text": " Each element of pSetLayouts must not have been created with the VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT bit set" + "text": "Each element of pSetLayouts must not have been created with the VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT bit set", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorSetAllocateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorSetAllocateInfo-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkDescriptorSetVariableDescriptorCountAllocateInfo" + "text": "pNext must be NULL or a pointer to a valid instance of VkDescriptorSetVariableDescriptorCountAllocateInfo", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorSetAllocateInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorSetAllocateInfo-descriptorPool-parameter", - "text": " descriptorPool must be a valid VkDescriptorPool handle" + "text": "descriptorPool must be a valid VkDescriptorPool handle", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorSetAllocateInfo-pSetLayouts-parameter", - "text": " pSetLayouts must be a valid pointer to an array of descriptorSetCount valid VkDescriptorSetLayout handles" + "text": "pSetLayouts must be a valid pointer to an array of descriptorSetCount valid VkDescriptorSetLayout handles", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorSetAllocateInfo-descriptorSetCount-arraylength", - "text": " descriptorSetCount must be greater than 0" + "text": "descriptorSetCount must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorSetAllocateInfo-commonparent", - "text": " Both of descriptorPool, and the elements of pSetLayouts must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of descriptorPool, and the elements of pSetLayouts must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -21962,19 +27357,23 @@ "core": [ { "vuid": "VUID-VkDescriptorSetVariableDescriptorCountAllocateInfo-descriptorSetCount-03045", - "text": " If descriptorSetCount is not zero, descriptorSetCount must equal VkDescriptorSetAllocateInfo::descriptorSetCount" + "text": "If descriptorSetCount is not zero, descriptorSetCount must equal VkDescriptorSetAllocateInfo::descriptorSetCount", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorSetVariableDescriptorCountAllocateInfo-pSetLayouts-03046", - "text": " If VkDescriptorSetAllocateInfo::pSetLayouts[i] has a variable-sized descriptor binding, then pDescriptorCounts[i] must be less than or equal to the descriptor count specified for that binding when the descriptor set layout was created" + "text": "If VkDescriptorSetAllocateInfo::pSetLayouts[i] has a variable-sized descriptor binding, then pDescriptorCounts[i] must be less than or equal to the descriptor count specified for that binding when the descriptor set layout was created", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorSetVariableDescriptorCountAllocateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorSetVariableDescriptorCountAllocateInfo-pDescriptorCounts-parameter", - "text": " If descriptorSetCount is not 0, pDescriptorCounts must be a valid pointer to an array of descriptorSetCount uint32_t values" + "text": "If descriptorSetCount is not 0, pDescriptorCounts must be a valid pointer to an array of descriptorSetCount uint32_t values", + "page": "vkspec" } ] }, @@ -21982,35 +27381,43 @@ "core": [ { "vuid": "VUID-vkFreeDescriptorSets-pDescriptorSets-00309", - "text": " All submitted commands that refer to any element of pDescriptorSets must have completed execution" + "text": "All submitted commands that refer to any element of pDescriptorSets must have completed execution", + "page": "vkspec" }, { "vuid": "VUID-vkFreeDescriptorSets-pDescriptorSets-00310", - "text": " pDescriptorSets must be a valid pointer to an array of descriptorSetCount VkDescriptorSet handles, each element of which must either be a valid handle or VK_NULL_HANDLE" + "text": "pDescriptorSets must be a valid pointer to an array of descriptorSetCount VkDescriptorSet handles, each element of which must either be a valid handle or VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-vkFreeDescriptorSets-descriptorPool-00312", - "text": " descriptorPool must have been created with the VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT flag" + "text": "descriptorPool must have been created with the VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT flag", + "page": "vkspec" }, { "vuid": "VUID-vkFreeDescriptorSets-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkFreeDescriptorSets-descriptorPool-parameter", - "text": " descriptorPool must be a valid VkDescriptorPool handle" + "text": "descriptorPool must be a valid VkDescriptorPool handle", + "page": "vkspec" }, { "vuid": "VUID-vkFreeDescriptorSets-descriptorSetCount-arraylength", - "text": " descriptorSetCount must be greater than 0" + "text": "descriptorSetCount must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-vkFreeDescriptorSets-descriptorPool-parent", - "text": " descriptorPool must have been created, allocated, or retrieved from device" + "text": "descriptorPool must have been created, allocated, or retrieved from device", + "page": "vkspec" }, { "vuid": "VUID-vkFreeDescriptorSets-pDescriptorSets-parent", - "text": " Each element of pDescriptorSets that is a valid handle must have been created, allocated, or retrieved from descriptorPool" + "text": "Each element of pDescriptorSets that is a valid handle must have been created, allocated, or retrieved from descriptorPool", + "page": "vkspec" } ] }, @@ -22018,23 +27425,28 @@ "core": [ { "vuid": "VUID-vkResetDescriptorPool-descriptorPool-00313", - "text": " All uses of descriptorPool (via any allocated descriptor sets) must have completed execution" + "text": "All uses of descriptorPool (via any allocated descriptor sets) must have completed execution", + "page": "vkspec" }, { "vuid": "VUID-vkResetDescriptorPool-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkResetDescriptorPool-descriptorPool-parameter", - "text": " descriptorPool must be a valid VkDescriptorPool handle" + "text": "descriptorPool must be a valid VkDescriptorPool handle", + "page": "vkspec" }, { "vuid": "VUID-vkResetDescriptorPool-flags-zerobitmask", - "text": " flags must be 0" + "text": "flags must be 0", + "page": "vkspec" }, { "vuid": "VUID-vkResetDescriptorPool-descriptorPool-parent", - "text": " descriptorPool must have been created, allocated, or retrieved from device" + "text": "descriptorPool must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -22042,59 +27454,73 @@ "core": [ { "vuid": "VUID-vkUpdateDescriptorSets-pDescriptorWrites-06236", - "text": " For each element i where pDescriptorWrites[i].descriptorType is VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER or VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER, elements of the pTexelBufferView member of pDescriptorWrites[i] must have been created on device" + "text": "For each element i where pDescriptorWrites[i].descriptorType is VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER or VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER, elements of the pTexelBufferView member of pDescriptorWrites[i] must have been created on device", + "page": "vkspec" }, { "vuid": "VUID-vkUpdateDescriptorSets-pDescriptorWrites-06237", - "text": " For each element i where pDescriptorWrites[i].descriptorType is VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC, the buffer member of any element of the pBufferInfo member of pDescriptorWrites[i] must have been created on device" + "text": "For each element i where pDescriptorWrites[i].descriptorType is VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC, the buffer member of any element of the pBufferInfo member of pDescriptorWrites[i] must have been created on device", + "page": "vkspec" }, { "vuid": "VUID-vkUpdateDescriptorSets-pDescriptorWrites-06238", - "text": " For each element i where pDescriptorWrites[i].descriptorType is VK_DESCRIPTOR_TYPE_SAMPLER or VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, and dstSet was not allocated with a layout that included immutable samplers for dstBinding with descriptorType, the sampler member of any element of the pImageInfo member of pDescriptorWrites[i] must have been created on device" + "text": "For each element i where pDescriptorWrites[i].descriptorType is VK_DESCRIPTOR_TYPE_SAMPLER or VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, and dstSet was not allocated with a layout that included immutable samplers for dstBinding with descriptorType, the sampler member of any element of the pImageInfo member of pDescriptorWrites[i] must have been created on device", + "page": "vkspec" }, { "vuid": "VUID-vkUpdateDescriptorSets-pDescriptorWrites-06239", - "text": " For each element i where pDescriptorWrites[i].descriptorType is VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, or VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER the imageView member of any element of pDescriptorWrites[i] must have been created on device" + "text": "For each element i where pDescriptorWrites[i].descriptorType is VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, or VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER the imageView member of any element of pDescriptorWrites[i] must have been created on device", + "page": "vkspec" }, { "vuid": "VUID-vkUpdateDescriptorSets-pDescriptorWrites-06240", - "text": " For each element i where pDescriptorWrites[i].descriptorType is VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR, elements of the pAccelerationStructures member of a VkWriteDescriptorSetAccelerationStructureKHR structure in the pNext chain of pDescriptorWrites[i] must have been created on device" + "text": "For each element i where pDescriptorWrites[i].descriptorType is VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR, elements of the pAccelerationStructures member of a VkWriteDescriptorSetAccelerationStructureKHR structure in the pNext chain of pDescriptorWrites[i] must have been created on device", + "page": "vkspec" }, { "vuid": "VUID-vkUpdateDescriptorSets-pDescriptorWrites-06241", - "text": " For each element i where pDescriptorWrites[i].descriptorType is VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV, elements of the pAccelerationStructures member of a VkWriteDescriptorSetAccelerationStructureNV structure in the pNext chain of pDescriptorWrites[i] must have been created on device" + "text": "For each element i where pDescriptorWrites[i].descriptorType is VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV, elements of the pAccelerationStructures member of a VkWriteDescriptorSetAccelerationStructureNV structure in the pNext chain of pDescriptorWrites[i] must have been created on device", + "page": "vkspec" }, { "vuid": "VUID-vkUpdateDescriptorSets-pDescriptorWrites-06940", - "text": " For each element i where pDescriptorWrites[i].descriptorType is VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM or VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM, the imageView member of any element of pDescriptorWrites[i] must have been created on device" + "text": "For each element i where pDescriptorWrites[i].descriptorType is VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM or VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM, the imageView member of any element of pDescriptorWrites[i] must have been created on device", + "page": "vkspec" }, { "vuid": "VUID-vkUpdateDescriptorSets-pDescriptorWrites-06493", - "text": " For each element i where pDescriptorWrites[i].descriptorType is VK_DESCRIPTOR_TYPE_SAMPLER, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, pDescriptorWrites[i].pImageInfo must be a valid pointer to an array of pDescriptorWrites[i].descriptorCount valid VkDescriptorImageInfo structures" + "text": "For each element i where pDescriptorWrites[i].descriptorType is VK_DESCRIPTOR_TYPE_SAMPLER, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, pDescriptorWrites[i].pImageInfo must be a valid pointer to an array of pDescriptorWrites[i].descriptorCount valid VkDescriptorImageInfo structures", + "page": "vkspec" }, { "vuid": "VUID-vkUpdateDescriptorSets-pDescriptorWrites-06941", - "text": " For each element i where pDescriptorWrites[i].descriptorType is VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM or VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM, pDescriptorWrites[i].pImageInfo must be a valid pointer to an array of pDescriptorWrites[i].descriptorCount valid VkDescriptorImageInfo structures" + "text": "For each element i where pDescriptorWrites[i].descriptorType is VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM or VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM, pDescriptorWrites[i].pImageInfo must be a valid pointer to an array of pDescriptorWrites[i].descriptorCount valid VkDescriptorImageInfo structures", + "page": "vkspec" }, { "vuid": "VUID-vkUpdateDescriptorSets-None-03047", - "text": " Descriptor bindings updated by this command which were created without the VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT or VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT bits set must not be used by any command that was recorded to a command buffer which is in the pending state" + "text": "Descriptor bindings updated by this command which were created without the VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT or VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT bits set must not be used by any command that was recorded to a command buffer which is in the pending state", + "page": "vkspec" }, { "vuid": "VUID-vkUpdateDescriptorSets-pDescriptorWrites-06993", - "text": " Host access to pDescriptorWrites[i].dstSet and pDescriptorCopies[i].dstSet must be externally synchronized unless explicitly denoted otherwise for specific flags" + "text": "Host access to pDescriptorWrites[i].dstSet and pDescriptorCopies[i].dstSet must be externally synchronized unless explicitly denoted otherwise for specific flags", + "page": "vkspec" }, { "vuid": "VUID-vkUpdateDescriptorSets-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkUpdateDescriptorSets-pDescriptorWrites-parameter", - "text": " If descriptorWriteCount is not 0, pDescriptorWrites must be a valid pointer to an array of descriptorWriteCount valid VkWriteDescriptorSet structures" + "text": "If descriptorWriteCount is not 0, pDescriptorWrites must be a valid pointer to an array of descriptorWriteCount valid VkWriteDescriptorSet structures", + "page": "vkspec" }, { "vuid": "VUID-vkUpdateDescriptorSets-pDescriptorCopies-parameter", - "text": " If descriptorCopyCount is not 0, pDescriptorCopies must be a valid pointer to an array of descriptorCopyCount valid VkCopyDescriptorSet structures" + "text": "If descriptorCopyCount is not 0, pDescriptorCopies must be a valid pointer to an array of descriptorCopyCount valid VkCopyDescriptorSet structures", + "page": "vkspec" } ] }, @@ -22102,203 +27528,253 @@ "core": [ { "vuid": "VUID-VkWriteDescriptorSet-dstBinding-00315", - "text": " dstBinding must be less than or equal to the maximum value of binding of all VkDescriptorSetLayoutBinding structures specified when dstSet’s descriptor set layout was created" + "text": "dstBinding must be less than or equal to the maximum value of binding of all VkDescriptorSetLayoutBinding structures specified when dstSet’s descriptor set layout was created", + "page": "vkspec" }, { "vuid": "VUID-VkWriteDescriptorSet-dstBinding-00316", - "text": " dstBinding must be a binding with a non-zero descriptorCount" + "text": "dstBinding must be a binding with a non-zero descriptorCount", + "page": "vkspec" }, { "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 and stageFlags", + "page": "vkspec" }, { "vuid": "VUID-VkWriteDescriptorSet-descriptorCount-00318", - "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" + "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": "vkspec" }, { "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00319", - "text": " descriptorType must match the type of dstBinding within dstSet" + "text": "descriptorType must match the type of dstBinding within dstSet", + "page": "vkspec" }, { "vuid": "VUID-VkWriteDescriptorSet-dstSet-00320", - "text": " dstSet must be a valid VkDescriptorSet handle" + "text": "dstSet must be a valid VkDescriptorSet handle", + "page": "vkspec" }, { "vuid": "VUID-VkWriteDescriptorSet-dstArrayElement-00321", - "text": " The sum of dstArrayElement and descriptorCount must be less than or equal to the number of array elements in the descriptor set binding specified by dstBinding, and all applicable consecutive bindings, as described by consecutive binding updates" + "text": "The sum of dstArrayElement and descriptorCount must be less than or equal to the number of array elements in the descriptor set binding specified by dstBinding, and all applicable consecutive bindings, as described by consecutive binding updates", + "page": "vkspec" }, { "vuid": "VUID-VkWriteDescriptorSet-descriptorType-02219", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK, dstArrayElement must be an integer multiple of 4" + "text": "If descriptorType is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK, dstArrayElement must be an integer multiple of 4", + "page": "vkspec" }, { "vuid": "VUID-VkWriteDescriptorSet-descriptorType-02220", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK, descriptorCount must be an integer multiple of 4" + "text": "If descriptorType is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK, descriptorCount must be an integer multiple of 4", + "page": "vkspec" }, { "vuid": "VUID-VkWriteDescriptorSet-descriptorType-02994", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER or VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER, each element of pTexelBufferView must be either a valid VkBufferView handle or VK_NULL_HANDLE" + "text": "If descriptorType is VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER or VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER, each element of pTexelBufferView must be either a valid VkBufferView handle or VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-VkWriteDescriptorSet-descriptorType-02995", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER or VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER and the nullDescriptor feature is not enabled, each element of pTexelBufferView must not be VK_NULL_HANDLE" + "text": "If descriptorType is VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER or VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER and the nullDescriptor feature is not enabled, each element of pTexelBufferView must not be VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00324", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC, pBufferInfo must be a valid pointer to an array of descriptorCount valid VkDescriptorBufferInfo structures" + "text": "If descriptorType is VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC, pBufferInfo must be a valid pointer to an array of descriptorCount valid VkDescriptorBufferInfo structures", + "page": "vkspec" }, { "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00325", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_SAMPLER or VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, and dstSet was not allocated with a layout that included immutable samplers for dstBinding with descriptorType, the sampler member of each element of pImageInfo must be a valid VkSampler object" + "text": "If descriptorType is VK_DESCRIPTOR_TYPE_SAMPLER or VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, and dstSet was not allocated with a layout that included immutable samplers for dstBinding with descriptorType, the sampler member of each element of pImageInfo must be a valid VkSampler object", + "page": "vkspec" }, { "vuid": "VUID-VkWriteDescriptorSet-descriptorType-02996", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, or VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, the imageView member of each element of pImageInfo must be either a valid VkImageView handle or VK_NULL_HANDLE" + "text": "If descriptorType is VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, or VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, the imageView member of each element of pImageInfo must be either a valid VkImageView handle or VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-VkWriteDescriptorSet-descriptorType-02997", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, or VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, and the nullDescriptor feature is not enabled, the imageView member of each element of pImageInfo must not be VK_NULL_HANDLE" + "text": "If descriptorType is VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, or VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, and the nullDescriptor feature is not enabled, the imageView member of each element of pImageInfo must not be VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-VkWriteDescriptorSet-descriptorType-07683", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, the imageView member of each element of pImageInfo must not be VK_NULL_HANDLE" + "text": "If descriptorType is VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, the imageView member of each element of pImageInfo must not be VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-VkWriteDescriptorSet-descriptorType-02221", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK, the pNext chain must include a VkWriteDescriptorSetInlineUniformBlock structure whose dataSize member equals descriptorCount" + "text": "If descriptorType is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK, the pNext chain must include a VkWriteDescriptorSetInlineUniformBlock structure whose dataSize member equals descriptorCount", + "page": "vkspec" }, { "vuid": "VUID-VkWriteDescriptorSet-descriptorType-02382", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR, the pNext chain must include a VkWriteDescriptorSetAccelerationStructureKHR structure whose accelerationStructureCount member equals descriptorCount" + "text": "If descriptorType is VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR, the pNext chain must include a VkWriteDescriptorSetAccelerationStructureKHR structure whose accelerationStructureCount member equals descriptorCount", + "page": "vkspec" }, { "vuid": "VUID-VkWriteDescriptorSet-descriptorType-03817", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV, the pNext chain must include a VkWriteDescriptorSetAccelerationStructureNV structure whose accelerationStructureCount member equals descriptorCount" + "text": "If descriptorType is VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV, the pNext chain must include a VkWriteDescriptorSetAccelerationStructureNV structure whose accelerationStructureCount member equals descriptorCount", + "page": "vkspec" }, { "vuid": "VUID-VkWriteDescriptorSet-descriptorType-01946", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, then the imageView member of each pImageInfo element must have been created without a VkSamplerYcbcrConversionInfo structure in its pNext chain" + "text": "If descriptorType is VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, then the imageView member of each pImageInfo element must have been created without a VkSamplerYcbcrConversionInfo structure in its pNext chain", + "page": "vkspec" }, { "vuid": "VUID-VkWriteDescriptorSet-descriptorType-02738", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, and if any element of pImageInfo has a imageView member that was created with a VkSamplerYcbcrConversionInfo structure in its pNext chain, then dstSet must have been allocated with a layout that included immutable samplers for dstBinding, and the corresponding immutable sampler must have been created with an identically defined VkSamplerYcbcrConversionInfo object" + "text": "If descriptorType is VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, and if any element of pImageInfo has a imageView member that was created with a VkSamplerYcbcrConversionInfo structure in its pNext chain, then dstSet must have been allocated with a layout that included immutable samplers for dstBinding, and the corresponding immutable sampler must have been created with an identically defined VkSamplerYcbcrConversionInfo object", + "page": "vkspec" }, { "vuid": "VUID-VkWriteDescriptorSet-descriptorType-01948", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, and dstSet was allocated with a layout that included immutable samplers for dstBinding, then the imageView member of each element of pImageInfo which corresponds to an immutable sampler that enables sampler {YCbCr} conversion must have been created with a VkSamplerYcbcrConversionInfo structure in its pNext chain with an identically defined VkSamplerYcbcrConversionInfo to the corresponding immutable sampler" + "text": "If descriptorType is VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, and dstSet was allocated with a layout that included immutable samplers for dstBinding, then the imageView member of each element of pImageInfo which corresponds to an immutable sampler that enables sampler Y′CBCR conversion must have been created with a VkSamplerYcbcrConversionInfo structure in its pNext chain with an identically defined VkSamplerYcbcrConversionInfo to the corresponding immutable sampler", + "page": "vkspec" }, { "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00327", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER or VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, the offset member of each element of pBufferInfo must be a multiple of VkPhysicalDeviceLimits::minUniformBufferOffsetAlignment" + "text": "If descriptorType is VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER or VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, the offset member of each element of pBufferInfo must be a multiple of VkPhysicalDeviceLimits::minUniformBufferOffsetAlignment", + "page": "vkspec" }, { "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00328", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_STORAGE_BUFFER or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC, the offset member of each element of pBufferInfo must be a multiple of VkPhysicalDeviceLimits::minStorageBufferOffsetAlignment" + "text": "If descriptorType is VK_DESCRIPTOR_TYPE_STORAGE_BUFFER or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC, the offset member of each element of pBufferInfo must be a multiple of VkPhysicalDeviceLimits::minStorageBufferOffsetAlignment", + "page": "vkspec" }, { "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00329", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC, and the buffer member of any element of pBufferInfo is the handle of a non-sparse buffer, then that buffer must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If descriptorType is VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC, and the buffer member of any element of pBufferInfo is the handle of a non-sparse buffer, then that buffer must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00330", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER or VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, the buffer member of each element of pBufferInfo must have been created with VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT set" + "text": "If descriptorType is VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER or VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, the buffer member of each element of pBufferInfo must have been created with VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT set", + "page": "vkspec" }, { "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00331", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_STORAGE_BUFFER or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC, the buffer member of each element of pBufferInfo must have been created with VK_BUFFER_USAGE_STORAGE_BUFFER_BIT set" + "text": "If descriptorType is VK_DESCRIPTOR_TYPE_STORAGE_BUFFER or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC, the buffer member of each element of pBufferInfo must have been created with VK_BUFFER_USAGE_STORAGE_BUFFER_BIT set", + "page": "vkspec" }, { "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00332", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER or VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, the range member of each element of pBufferInfo, or the effective range if range is VK_WHOLE_SIZE, must be less than or equal to VkPhysicalDeviceLimits::maxUniformBufferRange" + "text": "If descriptorType is VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER or VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, the range member of each element of pBufferInfo, or the effective range if range is VK_WHOLE_SIZE, must be less than or equal to VkPhysicalDeviceLimits::maxUniformBufferRange", + "page": "vkspec" }, { "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00333", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_STORAGE_BUFFER or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC, the range member of each element of pBufferInfo, or the effective range if range is VK_WHOLE_SIZE, must be less than or equal to VkPhysicalDeviceLimits::maxStorageBufferRange" + "text": "If descriptorType is VK_DESCRIPTOR_TYPE_STORAGE_BUFFER or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC, the range member of each element of pBufferInfo, or the effective range if range is VK_WHOLE_SIZE, must be less than or equal to VkPhysicalDeviceLimits::maxStorageBufferRange", + "page": "vkspec" }, { "vuid": "VUID-VkWriteDescriptorSet-descriptorType-08765", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER, the pTexelBufferView buffer view usage must include VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT" + "text": "If descriptorType is VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER, the pTexelBufferView buffer view usage must include VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkWriteDescriptorSet-descriptorType-08766", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER, the pTexelBufferView buffer view usage must include VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT" + "text": "If descriptorType is VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER, the pTexelBufferView buffer view usage must include VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00336", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_STORAGE_IMAGE or VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, the imageView member of each element of pImageInfo must have been created with the identity swizzle" + "text": "If descriptorType is VK_DESCRIPTOR_TYPE_STORAGE_IMAGE or VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, the imageView member of each element of pImageInfo must have been created with the identity swizzle", + "page": "vkspec" }, { "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00337", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE or VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, the imageView member of each element of pImageInfo must have been created with VK_IMAGE_USAGE_SAMPLED_BIT set" + "text": "If descriptorType is VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE or VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, the imageView member of each element of pImageInfo must have been created with VK_IMAGE_USAGE_SAMPLED_BIT set", + "page": "vkspec" }, { "vuid": "VUID-VkWriteDescriptorSet-descriptorType-04149", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE the imageLayout member of each element of pImageInfo must be a member of the list given in Sampled Image" + "text": "If descriptorType is VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE the imageLayout member of each element of pImageInfo must be a member of the list given in Sampled Image", + "page": "vkspec" }, { "vuid": "VUID-VkWriteDescriptorSet-descriptorType-04150", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER the imageLayout member of each element of pImageInfo must be a member of the list given in Combined Image Sampler" + "text": "If descriptorType is VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER the imageLayout member of each element of pImageInfo must be a member of the list given in Combined Image Sampler", + "page": "vkspec" }, { "vuid": "VUID-VkWriteDescriptorSet-descriptorType-04151", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT the imageLayout member of each element of pImageInfo must be a member of the list given in Input Attachment" + "text": "If descriptorType is VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT the imageLayout member of each element of pImageInfo must be a member of the list given in Input Attachment", + "page": "vkspec" }, { "vuid": "VUID-VkWriteDescriptorSet-descriptorType-04152", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_STORAGE_IMAGE the imageLayout member of each element of pImageInfo must be a member of the list given in Storage Image" + "text": "If descriptorType is VK_DESCRIPTOR_TYPE_STORAGE_IMAGE the imageLayout member of each element of pImageInfo must be a member of the list given in Storage Image", + "page": "vkspec" }, { "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00338", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, the imageView member of each element of pImageInfo must have been created with VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT set" + "text": "If descriptorType is VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, the imageView member of each element of pImageInfo must have been created with VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT set", + "page": "vkspec" }, { "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00339", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, the imageView member of each element of pImageInfo must have been created with VK_IMAGE_USAGE_STORAGE_BIT set" + "text": "If descriptorType is VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, the imageView member of each element of pImageInfo must have been created with VK_IMAGE_USAGE_STORAGE_BIT set", + "page": "vkspec" }, { "vuid": "VUID-VkWriteDescriptorSet-descriptorType-02752", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_SAMPLER, then dstSet must not have been allocated with a layout that included immutable samplers for dstBinding" + "text": "If descriptorType is VK_DESCRIPTOR_TYPE_SAMPLER, then dstSet must not have been allocated with a layout that included immutable samplers for dstBinding", + "page": "vkspec" }, { "vuid": "VUID-VkWriteDescriptorSet-dstSet-04611", - "text": " If the VkDescriptorSetLayoutBinding for dstSet at dstBinding is VK_DESCRIPTOR_TYPE_MUTABLE_EXT, the new active descriptor type descriptorType must exist in the corresponding pMutableDescriptorTypeLists list for dstBinding" + "text": "If the VkDescriptorSetLayoutBinding for dstSet at dstBinding is VK_DESCRIPTOR_TYPE_MUTABLE_EXT, the new active descriptor type descriptorType must exist in the corresponding pMutableDescriptorTypeLists list for dstBinding", + "page": "vkspec" }, { "vuid": "VUID-VkWriteDescriptorSet-descriptorType-06450", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, the imageView member of each element of pImageInfo must have either been created without a VkImageViewMinLodCreateInfoEXT included in the pNext chain or with a VkImageViewMinLodCreateInfoEXT::minLod of 0.0" + "text": "If descriptorType is VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, the imageView member of each element of pImageInfo must have either been created without a VkImageViewMinLodCreateInfoEXT included in the pNext chain or with a VkImageViewMinLodCreateInfoEXT::minLod of 0.0", + "page": "vkspec" }, { "vuid": "VUID-VkWriteDescriptorSet-descriptorType-06942", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM, the imageView member of each element of pImageInfo must have been created with a view created with an image created with VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM" + "text": "If descriptorType is VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM, the imageView member of each element of pImageInfo must have been created with a view created with an image created with VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-VkWriteDescriptorSet-descriptorType-06943", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM, the imageView member of each element of pImageInfo must have been created with a view created with an image created with VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM" + "text": "If descriptorType is VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM, the imageView member of each element of pImageInfo must have been created with a view created with an image created with VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-VkWriteDescriptorSet-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET" + "text": "sType must be VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET", + "page": "vkspec" }, { "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, or VkWriteDescriptorSetInlineUniformBlock" + "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, or VkWriteDescriptorSetInlineUniformBlock", + "page": "vkspec" }, { "vuid": "VUID-VkWriteDescriptorSet-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" }, { "vuid": "VUID-VkWriteDescriptorSet-descriptorType-parameter", - "text": " descriptorType must be a valid VkDescriptorType value" + "text": "descriptorType must be a valid VkDescriptorType value", + "page": "vkspec" }, { "vuid": "VUID-VkWriteDescriptorSet-descriptorCount-arraylength", - "text": " descriptorCount must be greater than 0" + "text": "descriptorCount must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-VkWriteDescriptorSet-commonparent", - "text": " Both of dstSet, and the elements of pTexelBufferView that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of dstSet, and the elements of pTexelBufferView that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -22306,27 +27782,33 @@ "core": [ { "vuid": "VUID-VkDescriptorBufferInfo-offset-00340", - "text": " offset must be less than the size of buffer" + "text": "offset must be less than the size of buffer", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorBufferInfo-range-00341", - "text": " If range is not equal to VK_WHOLE_SIZE, range must be greater than 0" + "text": "If range is not equal to VK_WHOLE_SIZE, range must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorBufferInfo-range-00342", - "text": " If range is not equal to VK_WHOLE_SIZE, range must be less than or equal to the size of buffer minus offset" + "text": "If range is not equal to VK_WHOLE_SIZE, range must be less than or equal to the size of buffer minus offset", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorBufferInfo-buffer-02998", - "text": " If the nullDescriptor feature is not enabled, buffer must not be VK_NULL_HANDLE" + "text": "If the nullDescriptor feature is not enabled, buffer must not be VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorBufferInfo-buffer-02999", - "text": " If buffer is VK_NULL_HANDLE, offset must be zero and range must be VK_WHOLE_SIZE" + "text": "If buffer is VK_NULL_HANDLE, offset must be zero and range must be VK_WHOLE_SIZE", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorBufferInfo-buffer-parameter", - "text": " If buffer is not VK_NULL_HANDLE, buffer must be a valid VkBuffer handle" + "text": "If buffer is not VK_NULL_HANDLE, buffer must be a valid VkBuffer handle", + "page": "vkspec" } ] }, @@ -22334,43 +27816,53 @@ "core": [ { "vuid": "VUID-VkDescriptorImageInfo-imageView-06712", - "text": " imageView must not be a 2D array image view created from a 3D image" + "text": "imageView must not be a 2D array image view created from a 3D image", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorImageInfo-imageView-07795", - "text": " If imageView is a 2D view created from a 3D image, then descriptorType must be VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, or VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER" + "text": "If imageView is a 2D view created from a 3D image, then descriptorType must be VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, or VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorImageInfo-imageView-07796", - "text": " If imageView is a 2D view created from a 3D image, then the image must have been created with VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT set" + "text": "If imageView is a 2D view created from a 3D image, then the image must have been created with VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT set", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorImageInfo-descriptorType-06713", - "text": " If the image2DViewOf3D feature is not enabled or descriptorType is not VK_DESCRIPTOR_TYPE_STORAGE_IMAGE then imageView must not be a 2D view created from a 3D image" + "text": "If the image2DViewOf3D feature is not enabled or descriptorType is not VK_DESCRIPTOR_TYPE_STORAGE_IMAGE then imageView must not be a 2D view created from a 3D image", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorImageInfo-descriptorType-06714", - "text": " If the sampler2DViewOf3D feature is not enabled or descriptorType is not VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE or VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER then imageView must not be a 2D view created from a 3D image" + "text": "If the sampler2DViewOf3D feature is not enabled or descriptorType is not VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE or VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER then imageView must not be a 2D view created from a 3D image", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorImageInfo-imageView-01976", - "text": " If imageView is created from a depth/stencil image, the aspectMask used to create the imageView must include either VK_IMAGE_ASPECT_DEPTH_BIT or VK_IMAGE_ASPECT_STENCIL_BIT but not both" + "text": "If imageView is created from a depth/stencil image, the aspectMask used to create the imageView must include either VK_IMAGE_ASPECT_DEPTH_BIT or VK_IMAGE_ASPECT_STENCIL_BIT but not both", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorImageInfo-imageLayout-00344", - "text": " imageLayout must match the actual VkImageLayout of each subresource accessible from imageView at the time this descriptor is accessed as defined by the image layout matching rules" + "text": "imageLayout must match the actual VkImageLayout of each subresource accessible from imageView at the time this descriptor is accessed as defined by the image layout matching rules", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorImageInfo-sampler-01564", - "text": " If sampler is used and the VkFormat of the image is a multi-planar format, the image must have been created with VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT, and the aspectMask of the imageView must be a valid multi-planar aspect mask" + "text": "If sampler is used and the VkFormat of the image is a multi-planar format, the image must have been created with VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT, and the aspectMask of the imageView must be a valid multi-planar aspect mask bit", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorImageInfo-mutableComparisonSamplers-04450", - "text": " If the VK_KHR_portability_subset extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::mutableComparisonSamplers is VK_FALSE, then sampler must have been created with VkSamplerCreateInfo::compareEnable set to VK_FALSE" + "text": "If the VK_KHR_portability_subset extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::mutableComparisonSamplers is VK_FALSE, then sampler must have been created with VkSamplerCreateInfo::compareEnable set to VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorImageInfo-commonparent", - "text": " Both of imageView, and sampler that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of imageView, and sampler that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -22378,19 +27870,23 @@ "core": [ { "vuid": "VUID-VkWriteDescriptorSetInlineUniformBlock-dataSize-02222", - "text": " dataSize must be an integer multiple of 4" + "text": "dataSize must be an integer multiple of 4", + "page": "vkspec" }, { "vuid": "VUID-VkWriteDescriptorSetInlineUniformBlock-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK" + "text": "sType must be VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK", + "page": "vkspec" }, { "vuid": "VUID-VkWriteDescriptorSetInlineUniformBlock-pData-parameter", - "text": " pData must be a valid pointer to an array of dataSize bytes" + "text": "pData must be a valid pointer to an array of dataSize bytes", + "page": "vkspec" }, { "vuid": "VUID-VkWriteDescriptorSetInlineUniformBlock-dataSize-arraylength", - "text": " dataSize must be greater than 0" + "text": "dataSize must be greater than 0", + "page": "vkspec" } ] }, @@ -22398,27 +27894,33 @@ "core": [ { "vuid": "VUID-VkWriteDescriptorSetAccelerationStructureKHR-accelerationStructureCount-02236", - "text": " accelerationStructureCount must be equal to descriptorCount in the extended structure" + "text": "accelerationStructureCount must be equal to descriptorCount in the extended structure", + "page": "vkspec" }, { "vuid": "VUID-VkWriteDescriptorSetAccelerationStructureKHR-pAccelerationStructures-03579", - "text": " Each acceleration structure in pAccelerationStructures must have been created with a type of VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR or VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR" + "text": "Each acceleration structure in pAccelerationStructures must have been created with a type of VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR or VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkWriteDescriptorSetAccelerationStructureKHR-pAccelerationStructures-03580", - "text": " If the nullDescriptor feature is not enabled, each element of pAccelerationStructures must not be VK_NULL_HANDLE" + "text": "If the nullDescriptor feature is not enabled, each element of pAccelerationStructures must not be VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-VkWriteDescriptorSetAccelerationStructureKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkWriteDescriptorSetAccelerationStructureKHR-pAccelerationStructures-parameter", - "text": " pAccelerationStructures must be a valid pointer to an array of accelerationStructureCount valid or VK_NULL_HANDLE VkAccelerationStructureKHR handles" + "text": "pAccelerationStructures must be a valid pointer to an array of accelerationStructureCount valid or VK_NULL_HANDLE VkAccelerationStructureKHR handles", + "page": "vkspec" }, { "vuid": "VUID-VkWriteDescriptorSetAccelerationStructureKHR-accelerationStructureCount-arraylength", - "text": " accelerationStructureCount must be greater than 0" + "text": "accelerationStructureCount must be greater than 0", + "page": "vkspec" } ] }, @@ -22426,27 +27928,33 @@ "core": [ { "vuid": "VUID-VkWriteDescriptorSetAccelerationStructureNV-accelerationStructureCount-03747", - "text": " accelerationStructureCount must be equal to descriptorCount in the extended structure" + "text": "accelerationStructureCount must be equal to descriptorCount in the extended structure", + "page": "vkspec" }, { "vuid": "VUID-VkWriteDescriptorSetAccelerationStructureNV-pAccelerationStructures-03748", - "text": " Each acceleration structure in pAccelerationStructures must have been created with VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR" + "text": "Each acceleration structure in pAccelerationStructures must have been created with VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkWriteDescriptorSetAccelerationStructureNV-pAccelerationStructures-03749", - "text": " If the nullDescriptor feature is not enabled, each member of pAccelerationStructures must not be VK_NULL_HANDLE" + "text": "If the nullDescriptor feature is not enabled, each member of pAccelerationStructures must not be VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-VkWriteDescriptorSetAccelerationStructureNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV" + "text": "sType must be VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV", + "page": "vkspec" }, { "vuid": "VUID-VkWriteDescriptorSetAccelerationStructureNV-pAccelerationStructures-parameter", - "text": " pAccelerationStructures must be a valid pointer to an array of accelerationStructureCount valid or VK_NULL_HANDLE VkAccelerationStructureNV handles" + "text": "pAccelerationStructures must be a valid pointer to an array of accelerationStructureCount valid or VK_NULL_HANDLE VkAccelerationStructureNV handles", + "page": "vkspec" }, { "vuid": "VUID-VkWriteDescriptorSetAccelerationStructureNV-accelerationStructureCount-arraylength", - "text": " accelerationStructureCount must be greater than 0" + "text": "accelerationStructureCount must be greater than 0", + "page": "vkspec" } ] }, @@ -22454,91 +27962,113 @@ "core": [ { "vuid": "VUID-VkCopyDescriptorSet-srcBinding-00345", - "text": " srcBinding must be a valid binding within srcSet" + "text": "srcBinding must be a valid binding within srcSet", + "page": "vkspec" }, { "vuid": "VUID-VkCopyDescriptorSet-srcArrayElement-00346", - "text": " The sum of srcArrayElement and descriptorCount must be less than or equal to the number of array elements in the descriptor set binding specified by srcBinding, and all applicable consecutive bindings, as described by consecutive binding updates" + "text": "The sum of srcArrayElement and descriptorCount must be less than or equal to the number of array elements in the descriptor set binding specified by srcBinding, and all applicable consecutive bindings, as described by consecutive binding updates", + "page": "vkspec" }, { "vuid": "VUID-VkCopyDescriptorSet-dstBinding-00347", - "text": " dstBinding must be a valid binding within dstSet" + "text": "dstBinding must be a valid binding within dstSet", + "page": "vkspec" }, { "vuid": "VUID-VkCopyDescriptorSet-dstArrayElement-00348", - "text": " The sum of dstArrayElement and descriptorCount must be less than or equal to the number of array elements in the descriptor set binding specified by dstBinding, and all applicable consecutive bindings, as described by consecutive binding updates" + "text": "The sum of dstArrayElement and descriptorCount must be less than or equal to the number of array elements in the descriptor set binding specified by dstBinding, and all applicable consecutive bindings, as described by consecutive binding updates", + "page": "vkspec" }, { "vuid": "VUID-VkCopyDescriptorSet-dstBinding-02632", - "text": " The type of dstBinding within dstSet must be equal to the type of srcBinding within srcSet" + "text": "The type of dstBinding within dstSet must be equal to the type of srcBinding within srcSet", + "page": "vkspec" }, { "vuid": "VUID-VkCopyDescriptorSet-srcSet-00349", - "text": " If srcSet is equal to dstSet, then the source and destination ranges of descriptors must not overlap, where the ranges may include array elements from consecutive bindings as described by consecutive binding updates" + "text": "If srcSet is equal to dstSet, then the source and destination ranges of descriptors must not overlap, where the ranges may include array elements from consecutive bindings as described by consecutive binding updates", + "page": "vkspec" }, { "vuid": "VUID-VkCopyDescriptorSet-srcBinding-02223", - "text": " If the descriptor type of the descriptor set binding specified by srcBinding is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK, srcArrayElement must be an integer multiple of 4" + "text": "If the descriptor type of the descriptor set binding specified by srcBinding is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK, srcArrayElement must be an integer multiple of 4", + "page": "vkspec" }, { "vuid": "VUID-VkCopyDescriptorSet-dstBinding-02224", - "text": " If the descriptor type of the descriptor set binding specified by dstBinding is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK, dstArrayElement must be an integer multiple of 4" + "text": "If the descriptor type of the descriptor set binding specified by dstBinding is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK, dstArrayElement must be an integer multiple of 4", + "page": "vkspec" }, { "vuid": "VUID-VkCopyDescriptorSet-srcBinding-02225", - "text": " If the descriptor type of the descriptor set binding specified by either srcBinding or dstBinding is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK, descriptorCount must be an integer multiple of 4" + "text": "If the descriptor type of the descriptor set binding specified by either srcBinding or dstBinding is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK, descriptorCount must be an integer multiple of 4", + "page": "vkspec" }, { "vuid": "VUID-VkCopyDescriptorSet-srcSet-01918", - "text": " If srcSet’s layout was created with the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT flag set, then dstSet’s layout must also have been created with the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT flag set" + "text": "If srcSet’s layout was created with the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT flag set, then dstSet’s layout must also have been created with the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT flag set", + "page": "vkspec" }, { "vuid": "VUID-VkCopyDescriptorSet-srcSet-04885", - "text": " If srcSet’s layout was created with neither VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT nor VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT flags set, then dstSet’s layout must have been created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT flag set" + "text": "If srcSet’s layout was created with neither VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT nor VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT flags set, then dstSet’s layout must have been created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT flag set", + "page": "vkspec" }, { "vuid": "VUID-VkCopyDescriptorSet-srcSet-01920", - "text": " If the descriptor pool from which srcSet was allocated was created with the VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT flag set, then the descriptor pool from which dstSet was allocated must also have been created with the VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT flag set" + "text": "If the descriptor pool from which srcSet was allocated was created with the VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT flag set, then the descriptor pool from which dstSet was allocated must also have been created with the VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT flag set", + "page": "vkspec" }, { "vuid": "VUID-VkCopyDescriptorSet-srcSet-04887", - "text": " If the descriptor pool from which srcSet was allocated was created with neither VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT nor VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT flags set, then the descriptor pool from which dstSet was allocated must have been created without the VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT flag set" + "text": "If the descriptor pool from which srcSet was allocated was created with neither VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT nor VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT flags set, then the descriptor pool from which dstSet was allocated must have been created without the VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT flag set", + "page": "vkspec" }, { "vuid": "VUID-VkCopyDescriptorSet-dstBinding-02753", - "text": " If the descriptor type of the descriptor set binding specified by dstBinding is VK_DESCRIPTOR_TYPE_SAMPLER, then dstSet must not have been allocated with a layout that included immutable samplers for dstBinding" + "text": "If the descriptor type of the descriptor set binding specified by dstBinding is VK_DESCRIPTOR_TYPE_SAMPLER, then dstSet must not have been allocated with a layout that included immutable samplers for dstBinding", + "page": "vkspec" }, { "vuid": "VUID-VkCopyDescriptorSet-dstSet-04612", - "text": " If VkDescriptorSetLayoutBinding for dstSet at dstBinding is VK_DESCRIPTOR_TYPE_MUTABLE_EXT, the new active descriptor type must exist in the corresponding pMutableDescriptorTypeLists list for dstBinding if the new active descriptor type is not VK_DESCRIPTOR_TYPE_MUTABLE_EXT" + "text": "If VkDescriptorSetLayoutBinding for dstSet at dstBinding is VK_DESCRIPTOR_TYPE_MUTABLE_EXT, the new active descriptor type must exist in the corresponding pMutableDescriptorTypeLists list for dstBinding if the new active descriptor type is not VK_DESCRIPTOR_TYPE_MUTABLE_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkCopyDescriptorSet-srcSet-04613", - "text": " If VkDescriptorSetLayoutBinding for srcSet at srcBinding is VK_DESCRIPTOR_TYPE_MUTABLE_EXT and the VkDescriptorSetLayoutBinding for dstSet at dstBinding is not VK_DESCRIPTOR_TYPE_MUTABLE_EXT, the active descriptor type for the source descriptor must match the descriptor type of dstBinding" + "text": "If VkDescriptorSetLayoutBinding for srcSet at srcBinding is VK_DESCRIPTOR_TYPE_MUTABLE_EXT and the VkDescriptorSetLayoutBinding for dstSet at dstBinding is not VK_DESCRIPTOR_TYPE_MUTABLE_EXT, the active descriptor type for the source descriptor must match the descriptor type of dstBinding", + "page": "vkspec" }, { "vuid": "VUID-VkCopyDescriptorSet-dstSet-04614", - "text": " If VkDescriptorSetLayoutBinding for dstSet at dstBinding is VK_DESCRIPTOR_TYPE_MUTABLE_EXT, and the new active descriptor type is VK_DESCRIPTOR_TYPE_MUTABLE_EXT, the pMutableDescriptorTypeLists for srcBinding and dstBinding must match exactly" + "text": "If VkDescriptorSetLayoutBinding for dstSet at dstBinding is VK_DESCRIPTOR_TYPE_MUTABLE_EXT, and the new active descriptor type is VK_DESCRIPTOR_TYPE_MUTABLE_EXT, the pMutableDescriptorTypeLists for srcBinding and dstBinding must match exactly", + "page": "vkspec" }, { "vuid": "VUID-VkCopyDescriptorSet-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET" + "text": "sType must be VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET", + "page": "vkspec" }, { "vuid": "VUID-VkCopyDescriptorSet-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkCopyDescriptorSet-srcSet-parameter", - "text": " srcSet must be a valid VkDescriptorSet handle" + "text": "srcSet must be a valid VkDescriptorSet handle", + "page": "vkspec" }, { "vuid": "VUID-VkCopyDescriptorSet-dstSet-parameter", - "text": " dstSet must be a valid VkDescriptorSet handle" + "text": "dstSet must be a valid VkDescriptorSet handle", + "page": "vkspec" }, { "vuid": "VUID-VkCopyDescriptorSet-commonparent", - "text": " Both of dstSet, and srcSet must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of dstSet, and srcSet must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -22546,19 +28076,23 @@ "core": [ { "vuid": "VUID-vkCreateDescriptorUpdateTemplate-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkCreateDescriptorUpdateTemplate-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkDescriptorUpdateTemplateCreateInfo structure" + "text": "pCreateInfo must be a valid pointer to a valid VkDescriptorUpdateTemplateCreateInfo structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateDescriptorUpdateTemplate-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateDescriptorUpdateTemplate-pDescriptorUpdateTemplate-parameter", - "text": " pDescriptorUpdateTemplate must be a valid pointer to a VkDescriptorUpdateTemplate handle" + "text": "pDescriptorUpdateTemplate must be a valid pointer to a VkDescriptorUpdateTemplate handle", + "page": "vkspec" } ] }, @@ -22566,51 +28100,63 @@ "core": [ { "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-00350", - "text": " If templateType is VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET, descriptorSetLayout must be a valid VkDescriptorSetLayout handle" + "text": "If templateType is VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET, descriptorSetLayout must be a valid VkDescriptorSetLayout handle", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-00351", - "text": " If templateType is VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR, pipelineBindPoint must be a valid VkPipelineBindPoint value" + "text": "If templateType is VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR, pipelineBindPoint must be a valid VkPipelineBindPoint value", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-00352", - "text": " If templateType is VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR, pipelineLayout must be a valid VkPipelineLayout handle" + "text": "If templateType is VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR, pipelineLayout must be a valid VkPipelineLayout handle", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-00353", - "text": " If templateType is VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR, set must be the unique set number in the pipeline layout that uses a descriptor set layout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR" + "text": "If templateType is VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR, set must be the unique set number in the pipeline layout that uses a descriptor set layout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-04615", - "text": " If templateType is VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET, descriptorSetLayout must not contain a binding with type VK_DESCRIPTOR_TYPE_MUTABLE_EXT" + "text": "If templateType is VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET, descriptorSetLayout must not contain a binding with type VK_DESCRIPTOR_TYPE_MUTABLE_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-flags-zerobitmask", - "text": " flags must be 0" + "text": "flags must be 0", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-pDescriptorUpdateEntries-parameter", - "text": " pDescriptorUpdateEntries must be a valid pointer to an array of descriptorUpdateEntryCount valid VkDescriptorUpdateTemplateEntry structures" + "text": "pDescriptorUpdateEntries must be a valid pointer to an array of descriptorUpdateEntryCount valid VkDescriptorUpdateTemplateEntry structures", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-parameter", - "text": " templateType must be a valid VkDescriptorUpdateTemplateType value" + "text": "templateType must be a valid VkDescriptorUpdateTemplateType value", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-descriptorUpdateEntryCount-arraylength", - "text": " descriptorUpdateEntryCount must be greater than 0" + "text": "descriptorUpdateEntryCount must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-commonparent", - "text": " Both of descriptorSetLayout, and pipelineLayout that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of descriptorSetLayout, and pipelineLayout that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -22618,23 +28164,28 @@ "core": [ { "vuid": "VUID-VkDescriptorUpdateTemplateEntry-dstBinding-00354", - "text": " dstBinding must be a valid binding in the descriptor set layout implicitly specified when using a descriptor update template to update descriptors" + "text": "dstBinding must be a valid binding in the descriptor set layout implicitly specified when using a descriptor update template to update descriptors", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorUpdateTemplateEntry-dstArrayElement-00355", - "text": " dstArrayElement and descriptorCount must be less than or equal to the number of array elements in the descriptor set binding implicitly specified when using a descriptor update template to update descriptors, and all applicable consecutive bindings, as described by consecutive binding updates" + "text": "dstArrayElement and descriptorCount must be less than or equal to the number of array elements in the descriptor set binding implicitly specified when using a descriptor update template to update descriptors, and all applicable consecutive bindings, as described by consecutive binding updates", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorUpdateTemplateEntry-descriptor-02226", - "text": " If descriptor type is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK, dstArrayElement must be an integer multiple of 4" + "text": "If descriptor type is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK, dstArrayElement must be an integer multiple of 4", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorUpdateTemplateEntry-descriptor-02227", - "text": " If descriptor type is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK, descriptorCount must be an integer multiple of 4" + "text": "If descriptor type is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK, descriptorCount must be an integer multiple of 4", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorUpdateTemplateEntry-descriptorType-parameter", - "text": " descriptorType must be a valid VkDescriptorType value" + "text": "descriptorType must be a valid VkDescriptorType value", + "page": "vkspec" } ] }, @@ -22642,27 +28193,33 @@ "core": [ { "vuid": "VUID-vkDestroyDescriptorUpdateTemplate-descriptorSetLayout-00356", - "text": " If VkAllocationCallbacks were provided when descriptorUpdateTemplate was created, a compatible set of callbacks must be provided here" + "text": "If VkAllocationCallbacks were provided when descriptorUpdateTemplate was created, a compatible set of callbacks must be provided here", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyDescriptorUpdateTemplate-descriptorSetLayout-00357", - "text": " If no VkAllocationCallbacks were provided when descriptorUpdateTemplate was created, pAllocator must be NULL" + "text": "If no VkAllocationCallbacks were provided when descriptorUpdateTemplate was created, pAllocator must be NULL", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyDescriptorUpdateTemplate-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyDescriptorUpdateTemplate-descriptorUpdateTemplate-parameter", - "text": " If descriptorUpdateTemplate is not VK_NULL_HANDLE, descriptorUpdateTemplate must be a valid VkDescriptorUpdateTemplate handle" + "text": "If descriptorUpdateTemplate is not VK_NULL_HANDLE, descriptorUpdateTemplate must be a valid VkDescriptorUpdateTemplate handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyDescriptorUpdateTemplate-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyDescriptorUpdateTemplate-descriptorUpdateTemplate-parent", - "text": " If descriptorUpdateTemplate is a valid handle, it must have been created, allocated, or retrieved from device" + "text": "If descriptorUpdateTemplate is a valid handle, it must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -22670,27 +28227,38 @@ "core": [ { "vuid": "VUID-vkUpdateDescriptorSetWithTemplate-pData-01685", - "text": " pData must be a valid pointer to a memory containing one or more valid instances of VkDescriptorImageInfo, VkDescriptorBufferInfo, or VkBufferView in a layout defined by descriptorUpdateTemplate when it was created with vkCreateDescriptorUpdateTemplate" + "text": "pData must be a valid pointer to a memory containing one or more valid instances of VkDescriptorImageInfo, VkDescriptorBufferInfo, or VkBufferView in a layout defined by descriptorUpdateTemplate when it was created with vkCreateDescriptorUpdateTemplate", + "page": "vkspec" }, { "vuid": "VUID-vkUpdateDescriptorSetWithTemplate-descriptorSet-06995", - "text": " Host access to descriptorSet must be externally synchronized unless explicitly denoted otherwise for specific flags" + "text": "Host access to descriptorSet must be externally synchronized unless explicitly denoted otherwise for specific flags", + "page": "vkspec" }, { "vuid": "VUID-vkUpdateDescriptorSetWithTemplate-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkUpdateDescriptorSetWithTemplate-descriptorSet-parameter", - "text": " descriptorSet must be a valid VkDescriptorSet handle" + "text": "descriptorSet must be a valid VkDescriptorSet handle", + "page": "vkspec" }, { "vuid": "VUID-vkUpdateDescriptorSetWithTemplate-descriptorUpdateTemplate-parameter", - "text": " descriptorUpdateTemplate must be a valid VkDescriptorUpdateTemplate handle" + "text": "descriptorUpdateTemplate must be a valid VkDescriptorUpdateTemplate handle", + "page": "vkspec" + }, + { + "vuid": "VUID-vkUpdateDescriptorSetWithTemplate-descriptorSet-parent", + "text": "descriptorSet must have been created, allocated, or retrieved from device", + "page": "vkspec" }, { "vuid": "VUID-vkUpdateDescriptorSetWithTemplate-descriptorUpdateTemplate-parent", - "text": " descriptorUpdateTemplate must have been created, allocated, or retrieved from device" + "text": "descriptorUpdateTemplate must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -22698,87 +28266,108 @@ "core": [ { "vuid": "VUID-vkCmdBindDescriptorSets-pDescriptorSets-00358", - "text": " Each element of pDescriptorSets must have been allocated with a VkDescriptorSetLayout that matches (is the same as, or identically defined as) the VkDescriptorSetLayout at set n in layout, where n is the sum of firstSet and the index into pDescriptorSets" + "text": "Each element of pDescriptorSets must have been allocated with a VkDescriptorSetLayout that matches (is the same as, or identically defined as) the VkDescriptorSetLayout at set n in layout, where n is the sum of firstSet and the index into pDescriptorSets", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindDescriptorSets-dynamicOffsetCount-00359", - "text": " dynamicOffsetCount must be equal to the total number of dynamic descriptors in pDescriptorSets" + "text": "dynamicOffsetCount must be equal to the total number of dynamic descriptors in pDescriptorSets", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindDescriptorSets-firstSet-00360", - "text": " The sum of firstSet and descriptorSetCount must be less than or equal to VkPipelineLayoutCreateInfo::setLayoutCount provided when layout was created" + "text": "The sum of firstSet and descriptorSetCount must be less than or equal to VkPipelineLayoutCreateInfo::setLayoutCount provided when layout was created", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindDescriptorSets-pipelineBindPoint-00361", - "text": " pipelineBindPoint must be supported by the commandBuffer’s parent VkCommandPool’s queue family" + "text": "pipelineBindPoint must be supported by the commandBuffer’s parent VkCommandPool’s queue family", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindDescriptorSets-pDynamicOffsets-01971", - "text": " Each element of pDynamicOffsets which corresponds to a descriptor binding with type VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC must be a multiple of VkPhysicalDeviceLimits::minUniformBufferOffsetAlignment" + "text": "Each element of pDynamicOffsets which corresponds to a descriptor binding with type VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC must be a multiple of VkPhysicalDeviceLimits::minUniformBufferOffsetAlignment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindDescriptorSets-pDynamicOffsets-01972", - "text": " Each element of pDynamicOffsets which corresponds to a descriptor binding with type VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC must be a multiple of VkPhysicalDeviceLimits::minStorageBufferOffsetAlignment" + "text": "Each element of pDynamicOffsets which corresponds to a descriptor binding with type VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC must be a multiple of VkPhysicalDeviceLimits::minStorageBufferOffsetAlignment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindDescriptorSets-pDescriptorSets-01979", - "text": " For each dynamic uniform or storage buffer binding in pDescriptorSets, the sum of the effective offset and the range of the binding must be less than or equal to the size of the buffer" + "text": "For each dynamic uniform or storage buffer binding in pDescriptorSets, the sum of the effective offset and the range of the binding must be less than or equal to the size of the buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindDescriptorSets-pDescriptorSets-06715", - "text": " For each dynamic uniform or storage buffer binding in pDescriptorSets, if the range was set with VK_WHOLE_SIZE then pDynamicOffsets which corresponds to the descriptor binding must be 0" + "text": "For each dynamic uniform or storage buffer binding in pDescriptorSets, if the range was set with VK_WHOLE_SIZE then pDynamicOffsets which corresponds to the descriptor binding must be 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindDescriptorSets-pDescriptorSets-04616", - "text": " Each element of pDescriptorSets must not have been allocated from a VkDescriptorPool with the VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT flag set" + "text": "Each element of pDescriptorSets must not have been allocated from a VkDescriptorPool with the VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT flag set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindDescriptorSets-graphicsPipelineLibrary-06754", - "text": " If graphicsPipelineLibrary is not enabled, each element of pDescriptorSets must be a valid VkDescriptorSet" + "text": "If graphicsPipelineLibrary is not enabled, each element of pDescriptorSets must be a valid VkDescriptorSet", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindDescriptorSets-pDescriptorSets-08010", - "text": " Each element of pDescriptorSets must have been allocated with a VkDescriptorSetLayout which was not created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "Each element of pDescriptorSets must have been allocated with a VkDescriptorSetLayout which was not created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindDescriptorSets-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindDescriptorSets-pipelineBindPoint-parameter", - "text": " pipelineBindPoint must be a valid VkPipelineBindPoint value" + "text": "pipelineBindPoint must be a valid VkPipelineBindPoint value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindDescriptorSets-layout-parameter", - "text": " layout must be a valid VkPipelineLayout handle" + "text": "layout must be a valid VkPipelineLayout handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindDescriptorSets-pDescriptorSets-parameter", - "text": " pDescriptorSets must be a valid pointer to an array of descriptorSetCount valid or VK_NULL_HANDLE VkDescriptorSet handles" + "text": "pDescriptorSets must be a valid pointer to an array of descriptorSetCount valid or VK_NULL_HANDLE VkDescriptorSet handles", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindDescriptorSets-pDynamicOffsets-parameter", - "text": " If dynamicOffsetCount is not 0, pDynamicOffsets must be a valid pointer to an array of dynamicOffsetCount uint32_t values" + "text": "If dynamicOffsetCount is not 0, pDynamicOffsets must be a valid pointer to an array of dynamicOffsetCount uint32_t values", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindDescriptorSets-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindDescriptorSets-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindDescriptorSets-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindDescriptorSets-descriptorSetCount-arraylength", - "text": " descriptorSetCount must be greater than 0" + "text": "descriptorSetCount must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindDescriptorSets-commonparent", - "text": " Each of commandBuffer, layout, and the elements of pDescriptorSets that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" + "text": "Each of commandBuffer, layout, and the elements of pDescriptorSets that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -22786,55 +28375,68 @@ "core": [ { "vuid": "VUID-vkCmdPushDescriptorSetKHR-pipelineBindPoint-00363", - "text": " pipelineBindPoint must be supported by the commandBuffer’s parent VkCommandPool’s queue family" + "text": "pipelineBindPoint must be supported by the commandBuffer’s parent VkCommandPool’s queue family", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPushDescriptorSetKHR-set-00364", - "text": " set must be less than VkPipelineLayoutCreateInfo::setLayoutCount provided when layout was created" + "text": "set must be less than VkPipelineLayoutCreateInfo::setLayoutCount provided when layout was created", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPushDescriptorSetKHR-set-00365", - "text": " set must be the unique set number in the pipeline layout that uses a descriptor set layout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR" + "text": "set must be the unique set number in the pipeline layout that uses a descriptor set layout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPushDescriptorSetKHR-pDescriptorWrites-06494", - "text": " For each element i where pDescriptorWrites[i].descriptorType is VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, pDescriptorWrites[i].pImageInfo must be a valid pointer to an array of pDescriptorWrites[i].descriptorCount valid VkDescriptorImageInfo structures" + "text": "For each element i where pDescriptorWrites[i].descriptorType is VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, pDescriptorWrites[i].pImageInfo must be a valid pointer to an array of pDescriptorWrites[i].descriptorCount valid VkDescriptorImageInfo structures", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPushDescriptorSetKHR-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPushDescriptorSetKHR-pipelineBindPoint-parameter", - "text": " pipelineBindPoint must be a valid VkPipelineBindPoint value" + "text": "pipelineBindPoint must be a valid VkPipelineBindPoint value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPushDescriptorSetKHR-layout-parameter", - "text": " layout must be a valid VkPipelineLayout handle" + "text": "layout must be a valid VkPipelineLayout handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPushDescriptorSetKHR-pDescriptorWrites-parameter", - "text": " pDescriptorWrites must be a valid pointer to an array of descriptorWriteCount valid VkWriteDescriptorSet structures" + "text": "pDescriptorWrites must be a valid pointer to an array of descriptorWriteCount valid VkWriteDescriptorSet structures", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPushDescriptorSetKHR-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPushDescriptorSetKHR-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPushDescriptorSetKHR-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPushDescriptorSetKHR-descriptorWriteCount-arraylength", - "text": " descriptorWriteCount must be greater than 0" + "text": "descriptorWriteCount must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPushDescriptorSetKHR-commonparent", - "text": " Both of commandBuffer, and layout must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of commandBuffer, and layout must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -22842,59 +28444,73 @@ "core": [ { "vuid": "VUID-vkCmdPushDescriptorSetWithTemplateKHR-commandBuffer-00366", - "text": " The pipelineBindPoint specified during the creation of the descriptor update template must be supported by the commandBuffer’s parent VkCommandPool’s queue family" + "text": "The pipelineBindPoint specified during the creation of the descriptor update template must be supported by the commandBuffer’s parent VkCommandPool’s queue family", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPushDescriptorSetWithTemplateKHR-pData-01686", - "text": " pData must be a valid pointer to a memory containing one or more valid instances of VkDescriptorImageInfo, VkDescriptorBufferInfo, or VkBufferView in a layout defined by descriptorUpdateTemplate when it was created with vkCreateDescriptorUpdateTemplate" + "text": "pData must be a valid pointer to a memory containing one or more valid instances of VkDescriptorImageInfo, VkDescriptorBufferInfo, or VkBufferView in a layout defined by descriptorUpdateTemplate when it was created with vkCreateDescriptorUpdateTemplate", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPushDescriptorSetWithTemplateKHR-layout-07993", - "text": " layout must be compatible with the layout used to create descriptorUpdateTemplate" + "text": "layout must be compatible with the layout used to create descriptorUpdateTemplate", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPushDescriptorSetWithTemplateKHR-descriptorUpdateTemplate-07994", - "text": " descriptorUpdateTemplate must have been created with a templateType of VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR" + "text": "descriptorUpdateTemplate must have been created with a templateType of VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPushDescriptorSetWithTemplateKHR-set-07995", - "text": " set must be the same value used to create descriptorUpdateTemplate" + "text": "set must be the same value used to create descriptorUpdateTemplate", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPushDescriptorSetWithTemplateKHR-set-07304", - "text": " set must be less than VkPipelineLayoutCreateInfo::setLayoutCount provided when layout was created" + "text": "set must be less than VkPipelineLayoutCreateInfo::setLayoutCount provided when layout was created", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPushDescriptorSetWithTemplateKHR-set-07305", - "text": " set must be the unique set number in the pipeline layout that uses a descriptor set layout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR" + "text": "set must be the unique set number in the pipeline layout that uses a descriptor set layout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPushDescriptorSetWithTemplateKHR-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPushDescriptorSetWithTemplateKHR-descriptorUpdateTemplate-parameter", - "text": " descriptorUpdateTemplate must be a valid VkDescriptorUpdateTemplate handle" + "text": "descriptorUpdateTemplate must be a valid VkDescriptorUpdateTemplate handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPushDescriptorSetWithTemplateKHR-layout-parameter", - "text": " layout must be a valid VkPipelineLayout handle" + "text": "layout must be a valid VkPipelineLayout handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPushDescriptorSetWithTemplateKHR-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPushDescriptorSetWithTemplateKHR-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPushDescriptorSetWithTemplateKHR-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPushDescriptorSetWithTemplateKHR-commonparent", - "text": " Each of commandBuffer, descriptorUpdateTemplate, and layout must have been created, allocated, or retrieved from the same VkDevice" + "text": "Each of commandBuffer, descriptorUpdateTemplate, and layout must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -22902,67 +28518,83 @@ "core": [ { "vuid": "VUID-vkCmdPushConstants-offset-01795", - "text": " For each byte in the range specified by offset and size and for each shader stage in stageFlags, there must be a push constant range in layout that includes that byte and that stage" + "text": "For each byte in the range specified by offset and size and for each shader stage in stageFlags, there must be a push constant range in layout that includes that byte and that stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPushConstants-offset-01796", - "text": " For each byte in the range specified by offset and size and for each push constant range that overlaps that byte, stageFlags must include all stages in that push constant range’s VkPushConstantRange::stageFlags" + "text": "For each byte in the range specified by offset and size and for each push constant range that overlaps that byte, stageFlags must include all stages in that push constant range’s VkPushConstantRange::stageFlags", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPushConstants-offset-00368", - "text": " offset must be a multiple of 4" + "text": "offset must be a multiple of 4", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPushConstants-size-00369", - "text": " size must be a multiple of 4" + "text": "size must be a multiple of 4", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPushConstants-offset-00370", - "text": " offset must be less than VkPhysicalDeviceLimits::maxPushConstantsSize" + "text": "offset must be less than VkPhysicalDeviceLimits::maxPushConstantsSize", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPushConstants-size-00371", - "text": " size must be less than or equal to VkPhysicalDeviceLimits::maxPushConstantsSize minus offset" + "text": "size must be less than or equal to VkPhysicalDeviceLimits::maxPushConstantsSize minus offset", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPushConstants-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPushConstants-layout-parameter", - "text": " layout must be a valid VkPipelineLayout handle" + "text": "layout must be a valid VkPipelineLayout handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPushConstants-stageFlags-parameter", - "text": " stageFlags must be a valid combination of VkShaderStageFlagBits values" + "text": "stageFlags must be a valid combination of VkShaderStageFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPushConstants-stageFlags-requiredbitmask", - "text": " stageFlags must not be 0" + "text": "stageFlags must not be 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPushConstants-pValues-parameter", - "text": " pValues must be a valid pointer to an array of size bytes" + "text": "pValues must be a valid pointer to an array of size bytes", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPushConstants-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPushConstants-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPushConstants-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPushConstants-size-arraylength", - "text": " size must be greater than 0" + "text": "size must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPushConstants-commonparent", - "text": " Both of commandBuffer, and layout must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of commandBuffer, and layout must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -22970,19 +28602,23 @@ "core": [ { "vuid": "VUID-vkGetBufferDeviceAddress-bufferDeviceAddress-03324", - "text": " The bufferDeviceAddress or VkPhysicalDeviceBufferDeviceAddressFeaturesEXT::bufferDeviceAddress feature must be enabled" + "text": "The bufferDeviceAddress or VkPhysicalDeviceBufferDeviceAddressFeaturesEXT::bufferDeviceAddress feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkGetBufferDeviceAddress-device-03325", - "text": " If device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice or VkPhysicalDeviceBufferDeviceAddressFeaturesEXT::bufferDeviceAddressMultiDevice feature must be enabled" + "text": "If device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice or VkPhysicalDeviceBufferDeviceAddressFeaturesEXT::bufferDeviceAddressMultiDevice feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkGetBufferDeviceAddress-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetBufferDeviceAddress-pInfo-parameter", - "text": " pInfo must be a valid pointer to a valid VkBufferDeviceAddressInfo structure" + "text": "pInfo must be a valid pointer to a valid VkBufferDeviceAddressInfo structure", + "page": "vkspec" } ] }, @@ -22990,23 +28626,28 @@ "core": [ { "vuid": "VUID-VkBufferDeviceAddressInfo-buffer-02600", - "text": " If buffer is non-sparse and was not created with the VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT flag, then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If buffer is non-sparse and was not created with the VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT flag, then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-VkBufferDeviceAddressInfo-buffer-02601", - "text": " buffer must have been created with VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT" + "text": "buffer must have been created with VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferDeviceAddressInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkBufferDeviceAddressInfo-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkBufferDeviceAddressInfo-buffer-parameter", - "text": " buffer must be a valid VkBuffer handle" + "text": "buffer must be a valid VkBuffer handle", + "page": "vkspec" } ] }, @@ -23014,19 +28655,23 @@ "core": [ { "vuid": "VUID-vkGetBufferOpaqueCaptureAddress-None-03326", - "text": " The bufferDeviceAddress feature must be enabled" + "text": "The bufferDeviceAddress feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkGetBufferOpaqueCaptureAddress-device-03327", - "text": " If device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled" + "text": "If device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkGetBufferOpaqueCaptureAddress-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetBufferOpaqueCaptureAddress-pInfo-parameter", - "text": " pInfo must be a valid pointer to a valid VkBufferDeviceAddressInfo structure" + "text": "pInfo must be a valid pointer to a valid VkBufferDeviceAddressInfo structure", + "page": "vkspec" } ] }, @@ -23034,27 +28679,33 @@ "core": [ { "vuid": "VUID-vkGetDescriptorSetLayoutSizeEXT-None-08011", - "text": " The descriptorBuffer feature must be enabled" + "text": "The descriptorBuffer feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkGetDescriptorSetLayoutSizeEXT-layout-08012", - "text": " layout must have been created with the VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT flag set" + "text": "layout must have been created with the VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT flag set", + "page": "vkspec" }, { "vuid": "VUID-vkGetDescriptorSetLayoutSizeEXT-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetDescriptorSetLayoutSizeEXT-layout-parameter", - "text": " layout must be a valid VkDescriptorSetLayout handle" + "text": "layout must be a valid VkDescriptorSetLayout handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetDescriptorSetLayoutSizeEXT-pLayoutSizeInBytes-parameter", - "text": " pLayoutSizeInBytes must be a valid pointer to a VkDeviceSize value" + "text": "pLayoutSizeInBytes must be a valid pointer to a VkDeviceSize value", + "page": "vkspec" }, { "vuid": "VUID-vkGetDescriptorSetLayoutSizeEXT-layout-parent", - "text": " layout must have been created, allocated, or retrieved from device" + "text": "layout must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -23062,27 +28713,33 @@ "core": [ { "vuid": "VUID-vkGetDescriptorSetLayoutBindingOffsetEXT-None-08013", - "text": " The descriptorBuffer feature must be enabled" + "text": "The descriptorBuffer feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkGetDescriptorSetLayoutBindingOffsetEXT-layout-08014", - "text": " layout must have been created with the VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT flag set" + "text": "layout must have been created with the VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT flag set", + "page": "vkspec" }, { "vuid": "VUID-vkGetDescriptorSetLayoutBindingOffsetEXT-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetDescriptorSetLayoutBindingOffsetEXT-layout-parameter", - "text": " layout must be a valid VkDescriptorSetLayout handle" + "text": "layout must be a valid VkDescriptorSetLayout handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetDescriptorSetLayoutBindingOffsetEXT-pOffset-parameter", - "text": " pOffset must be a valid pointer to a VkDeviceSize value" + "text": "pOffset must be a valid pointer to a VkDeviceSize value", + "page": "vkspec" }, { "vuid": "VUID-vkGetDescriptorSetLayoutBindingOffsetEXT-layout-parent", - "text": " layout must have been created, allocated, or retrieved from device" + "text": "layout must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -23090,31 +28747,38 @@ "core": [ { "vuid": "VUID-vkGetDescriptorEXT-None-08015", - "text": " The descriptorBuffer feature must be enabled" + "text": "The descriptorBuffer feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkGetDescriptorEXT-dataSize-08125", - "text": " dataSize must equal the size of a descriptor of type VkDescriptorGetInfoEXT::type determined by the value in VkPhysicalDeviceDescriptorBufferPropertiesEXT, or VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT::combinedImageSamplerDensityMapDescriptorSize if pDescriptorInfo specifies a VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER whose VkSampler was created with VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT set" + "text": "dataSize must equal the size of a descriptor of type VkDescriptorGetInfoEXT::type determined by the value in VkPhysicalDeviceDescriptorBufferPropertiesEXT, or VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT::combinedImageSamplerDensityMapDescriptorSize if pDescriptorInfo specifies a VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER whose VkSampler was created with VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT set", + "page": "vkspec" }, { "vuid": "VUID-vkGetDescriptorEXT-pDescriptor-08016", - "text": " pDescriptor must be a valid pointer to an array of at least dataSize bytes" + "text": "pDescriptor must be a valid pointer to an array of at least dataSize bytes", + "page": "vkspec" }, { "vuid": "VUID-vkGetDescriptorEXT-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetDescriptorEXT-pDescriptorInfo-parameter", - "text": " pDescriptorInfo must be a valid pointer to a valid VkDescriptorGetInfoEXT structure" + "text": "pDescriptorInfo must be a valid pointer to a valid VkDescriptorGetInfoEXT structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetDescriptorEXT-pDescriptor-parameter", - "text": " pDescriptor must be a valid pointer to an array of dataSize bytes" + "text": "pDescriptor must be a valid pointer to an array of dataSize bytes", + "page": "vkspec" }, { "vuid": "VUID-vkGetDescriptorEXT-dataSize-arraylength", - "text": " dataSize must be greater than 0" + "text": "dataSize must be greater than 0", + "page": "vkspec" } ] }, @@ -23122,99 +28786,123 @@ "core": [ { "vuid": "VUID-VkDescriptorGetInfoEXT-type-08018", - "text": " type must not be VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC or VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK" + "text": "type must not be VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC or VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorGetInfoEXT-type-08019", - "text": " If type is VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, the pCombinedImageSampler->sampler member of data must be a VkSampler created on device" + "text": "If type is VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, the pCombinedImageSampler->sampler member of data must be a VkSampler created on device", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorGetInfoEXT-type-08020", - "text": " If type is VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, the pCombinedImageSampler->imageView member of data must be a VkImageView created on device, or VK_NULL_HANDLE" + "text": "If type is VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, the pCombinedImageSampler->imageView member of data must be a VkImageView created on device, or VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorGetInfoEXT-type-08021", - "text": " If type is VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, the pInputAttachmentImage->imageView member of data must be a VkImageView created on device" + "text": "If type is VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, the pInputAttachmentImage->imageView member of data must be a VkImageView created on device", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorGetInfoEXT-type-08022", - "text": " If type is VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, and if pSampledImage is not NULL, the pSampledImage->imageView member of data must be a VkImageView created on device, or VK_NULL_HANDLE" + "text": "If type is VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, and if pSampledImage is not NULL, the pSampledImage->imageView member of data must be a VkImageView created on device, or VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorGetInfoEXT-type-08023", - "text": " If type is VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, and if pStorageImage is not NULL, the pStorageImage->imageView member of data must be a VkImageView created on device, or VK_NULL_HANDLE" + "text": "If type is VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, and if pStorageImage is not NULL, the pStorageImage->imageView member of data must be a VkImageView created on device, or VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorGetInfoEXT-type-08024", - "text": " If type is VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER, pUniformTexelBuffer is not NULL and pUniformTexelBuffer->address is not zero, pUniformTexelBuffer->address must be an address within a VkBuffer created on device" + "text": "If type is VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER, pUniformTexelBuffer is not NULL and pUniformTexelBuffer->address is not zero, pUniformTexelBuffer->address must be an address within a VkBuffer created on device", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorGetInfoEXT-type-08025", - "text": " If type is VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER, pStorageTexelBuffer is not NULL and pStorageTexelBuffer->address is not zero, pStorageTexelBuffer->address must be an address within a VkBuffer created on device" + "text": "If type is VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER, pStorageTexelBuffer is not NULL and pStorageTexelBuffer->address is not zero, pStorageTexelBuffer->address must be an address within a VkBuffer created on device", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorGetInfoEXT-type-08026", - "text": " If type is VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, pUniformBuffer is not NULL and pUniformBuffer->address is not zero, pUniformBuffer->address must be an address within a VkBuffer created on device" + "text": "If type is VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, pUniformBuffer is not NULL and pUniformBuffer->address is not zero, pUniformBuffer->address must be an address within a VkBuffer created on device", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorGetInfoEXT-type-08027", - "text": " If type is VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, pStorageBuffer is not NULL and pStorageBuffer->address is not zero, pStorageBuffer->address must be an address within a VkBuffer created on device" + "text": "If type is VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, pStorageBuffer is not NULL and pStorageBuffer->address is not zero, pStorageBuffer->address must be an address within a VkBuffer created on device", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorGetInfoEXT-type-08028", - "text": " If type is VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR and accelerationStructure is not 0, accelerationStructure must contain the address of a VkAccelerationStructureKHR created on device" + "text": "If type is VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR and accelerationStructure is not 0, accelerationStructure must contain the address of a VkAccelerationStructureKHR created on device", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorGetInfoEXT-type-08029", - "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" + "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": "vkspec" }, { "vuid": "VUID-VkDescriptorGetInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorGetInfoEXT-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorGetInfoEXT-type-parameter", - "text": " type must be a valid VkDescriptorType value" + "text": "type must be a valid VkDescriptorType value", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorGetInfoEXT-pSampler-parameter", - "text": " If type is VK_DESCRIPTOR_TYPE_SAMPLER, the pSampler member of data must be a valid pointer to a valid VkSampler handle" + "text": "If type is VK_DESCRIPTOR_TYPE_SAMPLER, the pSampler member of data must be a valid pointer to a valid VkSampler handle", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorGetInfoEXT-pCombinedImageSampler-parameter", - "text": " If type is VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, the pCombinedImageSampler member of data must be a valid pointer to a valid VkDescriptorImageInfo structure" + "text": "If type is VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, the pCombinedImageSampler member of data must be a valid pointer to a valid VkDescriptorImageInfo structure", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorGetInfoEXT-pInputAttachmentImage-parameter", - "text": " If type is VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, the pInputAttachmentImage member of data must be a valid pointer to a valid VkDescriptorImageInfo structure" + "text": "If type is VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, the pInputAttachmentImage member of data must be a valid pointer to a valid VkDescriptorImageInfo structure", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorGetInfoEXT-pSampledImage-parameter", - "text": " If type is VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, and if pSampledImage is not NULL, the pSampledImage member of data must be a valid pointer to a valid VkDescriptorImageInfo structure" + "text": "If type is VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, and if pSampledImage is not NULL, the pSampledImage member of data must be a valid pointer to a valid VkDescriptorImageInfo structure", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorGetInfoEXT-pStorageImage-parameter", - "text": " If type is VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, and if pStorageImage is not NULL, the pStorageImage member of data must be a valid pointer to a valid VkDescriptorImageInfo structure" + "text": "If type is VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, and if pStorageImage is not NULL, the pStorageImage member of data must be a valid pointer to a valid VkDescriptorImageInfo structure", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorGetInfoEXT-pUniformTexelBuffer-parameter", - "text": " If type is VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER, and if pUniformTexelBuffer is not NULL, the pUniformTexelBuffer member of data must be a valid pointer to a valid VkDescriptorAddressInfoEXT structure" + "text": "If type is VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER, and if pUniformTexelBuffer is not NULL, the pUniformTexelBuffer member of data must be a valid pointer to a valid VkDescriptorAddressInfoEXT structure", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorGetInfoEXT-pStorageTexelBuffer-parameter", - "text": " If type is VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER, and if pStorageTexelBuffer is not NULL, the pStorageTexelBuffer member of data must be a valid pointer to a valid VkDescriptorAddressInfoEXT structure" + "text": "If type is VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER, and if pStorageTexelBuffer is not NULL, the pStorageTexelBuffer member of data must be a valid pointer to a valid VkDescriptorAddressInfoEXT structure", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorGetInfoEXT-pUniformBuffer-parameter", - "text": " If type is VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, and if pUniformBuffer is not NULL, the pUniformBuffer member of data must be a valid pointer to a valid VkDescriptorAddressInfoEXT structure" + "text": "If type is VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, and if pUniformBuffer is not NULL, the pUniformBuffer member of data must be a valid pointer to a valid VkDescriptorAddressInfoEXT structure", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorGetInfoEXT-pStorageBuffer-parameter", - "text": " If type is VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, and if pStorageBuffer is not NULL, the pStorageBuffer member of data must be a valid pointer to a valid VkDescriptorAddressInfoEXT structure" + "text": "If type is VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, and if pStorageBuffer is not NULL, the pStorageBuffer member of data must be a valid pointer to a valid VkDescriptorAddressInfoEXT structure", + "page": "vkspec" } ] }, @@ -23222,55 +28910,68 @@ "core": [ { "vuid": "VUID-VkDescriptorDataEXT-type-08030", - "text": " If VkDescriptorGetInfoEXT:type is VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, and pUniformBuffer->address is the address of a non-sparse buffer, then that buffer must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If VkDescriptorGetInfoEXT:type is VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, and pUniformBuffer->address is the address of a non-sparse buffer, then that buffer must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorDataEXT-type-08031", - "text": " If VkDescriptorGetInfoEXT:type is VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, and pStorageBuffer->address is the address of a non-sparse buffer, then that buffer must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If VkDescriptorGetInfoEXT:type is VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, and pStorageBuffer->address is the address of a non-sparse buffer, then that buffer must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorDataEXT-type-08032", - "text": " If VkDescriptorGetInfoEXT:type is VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER, and pUniformTexelBuffer->address is the address of a non-sparse buffer, then that buffer must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If VkDescriptorGetInfoEXT:type is VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER, and pUniformTexelBuffer->address is the address of a non-sparse buffer, then that buffer must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorDataEXT-type-08033", - "text": " If VkDescriptorGetInfoEXT:type is VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER, and pStorageTexelBuffer->address is the address of a non-sparse buffer, then that buffer must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If VkDescriptorGetInfoEXT:type is VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER, and pStorageTexelBuffer->address is the address of a non-sparse buffer, then that buffer must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorDataEXT-type-08034", - "text": " If VkDescriptorGetInfoEXT:type is VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, and the nullDescriptor feature is not enabled, pCombinedImageSampler->imageView must not be VK_NULL_HANDLE" + "text": "If VkDescriptorGetInfoEXT:type is VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, and the nullDescriptor feature is not enabled, pCombinedImageSampler->imageView must not be VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorDataEXT-type-08035", - "text": " If VkDescriptorGetInfoEXT:type is VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, and the nullDescriptor feature is not enabled, pSampledImage must not be NULL and pSampledImage->imageView must not be VK_NULL_HANDLE" + "text": "If VkDescriptorGetInfoEXT:type is VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, and the nullDescriptor feature is not enabled, pSampledImage must not be NULL and pSampledImage->imageView must not be VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorDataEXT-type-08036", - "text": " If VkDescriptorGetInfoEXT:type is VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, and the nullDescriptor feature is not enabled, pStorageImage must not be NULL and pStorageImage->imageView must not be VK_NULL_HANDLE" + "text": "If VkDescriptorGetInfoEXT:type is VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, and the nullDescriptor feature is not enabled, pStorageImage must not be NULL and pStorageImage->imageView must not be VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorDataEXT-type-08037", - "text": " If VkDescriptorGetInfoEXT:type is VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER, and the nullDescriptor feature is not enabled, pUniformTexelBuffer must not be NULL" + "text": "If VkDescriptorGetInfoEXT:type is VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER, and the nullDescriptor feature is not enabled, pUniformTexelBuffer must not be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorDataEXT-type-08038", - "text": " If VkDescriptorGetInfoEXT:type is VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER, and the nullDescriptor feature is not enabled, pStorageTexelBuffer must not be NULL" + "text": "If VkDescriptorGetInfoEXT:type is VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER, and the nullDescriptor feature is not enabled, pStorageTexelBuffer must not be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorDataEXT-type-08039", - "text": " If VkDescriptorGetInfoEXT:type is VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, and the nullDescriptor feature is not enabled, pUniformBuffer must not be NULL" + "text": "If VkDescriptorGetInfoEXT:type is VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, and the nullDescriptor feature is not enabled, pUniformBuffer must not be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorDataEXT-type-08040", - "text": " If VkDescriptorGetInfoEXT:type is VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, and the nullDescriptor feature is not enabled, pStorageBuffer must not be NULL" + "text": "If VkDescriptorGetInfoEXT:type is VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, and the nullDescriptor feature is not enabled, pStorageBuffer must not be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorDataEXT-type-08041", - "text": " If VkDescriptorGetInfoEXT:type is VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR, and the nullDescriptor feature is not enabled, accelerationStructure must not be 0" + "text": "If VkDescriptorGetInfoEXT:type is VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR, and the nullDescriptor feature is not enabled, accelerationStructure must not be 0", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorDataEXT-type-08042", - "text": " If VkDescriptorGetInfoEXT:type is VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV, and the nullDescriptor feature is not enabled, accelerationStructure must not be 0" + "text": "If VkDescriptorGetInfoEXT:type is VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV, and the nullDescriptor feature is not enabled, accelerationStructure must not be 0", + "page": "vkspec" } ] }, @@ -23278,39 +28979,48 @@ "core": [ { "vuid": "VUID-VkDescriptorAddressInfoEXT-address-08043", - "text": " If the nullDescriptor feature is not enabled, address must not be zero" + "text": "If the nullDescriptor feature is not enabled, address must not be zero", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorAddressInfoEXT-nullDescriptor-08938", - "text": " If address is zero, range must be VK_WHOLE_SIZE" + "text": "If address is zero, range must be VK_WHOLE_SIZE", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorAddressInfoEXT-nullDescriptor-08939", - "text": " If address is not zero, range must not be VK_WHOLE_SIZE" + "text": "If address is not zero, range must not be VK_WHOLE_SIZE", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorAddressInfoEXT-None-08044", - "text": " If address is not zero, address must be a valid device address at an offset within a VkBuffer" + "text": "If address is not zero, address must be a valid device address at an offset within a VkBuffer", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorAddressInfoEXT-range-08045", - "text": " range must be less than or equal to the size of the buffer containing address minus the offset of address from the base address of the buffer" + "text": "range must be less than or equal to the size of the buffer containing address minus the offset of address from the base address of the buffer", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorAddressInfoEXT-range-08940", - "text": " range must not be zero" + "text": "range must not be zero", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorAddressInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorAddressInfoEXT-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorAddressInfoEXT-format-parameter", - "text": " format must be a valid VkFormat value" + "text": "format must be a valid VkFormat value", + "page": "vkspec" } ] }, @@ -23318,63 +29028,78 @@ "core": [ { "vuid": "VUID-vkCmdBindDescriptorBuffersEXT-None-08047", - "text": " The descriptorBuffer feature must be enabled" + "text": "The descriptorBuffer feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindDescriptorBuffersEXT-maxSamplerDescriptorBufferBindings-08048", - "text": " There must be no more than VkPhysicalDeviceDescriptorBufferPropertiesEXT::maxSamplerDescriptorBufferBindings descriptor buffers containing sampler descriptor data bound" + "text": "There must be no more than VkPhysicalDeviceDescriptorBufferPropertiesEXT::maxSamplerDescriptorBufferBindings descriptor buffers containing sampler descriptor data bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindDescriptorBuffersEXT-maxResourceDescriptorBufferBindings-08049", - "text": " There must be no more than VkPhysicalDeviceDescriptorBufferPropertiesEXT::maxResourceDescriptorBufferBindings descriptor buffers containing resource descriptor data bound" + "text": "There must be no more than VkPhysicalDeviceDescriptorBufferPropertiesEXT::maxResourceDescriptorBufferBindings descriptor buffers containing resource descriptor data bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindDescriptorBuffersEXT-None-08050", - "text": " There must be no more than 1 descriptor buffer bound that was created with the VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT bit set" + "text": "There must be no more than 1 descriptor buffer bound that was created with the VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT bit set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindDescriptorBuffersEXT-bufferCount-08051", - "text": " bufferCount must be less than or equal to VkPhysicalDeviceDescriptorBufferPropertiesEXT::maxDescriptorBufferBindings" + "text": "bufferCount must be less than or equal to VkPhysicalDeviceDescriptorBufferPropertiesEXT::maxDescriptorBufferBindings", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindDescriptorBuffersEXT-pBindingInfos-08052", - "text": " For any element of pBindingInfos, if the buffer from which address was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "For any element of pBindingInfos, if the buffer from which address was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindDescriptorBuffersEXT-pBindingInfos-08053", - "text": " For any element of pBindingInfos, the buffer from which address was queried must have been created with the VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT bit set if it contains sampler descriptor data" + "text": "For any element of pBindingInfos, the buffer from which address was queried must have been created with the VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT bit set if it contains sampler descriptor data", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindDescriptorBuffersEXT-pBindingInfos-08054", - "text": " For any element of pBindingInfos, the buffer from which address was queried must have been created with the VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT bit set if it contains resource descriptor data" + "text": "For any element of pBindingInfos, the buffer from which address was queried must have been created with the VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT bit set if it contains resource descriptor data", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindDescriptorBuffersEXT-pBindingInfos-08055", - "text": " For any element of pBindingInfos, usage must match the buffer from which address was queried" + "text": "For any element of pBindingInfos, usage must match the buffer from which address was queried", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindDescriptorBuffersEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindDescriptorBuffersEXT-pBindingInfos-parameter", - "text": " pBindingInfos must be a valid pointer to an array of bufferCount valid VkDescriptorBufferBindingInfoEXT structures" + "text": "pBindingInfos must be a valid pointer to an array of bufferCount valid VkDescriptorBufferBindingInfoEXT structures", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindDescriptorBuffersEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindDescriptorBuffersEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindDescriptorBuffersEXT-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindDescriptorBuffersEXT-bufferCount-arraylength", - "text": " bufferCount must be greater than 0" + "text": "bufferCount must be greater than 0", + "page": "vkspec" } ] }, @@ -23382,43 +29107,53 @@ "core": [ { "vuid": "VUID-VkDescriptorBufferBindingInfoEXT-bufferlessPushDescriptors-08056", - "text": " If VkPhysicalDeviceDescriptorBufferPropertiesEXT::bufferlessPushDescriptors is VK_FALSE, and usage contains VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT, then the pNext chain must include a VkDescriptorBufferBindingPushDescriptorBufferHandleEXT structure" + "text": "If VkPhysicalDeviceDescriptorBufferPropertiesEXT::bufferlessPushDescriptors is VK_FALSE, and usage contains VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT, then the pNext chain must include a VkDescriptorBufferBindingPushDescriptorBufferHandleEXT structure", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorBufferBindingInfoEXT-address-08057", - "text": " address must be aligned to VkPhysicalDeviceDescriptorBufferPropertiesEXT::descriptorBufferOffsetAlignment" + "text": "address must be aligned to VkPhysicalDeviceDescriptorBufferPropertiesEXT::descriptorBufferOffsetAlignment", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorBufferBindingInfoEXT-usage-08122", - "text": " If usage includes VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT, address must be an address within a valid buffer that was created with VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "If usage includes VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT, address must be an address within a valid buffer that was created with VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorBufferBindingInfoEXT-usage-08123", - "text": " If usage includes VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT, address must be an address within a valid buffer that was created with VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "If usage includes VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT, address must be an address within a valid buffer that was created with VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorBufferBindingInfoEXT-usage-08124", - "text": " If usage includes VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT, address must be an address within a valid buffer that was created with VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "If usage includes VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT, address must be an address within a valid buffer that was created with VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorBufferBindingInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorBufferBindingInfoEXT-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 VkBufferUsageFlags2CreateInfoKHR or VkDescriptorBufferBindingPushDescriptorBufferHandleEXT" + "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 VkBufferUsageFlags2CreateInfoKHR or VkDescriptorBufferBindingPushDescriptorBufferHandleEXT", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorBufferBindingInfoEXT-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorBufferBindingInfoEXT-usage-parameter", - "text": " usage must be a valid combination of VkBufferUsageFlagBits values" + "text": "usage must be a valid combination of VkBufferUsageFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorBufferBindingInfoEXT-usage-requiredbitmask", - "text": " usage must not be 0" + "text": "usage must not be 0", + "page": "vkspec" } ] }, @@ -23426,15 +29161,18 @@ "core": [ { "vuid": "VUID-VkDescriptorBufferBindingPushDescriptorBufferHandleEXT-bufferlessPushDescriptors-08059", - "text": " VkPhysicalDeviceDescriptorBufferPropertiesEXT::bufferlessPushDescriptors must be VK_FALSE" + "text": "VkPhysicalDeviceDescriptorBufferPropertiesEXT::bufferlessPushDescriptors must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorBufferBindingPushDescriptorBufferHandleEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorBufferBindingPushDescriptorBufferHandleEXT-buffer-parameter", - "text": " buffer must be a valid VkBuffer handle" + "text": "buffer must be a valid VkBuffer handle", + "page": "vkspec" } ] }, @@ -23442,83 +29180,103 @@ "core": [ { "vuid": "VUID-vkCmdSetDescriptorBufferOffsetsEXT-None-08060", - "text": " The descriptorBuffer feature must be enabled" + "text": "The descriptorBuffer feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDescriptorBufferOffsetsEXT-pOffsets-08061", - "text": " The offsets in pOffsets must be aligned to VkPhysicalDeviceDescriptorBufferPropertiesEXT::descriptorBufferOffsetAlignment" + "text": "The offsets in pOffsets must be aligned to VkPhysicalDeviceDescriptorBufferPropertiesEXT::descriptorBufferOffsetAlignment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDescriptorBufferOffsetsEXT-pOffsets-08063", - "text": " The offsets in pOffsets must be small enough such that any descriptor binding referenced by layout without the VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT flag computes a valid address inside the underlying VkBuffer" + "text": "The offsets in pOffsets must be small enough such that any descriptor binding referenced by layout without the VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT flag computes a valid address inside the underlying VkBuffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDescriptorBufferOffsetsEXT-pOffsets-08126", - "text": " The offsets in pOffsets must be small enough such that any location accessed by a shader as a sampler descriptor must be within VkPhysicalDeviceDescriptorBufferPropertiesEXT::maxSamplerDescriptorBufferRange of the sampler descriptor buffer binding" + "text": "The offsets in pOffsets must be small enough such that any location accessed by a shader as a sampler descriptor must be within VkPhysicalDeviceDescriptorBufferPropertiesEXT::maxSamplerDescriptorBufferRange of the sampler descriptor buffer binding", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDescriptorBufferOffsetsEXT-pOffsets-08127", - "text": " The offsets in pOffsets must be small enough such that any location accessed by a shader as a resource descriptor must be within VkPhysicalDeviceDescriptorBufferPropertiesEXT::maxResourceDescriptorBufferRange of the resource descriptor buffer binding" + "text": "The offsets in pOffsets must be small enough such that any location accessed by a shader as a resource descriptor must be within VkPhysicalDeviceDescriptorBufferPropertiesEXT::maxResourceDescriptorBufferRange of the resource descriptor buffer binding", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDescriptorBufferOffsetsEXT-pBufferIndices-08064", - "text": " Each element of pBufferIndices must be less than VkPhysicalDeviceDescriptorBufferPropertiesEXT::maxDescriptorBufferBindings" + "text": "Each element of pBufferIndices must be less than VkPhysicalDeviceDescriptorBufferPropertiesEXT::maxDescriptorBufferBindings", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDescriptorBufferOffsetsEXT-pBufferIndices-08065", - "text": " Each element of pBufferIndices must reference a valid descriptor buffer binding set by a previous call to vkCmdBindDescriptorBuffersEXT in commandBuffer" + "text": "Each element of pBufferIndices must reference a valid descriptor buffer binding set by a previous call to vkCmdBindDescriptorBuffersEXT in commandBuffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDescriptorBufferOffsetsEXT-firstSet-08066", - "text": " The sum of firstSet and setCount must be less than or equal to VkPipelineLayoutCreateInfo::setLayoutCount provided when layout was created" + "text": "The sum of firstSet and setCount must be less than or equal to VkPipelineLayoutCreateInfo::setLayoutCount provided when layout was created", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDescriptorBufferOffsetsEXT-pipelineBindPoint-08067", - "text": " pipelineBindPoint must be supported by the commandBuffer’s parent VkCommandPool’s queue family" + "text": "pipelineBindPoint must be supported by the commandBuffer’s parent VkCommandPool’s queue family", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDescriptorBufferOffsetsEXT-firstSet-09006", - "text": " The VkDescriptorSetLayout for each set from firstSet to firstSet + setCount when layout was created must have been created with the VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT bit set" + "text": "The VkDescriptorSetLayout for each set from firstSet to firstSet + setCount when layout was created must have been created with the VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT bit set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDescriptorBufferOffsetsEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDescriptorBufferOffsetsEXT-pipelineBindPoint-parameter", - "text": " pipelineBindPoint must be a valid VkPipelineBindPoint value" + "text": "pipelineBindPoint must be a valid VkPipelineBindPoint value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDescriptorBufferOffsetsEXT-layout-parameter", - "text": " layout must be a valid VkPipelineLayout handle" + "text": "layout must be a valid VkPipelineLayout handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDescriptorBufferOffsetsEXT-pBufferIndices-parameter", - "text": " pBufferIndices must be a valid pointer to an array of setCount uint32_t values" + "text": "pBufferIndices must be a valid pointer to an array of setCount uint32_t values", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDescriptorBufferOffsetsEXT-pOffsets-parameter", - "text": " pOffsets must be a valid pointer to an array of setCount VkDeviceSize values" + "text": "pOffsets must be a valid pointer to an array of setCount VkDeviceSize values", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDescriptorBufferOffsetsEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDescriptorBufferOffsetsEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDescriptorBufferOffsetsEXT-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDescriptorBufferOffsetsEXT-setCount-arraylength", - "text": " setCount must be greater than 0" + "text": "setCount must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDescriptorBufferOffsetsEXT-commonparent", - "text": " Both of commandBuffer, and layout must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of commandBuffer, and layout must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -23526,47 +29284,58 @@ "core": [ { "vuid": "VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-None-08068", - "text": " The descriptorBuffer feature must be enabled" + "text": "The descriptorBuffer feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-pipelineBindPoint-08069", - "text": " pipelineBindPoint must be supported by the commandBuffer’s parent VkCommandPool’s queue family" + "text": "pipelineBindPoint must be supported by the commandBuffer’s parent VkCommandPool’s queue family", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-set-08070", - "text": " The VkDescriptorSetLayout at index set when layout was created must have been created with the VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT bit set" + "text": "The VkDescriptorSetLayout at index set when layout was created must have been created with the VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT bit set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-set-08071", - "text": " set must be less than or equal to VkPipelineLayoutCreateInfo::setLayoutCount provided when layout was created" + "text": "set must be less than or equal to VkPipelineLayoutCreateInfo::setLayoutCount provided when layout was created", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-pipelineBindPoint-parameter", - "text": " pipelineBindPoint must be a valid VkPipelineBindPoint value" + "text": "pipelineBindPoint must be a valid VkPipelineBindPoint value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-layout-parameter", - "text": " layout must be a valid VkPipelineLayout handle" + "text": "layout must be a valid VkPipelineLayout handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-commonparent", - "text": " Both of commandBuffer, and layout must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of commandBuffer, and layout must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -23574,27 +29343,33 @@ "core": [ { "vuid": "VUID-vkGetBufferOpaqueCaptureDescriptorDataEXT-None-08072", - "text": " The descriptorBufferCaptureReplay feature must be enabled" + "text": "The descriptorBufferCaptureReplay feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkGetBufferOpaqueCaptureDescriptorDataEXT-pData-08073", - "text": " pData must point to a buffer that is at least VkPhysicalDeviceDescriptorBufferPropertiesEXT::bufferCaptureReplayDescriptorDataSize bytes in size" + "text": "pData must point to a buffer that is at least VkPhysicalDeviceDescriptorBufferPropertiesEXT::bufferCaptureReplayDescriptorDataSize bytes in size", + "page": "vkspec" }, { "vuid": "VUID-vkGetBufferOpaqueCaptureDescriptorDataEXT-device-08074", - "text": " If device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled" + "text": "If device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkGetBufferOpaqueCaptureDescriptorDataEXT-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetBufferOpaqueCaptureDescriptorDataEXT-pInfo-parameter", - "text": " pInfo must be a valid pointer to a valid VkBufferCaptureDescriptorDataInfoEXT structure" + "text": "pInfo must be a valid pointer to a valid VkBufferCaptureDescriptorDataInfoEXT structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetBufferOpaqueCaptureDescriptorDataEXT-pData-parameter", - "text": " pData must be a pointer value" + "text": "pData must be a pointer value", + "page": "vkspec" } ] }, @@ -23602,19 +29377,23 @@ "core": [ { "vuid": "VUID-VkBufferCaptureDescriptorDataInfoEXT-buffer-08075", - "text": " buffer must have been created with VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT set in VkBufferCreateInfo::flags" + "text": "buffer must have been created with VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT set in VkBufferCreateInfo::flags", + "page": "vkspec" }, { "vuid": "VUID-VkBufferCaptureDescriptorDataInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkBufferCaptureDescriptorDataInfoEXT-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkBufferCaptureDescriptorDataInfoEXT-buffer-parameter", - "text": " buffer must be a valid VkBuffer handle" + "text": "buffer must be a valid VkBuffer handle", + "page": "vkspec" } ] }, @@ -23622,27 +29401,33 @@ "core": [ { "vuid": "VUID-vkGetImageOpaqueCaptureDescriptorDataEXT-None-08076", - "text": " The descriptorBufferCaptureReplay feature must be enabled" + "text": "The descriptorBufferCaptureReplay feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkGetImageOpaqueCaptureDescriptorDataEXT-pData-08077", - "text": " pData must point to a buffer that is at least VkPhysicalDeviceDescriptorBufferPropertiesEXT::imageCaptureReplayDescriptorDataSize bytes in size" + "text": "pData must point to a buffer that is at least VkPhysicalDeviceDescriptorBufferPropertiesEXT::imageCaptureReplayDescriptorDataSize bytes in size", + "page": "vkspec" }, { "vuid": "VUID-vkGetImageOpaqueCaptureDescriptorDataEXT-device-08078", - "text": " If device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled" + "text": "If device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkGetImageOpaqueCaptureDescriptorDataEXT-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetImageOpaqueCaptureDescriptorDataEXT-pInfo-parameter", - "text": " pInfo must be a valid pointer to a valid VkImageCaptureDescriptorDataInfoEXT structure" + "text": "pInfo must be a valid pointer to a valid VkImageCaptureDescriptorDataInfoEXT structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetImageOpaqueCaptureDescriptorDataEXT-pData-parameter", - "text": " pData must be a pointer value" + "text": "pData must be a pointer value", + "page": "vkspec" } ] }, @@ -23650,19 +29435,23 @@ "core": [ { "vuid": "VUID-VkImageCaptureDescriptorDataInfoEXT-image-08079", - "text": " image must have been created with VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT set in VkImageCreateInfo::flags" + "text": "image must have been created with VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT set in VkImageCreateInfo::flags", + "page": "vkspec" }, { "vuid": "VUID-VkImageCaptureDescriptorDataInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkImageCaptureDescriptorDataInfoEXT-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkImageCaptureDescriptorDataInfoEXT-image-parameter", - "text": " image must be a valid VkImage handle" + "text": "image must be a valid VkImage handle", + "page": "vkspec" } ] }, @@ -23670,27 +29459,33 @@ "core": [ { "vuid": "VUID-vkGetImageViewOpaqueCaptureDescriptorDataEXT-None-08080", - "text": " The descriptorBufferCaptureReplay feature must be enabled" + "text": "The descriptorBufferCaptureReplay feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkGetImageViewOpaqueCaptureDescriptorDataEXT-pData-08081", - "text": " pData must point to a buffer that is at least VkPhysicalDeviceDescriptorBufferPropertiesEXT::imageViewCaptureReplayDescriptorDataSize bytes in size" + "text": "pData must point to a buffer that is at least VkPhysicalDeviceDescriptorBufferPropertiesEXT::imageViewCaptureReplayDescriptorDataSize bytes in size", + "page": "vkspec" }, { "vuid": "VUID-vkGetImageViewOpaqueCaptureDescriptorDataEXT-device-08082", - "text": " If device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled" + "text": "If device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkGetImageViewOpaqueCaptureDescriptorDataEXT-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetImageViewOpaqueCaptureDescriptorDataEXT-pInfo-parameter", - "text": " pInfo must be a valid pointer to a valid VkImageViewCaptureDescriptorDataInfoEXT structure" + "text": "pInfo must be a valid pointer to a valid VkImageViewCaptureDescriptorDataInfoEXT structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetImageViewOpaqueCaptureDescriptorDataEXT-pData-parameter", - "text": " pData must be a pointer value" + "text": "pData must be a pointer value", + "page": "vkspec" } ] }, @@ -23698,19 +29493,23 @@ "core": [ { "vuid": "VUID-VkImageViewCaptureDescriptorDataInfoEXT-imageView-08083", - "text": " imageView must have been created with VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT set in VkImageViewCreateInfo::flags" + "text": "imageView must have been created with VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT set in VkImageViewCreateInfo::flags", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCaptureDescriptorDataInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCaptureDescriptorDataInfoEXT-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkImageViewCaptureDescriptorDataInfoEXT-imageView-parameter", - "text": " imageView must be a valid VkImageView handle" + "text": "imageView must be a valid VkImageView handle", + "page": "vkspec" } ] }, @@ -23718,27 +29517,33 @@ "core": [ { "vuid": "VUID-vkGetSamplerOpaqueCaptureDescriptorDataEXT-None-08084", - "text": " The descriptorBufferCaptureReplay feature must be enabled" + "text": "The descriptorBufferCaptureReplay feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkGetSamplerOpaqueCaptureDescriptorDataEXT-pData-08085", - "text": " pData must point to a buffer that is at least VkPhysicalDeviceDescriptorBufferPropertiesEXT::samplerCaptureReplayDescriptorDataSize bytes in size" + "text": "pData must point to a buffer that is at least VkPhysicalDeviceDescriptorBufferPropertiesEXT::samplerCaptureReplayDescriptorDataSize bytes in size", + "page": "vkspec" }, { "vuid": "VUID-vkGetSamplerOpaqueCaptureDescriptorDataEXT-device-08086", - "text": " If device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled" + "text": "If device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkGetSamplerOpaqueCaptureDescriptorDataEXT-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetSamplerOpaqueCaptureDescriptorDataEXT-pInfo-parameter", - "text": " pInfo must be a valid pointer to a valid VkSamplerCaptureDescriptorDataInfoEXT structure" + "text": "pInfo must be a valid pointer to a valid VkSamplerCaptureDescriptorDataInfoEXT structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetSamplerOpaqueCaptureDescriptorDataEXT-pData-parameter", - "text": " pData must be a pointer value" + "text": "pData must be a pointer value", + "page": "vkspec" } ] }, @@ -23746,19 +29551,23 @@ "core": [ { "vuid": "VUID-VkSamplerCaptureDescriptorDataInfoEXT-sampler-08087", - "text": " sampler must have been created with VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT set in VkSamplerCreateInfo::flags" + "text": "sampler must have been created with VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT set in VkSamplerCreateInfo::flags", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerCaptureDescriptorDataInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerCaptureDescriptorDataInfoEXT-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkSamplerCaptureDescriptorDataInfoEXT-sampler-parameter", - "text": " sampler must be a valid VkSampler handle" + "text": "sampler must be a valid VkSampler handle", + "page": "vkspec" } ] }, @@ -23766,27 +29575,33 @@ "core": [ { "vuid": "VUID-vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT-None-08088", - "text": " The descriptorBufferCaptureReplay feature must be enabled" + "text": "The descriptorBufferCaptureReplay feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT-pData-08089", - "text": " pData must point to a buffer that is at least VkPhysicalDeviceDescriptorBufferPropertiesEXT::accelerationStructureCaptureReplayDescriptorDataSize bytes in size" + "text": "pData must point to a buffer that is at least VkPhysicalDeviceDescriptorBufferPropertiesEXT::accelerationStructureCaptureReplayDescriptorDataSize bytes in size", + "page": "vkspec" }, { "vuid": "VUID-vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT-device-08090", - "text": " If device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled" + "text": "If device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT-pInfo-parameter", - "text": " pInfo must be a valid pointer to a valid VkAccelerationStructureCaptureDescriptorDataInfoEXT structure" + "text": "pInfo must be a valid pointer to a valid VkAccelerationStructureCaptureDescriptorDataInfoEXT structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT-pData-parameter", - "text": " pData must be a pointer value" + "text": "pData must be a pointer value", + "page": "vkspec" } ] }, @@ -23794,39 +29609,48 @@ "core": [ { "vuid": "VUID-VkAccelerationStructureCaptureDescriptorDataInfoEXT-accelerationStructure-08091", - "text": " If accelerationStructure is not VK_NULL_HANDLE then accelerationStructure must have been created with VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT set in VkAccelerationStructureCreateInfoKHR::createFlags" + "text": "If accelerationStructure is not VK_NULL_HANDLE then accelerationStructure must have been created with VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT set in VkAccelerationStructureCreateInfoKHR::createFlags", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureCaptureDescriptorDataInfoEXT-accelerationStructureNV-08092", - "text": " If accelerationStructureNV is not VK_NULL_HANDLE then accelerationStructureNV must have been created with VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT set in VkAccelerationStructureCreateInfoNV::info.flags" + "text": "If accelerationStructureNV is not VK_NULL_HANDLE then accelerationStructureNV must have been created with VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT set in VkAccelerationStructureCreateInfoNV::info.flags", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureCaptureDescriptorDataInfoEXT-accelerationStructure-08093", - "text": " If accelerationStructure is not VK_NULL_HANDLE then accelerationStructureNV must be VK_NULL_HANDLE" + "text": "If accelerationStructure is not VK_NULL_HANDLE then accelerationStructureNV must be VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureCaptureDescriptorDataInfoEXT-accelerationStructureNV-08094", - "text": " If accelerationStructureNV is not VK_NULL_HANDLE then accelerationStructure must be VK_NULL_HANDLE" + "text": "If accelerationStructureNV is not VK_NULL_HANDLE then accelerationStructure must be VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureCaptureDescriptorDataInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureCaptureDescriptorDataInfoEXT-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureCaptureDescriptorDataInfoEXT-accelerationStructure-parameter", - "text": " If accelerationStructure is not VK_NULL_HANDLE, accelerationStructure must be a valid VkAccelerationStructureKHR handle" + "text": "If accelerationStructure is not VK_NULL_HANDLE, accelerationStructure must be a valid VkAccelerationStructureKHR handle", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureCaptureDescriptorDataInfoEXT-accelerationStructureNV-parameter", - "text": " If accelerationStructureNV is not VK_NULL_HANDLE, accelerationStructureNV must be a valid VkAccelerationStructureNV handle" + "text": "If accelerationStructureNV is not VK_NULL_HANDLE, accelerationStructureNV must be a valid VkAccelerationStructureNV handle", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureCaptureDescriptorDataInfoEXT-commonparent", - "text": " Both of accelerationStructure, and accelerationStructureNV that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of accelerationStructure, and accelerationStructureNV that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -23834,11 +29658,13 @@ "core": [ { "vuid": "VUID-VkOpaqueCaptureDescriptorDataCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkOpaqueCaptureDescriptorDataCreateInfoEXT-opaqueCaptureDescriptorData-parameter", - "text": " opaqueCaptureDescriptorData must be a pointer value" + "text": "opaqueCaptureDescriptorData must be a pointer value", + "page": "vkspec" } ] }, @@ -23846,15 +29672,18 @@ "core": [ { "vuid": "VUID-BaryCoordKHR-BaryCoordKHR-04154", - "text": " The BaryCoordKHR decoration must be used only within the Fragment {ExecutionModel}" + "text": "The BaryCoordKHR decoration must be used only within the Fragment Execution Model", + "page": "vkspec" }, { "vuid": "VUID-BaryCoordKHR-BaryCoordKHR-04155", - "text": " The variable decorated with BaryCoordKHR must be declared using the Input {StorageClass}" + "text": "The variable decorated with BaryCoordKHR must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-BaryCoordKHR-BaryCoordKHR-04156", - "text": " The variable decorated with BaryCoordKHR must be declared as a three-component vector of 32-bit floating-point values" + "text": "The variable decorated with BaryCoordKHR must be declared as a three-component vector of 32-bit floating-point values", + "page": "vkspec" } ] }, @@ -23862,15 +29691,18 @@ "core": [ { "vuid": "VUID-BaryCoordNoPerspAMD-BaryCoordNoPerspAMD-04157", - "text": " The BaryCoordNoPerspAMD decoration must be used only within the Fragment {ExecutionModel}" + "text": "The BaryCoordNoPerspAMD decoration must be used only within the Fragment Execution Model", + "page": "vkspec" }, { "vuid": "VUID-BaryCoordNoPerspAMD-BaryCoordNoPerspAMD-04158", - "text": " The variable decorated with BaryCoordNoPerspAMD must be declared using the Input {StorageClass}" + "text": "The variable decorated with BaryCoordNoPerspAMD must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-BaryCoordNoPerspAMD-BaryCoordNoPerspAMD-04159", - "text": " The variable decorated with BaryCoordNoPerspAMD must be declared as a two-component vector of 32-bit floating-point values" + "text": "The variable decorated with BaryCoordNoPerspAMD must be declared as a two-component vector of 32-bit floating-point values", + "page": "vkspec" } ] }, @@ -23878,15 +29710,18 @@ "core": [ { "vuid": "VUID-BaryCoordNoPerspKHR-BaryCoordNoPerspKHR-04160", - "text": " The BaryCoordNoPerspKHR decoration must be used only within the Fragment {ExecutionModel}" + "text": "The BaryCoordNoPerspKHR decoration must be used only within the Fragment Execution Model", + "page": "vkspec" }, { "vuid": "VUID-BaryCoordNoPerspKHR-BaryCoordNoPerspKHR-04161", - "text": " The variable decorated with BaryCoordNoPerspKHR must be declared using the Input {StorageClass}" + "text": "The variable decorated with BaryCoordNoPerspKHR must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-BaryCoordNoPerspKHR-BaryCoordNoPerspKHR-04162", - "text": " The variable decorated with BaryCoordNoPerspKHR must be declared as a three-component vector of 32-bit floating-point values" + "text": "The variable decorated with BaryCoordNoPerspKHR must be declared as a three-component vector of 32-bit floating-point values", + "page": "vkspec" } ] }, @@ -23894,15 +29729,18 @@ "core": [ { "vuid": "VUID-BaryCoordNoPerspCentroidAMD-BaryCoordNoPerspCentroidAMD-04163", - "text": " The BaryCoordNoPerspCentroidAMD decoration must be used only within the Fragment {ExecutionModel}" + "text": "The BaryCoordNoPerspCentroidAMD decoration must be used only within the Fragment Execution Model", + "page": "vkspec" }, { "vuid": "VUID-BaryCoordNoPerspCentroidAMD-BaryCoordNoPerspCentroidAMD-04164", - "text": " The variable decorated with BaryCoordNoPerspCentroidAMD must be declared using the Input {StorageClass}" + "text": "The variable decorated with BaryCoordNoPerspCentroidAMD must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-BaryCoordNoPerspCentroidAMD-BaryCoordNoPerspCentroidAMD-04165", - "text": " The variable decorated with BaryCoordNoPerspCentroidAMD must be declared as a three-component vector of 32-bit floating-point values" + "text": "The variable decorated with BaryCoordNoPerspCentroidAMD must be declared as a three-component vector of 32-bit floating-point values", + "page": "vkspec" } ] }, @@ -23910,15 +29748,18 @@ "core": [ { "vuid": "VUID-BaryCoordNoPerspSampleAMD-BaryCoordNoPerspSampleAMD-04166", - "text": " The BaryCoordNoPerspSampleAMD decoration must be used only within the Fragment {ExecutionModel}" + "text": "The BaryCoordNoPerspSampleAMD decoration must be used only within the Fragment Execution Model", + "page": "vkspec" }, { "vuid": "VUID-BaryCoordNoPerspSampleAMD-BaryCoordNoPerspSampleAMD-04167", - "text": " The variable decorated with BaryCoordNoPerspSampleAMD must be declared using the Input {StorageClass}" + "text": "The variable decorated with BaryCoordNoPerspSampleAMD must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-BaryCoordNoPerspSampleAMD-BaryCoordNoPerspSampleAMD-04168", - "text": " The variable decorated with BaryCoordNoPerspSampleAMD must be declared as a two-component vector of 32-bit floating-point values" + "text": "The variable decorated with BaryCoordNoPerspSampleAMD must be declared as a two-component vector of 32-bit floating-point values", + "page": "vkspec" } ] }, @@ -23926,15 +29767,18 @@ "core": [ { "vuid": "VUID-BaryCoordPullModelAMD-BaryCoordPullModelAMD-04169", - "text": " The BaryCoordPullModelAMD decoration must be used only within the Fragment {ExecutionModel}" + "text": "The BaryCoordPullModelAMD decoration must be used only within the Fragment Execution Model", + "page": "vkspec" }, { "vuid": "VUID-BaryCoordPullModelAMD-BaryCoordPullModelAMD-04170", - "text": " The variable decorated with BaryCoordPullModelAMD must be declared using the Input {StorageClass}" + "text": "The variable decorated with BaryCoordPullModelAMD must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-BaryCoordPullModelAMD-BaryCoordPullModelAMD-04171", - "text": " The variable decorated with BaryCoordPullModelAMD must be declared as a three-component vector of 32-bit floating-point values" + "text": "The variable decorated with BaryCoordPullModelAMD must be declared as a three-component vector of 32-bit floating-point values", + "page": "vkspec" } ] }, @@ -23942,15 +29786,18 @@ "core": [ { "vuid": "VUID-BaryCoordSmoothAMD-BaryCoordSmoothAMD-04172", - "text": " The BaryCoordSmoothAMD decoration must be used only within the Fragment {ExecutionModel}" + "text": "The BaryCoordSmoothAMD decoration must be used only within the Fragment Execution Model", + "page": "vkspec" }, { "vuid": "VUID-BaryCoordSmoothAMD-BaryCoordSmoothAMD-04173", - "text": " The variable decorated with BaryCoordSmoothAMD must be declared using the Input {StorageClass}" + "text": "The variable decorated with BaryCoordSmoothAMD must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-BaryCoordSmoothAMD-BaryCoordSmoothAMD-04174", - "text": " The variable decorated with BaryCoordSmoothAMD must be declared as a two-component vector of 32-bit floating-point values" + "text": "The variable decorated with BaryCoordSmoothAMD must be declared as a two-component vector of 32-bit floating-point values", + "page": "vkspec" } ] }, @@ -23958,15 +29805,18 @@ "core": [ { "vuid": "VUID-BaryCoordSmoothCentroidAMD-BaryCoordSmoothCentroidAMD-04175", - "text": " The BaryCoordSmoothCentroidAMD decoration must be used only within the Fragment {ExecutionModel}" + "text": "The BaryCoordSmoothCentroidAMD decoration must be used only within the Fragment Execution Model", + "page": "vkspec" }, { "vuid": "VUID-BaryCoordSmoothCentroidAMD-BaryCoordSmoothCentroidAMD-04176", - "text": " The variable decorated with BaryCoordSmoothCentroidAMD must be declared using the Input {StorageClass}" + "text": "The variable decorated with BaryCoordSmoothCentroidAMD must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-BaryCoordSmoothCentroidAMD-BaryCoordSmoothCentroidAMD-04177", - "text": " The variable decorated with BaryCoordSmoothCentroidAMD must be declared as a two-component vector of 32-bit floating-point values" + "text": "The variable decorated with BaryCoordSmoothCentroidAMD must be declared as a two-component vector of 32-bit floating-point values", + "page": "vkspec" } ] }, @@ -23974,15 +29824,18 @@ "core": [ { "vuid": "VUID-BaryCoordSmoothSampleAMD-BaryCoordSmoothSampleAMD-04178", - "text": " The BaryCoordSmoothSampleAMD decoration must be used only within the Fragment {ExecutionModel}" + "text": "The BaryCoordSmoothSampleAMD decoration must be used only within the Fragment Execution Model", + "page": "vkspec" }, { "vuid": "VUID-BaryCoordSmoothSampleAMD-BaryCoordSmoothSampleAMD-04179", - "text": " The variable decorated with BaryCoordSmoothSampleAMD must be declared using the Input {StorageClass}" + "text": "The variable decorated with BaryCoordSmoothSampleAMD must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-BaryCoordSmoothSampleAMD-BaryCoordSmoothSampleAMD-04180", - "text": " The variable decorated with BaryCoordSmoothSampleAMD must be declared as a two-component vector of 32-bit floating-point values" + "text": "The variable decorated with BaryCoordSmoothSampleAMD must be declared as a two-component vector of 32-bit floating-point values", + "page": "vkspec" } ] }, @@ -23990,15 +29843,18 @@ "core": [ { "vuid": "VUID-BaseInstance-BaseInstance-04181", - "text": " The BaseInstance decoration must be used only within the Vertex {ExecutionModel}" + "text": "The BaseInstance decoration must be used only within the Vertex Execution Model", + "page": "vkspec" }, { "vuid": "VUID-BaseInstance-BaseInstance-04182", - "text": " The variable decorated with BaseInstance must be declared using the Input {StorageClass}" + "text": "The variable decorated with BaseInstance must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-BaseInstance-BaseInstance-04183", - "text": " The variable decorated with BaseInstance must be declared as a scalar 32-bit integer value" + "text": "The variable decorated with BaseInstance must be declared as a scalar 32-bit integer value", + "page": "vkspec" } ] }, @@ -24006,15 +29862,18 @@ "core": [ { "vuid": "VUID-BaseVertex-BaseVertex-04184", - "text": " The BaseVertex decoration must be used only within the Vertex {ExecutionModel}" + "text": "The BaseVertex decoration must be used only within the Vertex Execution Model", + "page": "vkspec" }, { "vuid": "VUID-BaseVertex-BaseVertex-04185", - "text": " The variable decorated with BaseVertex must be declared using the Input {StorageClass}" + "text": "The variable decorated with BaseVertex must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-BaseVertex-BaseVertex-04186", - "text": " The variable decorated with BaseVertex must be declared as a scalar 32-bit integer value" + "text": "The variable decorated with BaseVertex must be declared as a scalar 32-bit integer value", + "page": "vkspec" } ] }, @@ -24022,23 +29881,28 @@ "core": [ { "vuid": "VUID-ClipDistance-ClipDistance-04187", - "text": " The ClipDistance decoration must be used only within the MeshEXT, MeshNV, Vertex, Fragment, TessellationControl, TessellationEvaluation, or Geometry {ExecutionModel}" + "text": "The ClipDistance decoration must be used only within the MeshEXT, MeshNV, Vertex, Fragment, TessellationControl, TessellationEvaluation, or Geometry Execution Model", + "page": "vkspec" }, { "vuid": "VUID-ClipDistance-ClipDistance-04188", - "text": " The variable decorated with ClipDistance within the MeshEXT, MeshNV, or Vertex {ExecutionModel} must be declared using the Output {StorageClass}" + "text": "The variable decorated with ClipDistance within the MeshEXT, MeshNV, or Vertex Execution Model must be declared using the Output Storage Class", + "page": "vkspec" }, { "vuid": "VUID-ClipDistance-ClipDistance-04189", - "text": " The variable decorated with ClipDistance within the Fragment {ExecutionModel} must be declared using the Input {StorageClass}" + "text": "The variable decorated with ClipDistance within the Fragment Execution Model must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-ClipDistance-ClipDistance-04190", - "text": " The variable decorated with ClipDistance within the TessellationControl, TessellationEvaluation, or Geometry {ExecutionModel} must not be declared in a {StorageClass} other than Input or Output" + "text": "The variable decorated with ClipDistance within the TessellationControl, TessellationEvaluation, or Geometry Execution Model must not be declared in a Storage Class other than Input or Output", + "page": "vkspec" }, { "vuid": "VUID-ClipDistance-ClipDistance-04191", - "text": " The variable decorated with ClipDistance must be declared as an array of 32-bit floating-point values" + "text": "The variable decorated with ClipDistance must be declared as an array of 32-bit floating-point values", + "page": "vkspec" } ] }, @@ -24046,19 +29910,23 @@ "core": [ { "vuid": "VUID-ClipDistancePerViewNV-ClipDistancePerViewNV-04192", - "text": " The ClipDistancePerViewNV decoration must be used only within the MeshNV {ExecutionModel}" + "text": "The ClipDistancePerViewNV decoration must be used only within the MeshNV Execution Model", + "page": "vkspec" }, { "vuid": "VUID-ClipDistancePerViewNV-ClipDistancePerViewNV-04193", - "text": " The variable decorated with ClipDistancePerViewNV must be declared using the Output {StorageClass}" + "text": "The variable decorated with ClipDistancePerViewNV must be declared using the Output Storage Class", + "page": "vkspec" }, { "vuid": "VUID-ClipDistancePerViewNV-ClipDistancePerViewNV-04194", - "text": " The variable decorated with ClipDistancePerViewNV must also be decorated with the PerViewNV decoration" + "text": "The variable decorated with ClipDistancePerViewNV must also be decorated with the PerViewNV decoration", + "page": "vkspec" }, { "vuid": "VUID-ClipDistancePerViewNV-ClipDistancePerViewNV-04195", - "text": " The variable decorated with ClipDistancePerViewNV must be declared as a two-dimensional array of 32-bit floating-point values" + "text": "The variable decorated with ClipDistancePerViewNV must be declared as a two-dimensional array of 32-bit floating-point values", + "page": "vkspec" } ] }, @@ -24066,11 +29934,13 @@ "core": [ { "vuid": "VUID-ClusterIDHUAWEI-ClusterIDHUAWEI-07797", - "text": " The ClusterIDHUAWEI decoration must be used only within the ClusterCullingHUAWEI {ExecutionModel}" + "text": "The ClusterIDHUAWEI decoration must be used only within the ClusterCullingHUAWEI Execution Model", + "page": "vkspec" }, { "vuid": "VUID-ClusterIDHUAWEI-ClusterIDHUAWEI-07798", - "text": " The variable decorated with ClusterIDHUAWEI must be declared as a scalar 32-bit integer value" + "text": "The variable decorated with ClusterIDHUAWEI must be declared as a scalar 32-bit integer value", + "page": "vkspec" } ] }, @@ -24078,23 +29948,28 @@ "core": [ { "vuid": "VUID-CullDistance-CullDistance-04196", - "text": " The CullDistance decoration must be used only within the MeshEXT, MeshNV, Vertex, Fragment, TessellationControl, TessellationEvaluation, or Geometry {ExecutionModel}" + "text": "The CullDistance decoration must be used only within the MeshEXT, MeshNV, Vertex, Fragment, TessellationControl, TessellationEvaluation, or Geometry Execution Model", + "page": "vkspec" }, { "vuid": "VUID-CullDistance-CullDistance-04197", - "text": " The variable decorated with CullDistance within the MeshEXT, MeshNV or Vertex {ExecutionModel} must be declared using the Output {StorageClass}" + "text": "The variable decorated with CullDistance within the MeshEXT, MeshNV or Vertex Execution Model must be declared using the Output Storage Class", + "page": "vkspec" }, { "vuid": "VUID-CullDistance-CullDistance-04198", - "text": " The variable decorated with CullDistance within the Fragment {ExecutionModel} must be declared using the Input {StorageClass}" + "text": "The variable decorated with CullDistance within the Fragment Execution Model must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-CullDistance-CullDistance-04199", - "text": " The variable decorated with CullDistance within the TessellationControl, TessellationEvaluation, or Geometry {ExecutionModel} must not be declared using a {StorageClass} other than Input or Output" + "text": "The variable decorated with CullDistance within the TessellationControl, TessellationEvaluation, or Geometry Execution Model must not be declared using a Storage Class other than Input or Output", + "page": "vkspec" }, { "vuid": "VUID-CullDistance-CullDistance-04200", - "text": " The variable decorated with CullDistance must be declared as an array of 32-bit floating-point values" + "text": "The variable decorated with CullDistance must be declared as an array of 32-bit floating-point values", + "page": "vkspec" } ] }, @@ -24102,19 +29977,23 @@ "core": [ { "vuid": "VUID-CullDistancePerViewNV-CullDistancePerViewNV-04201", - "text": " The CullDistancePerViewNV decoration must be used only within the MeshNV {ExecutionModel}" + "text": "The CullDistancePerViewNV decoration must be used only within the MeshNV Execution Model", + "page": "vkspec" }, { "vuid": "VUID-CullDistancePerViewNV-CullDistancePerViewNV-04202", - "text": " The variable decorated with CullDistancePerViewNV must be declared using the Output {StorageClass}" + "text": "The variable decorated with CullDistancePerViewNV must be declared using the Output Storage Class", + "page": "vkspec" }, { "vuid": "VUID-CullDistancePerViewNV-CullDistancePerViewNV-04203", - "text": " The variable decorated with CullDistancePerViewNV must also be decorated with the PerViewNV decoration" + "text": "The variable decorated with CullDistancePerViewNV must also be decorated with the PerViewNV decoration", + "page": "vkspec" }, { "vuid": "VUID-CullDistancePerViewNV-CullDistancePerViewNV-04204", - "text": " The variable decorated with CullDistancePerViewNV must be declared as a two-dimensional array of 32-bit floating-point values" + "text": "The variable decorated with CullDistancePerViewNV must be declared as a two-dimensional array of 32-bit floating-point values", + "page": "vkspec" } ] }, @@ -24122,23 +30001,28 @@ "core": [ { "vuid": "VUID-CullPrimitiveEXT-CullPrimitiveEXT-07034", - "text": " The CullPrimitiveEXT decoration must be used only within the MeshEXT {ExecutionModel}" + "text": "The CullPrimitiveEXT decoration must be used only within the MeshEXT Execution Model", + "page": "vkspec" }, { "vuid": "VUID-CullPrimitiveEXT-CullPrimitiveEXT-07035", - "text": " The variable decorated with CullPrimitiveEXT must be declared using the Output {StorageClass}" + "text": "The variable decorated with CullPrimitiveEXT must be declared using the Output Storage Class", + "page": "vkspec" }, { "vuid": "VUID-CullPrimitiveEXT-CullPrimitiveEXT-07036", - "text": " The variable decorated with CullPrimitiveEXT must be declared as an array of boolean values" + "text": "The variable decorated with CullPrimitiveEXT must be declared as an array of boolean values", + "page": "vkspec" }, { "vuid": "VUID-CullPrimitiveEXT-CullPrimitiveEXT-07037", - "text": " The size of the array decorated with CullPrimitiveEXT must match the value specified by OutputPrimitivesEXT" + "text": "The size of the array decorated with CullPrimitiveEXT must match the value specified by OutputPrimitivesEXT", + "page": "vkspec" }, { "vuid": "VUID-CullPrimitiveEXT-CullPrimitiveEXT-07038", - "text": " The variable decorated with CullPrimitiveEXT within the MeshEXT {ExecutionModel} must also be decorated with the PerPrimitiveEXT decoration" + "text": "The variable decorated with CullPrimitiveEXT within the MeshEXT Execution Model must also be decorated with the PerPrimitiveEXT decoration", + "page": "vkspec" } ] }, @@ -24146,15 +30030,18 @@ "core": [ { "vuid": "VUID-CullMaskKHR-CullMaskKHR-06735", - "text": " The CullMaskKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, ClosestHitKHR, or MissKHR {ExecutionModel}" + "text": "The CullMaskKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, ClosestHitKHR, or MissKHR Execution Model", + "page": "vkspec" }, { "vuid": "VUID-CullMaskKHR-CullMaskKHR-06736", - "text": " The variable decorated with CullMaskKHR must be declared using the Input {StorageClass}" + "text": "The variable decorated with CullMaskKHR must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-CullMaskKHR-CullMaskKHR-06737", - "text": " The variable decorated with CullMaskKHR must be declared as a scalar 32-bit integer value" + "text": "The variable decorated with CullMaskKHR must be declared as a scalar 32-bit integer value", + "page": "vkspec" } ] }, @@ -24162,15 +30049,18 @@ "core": [ { "vuid": "VUID-CurrentRayTimeNV-CurrentRayTimeNV-04942", - "text": " The CurrentRayTimeNV decoration must be used only within the IntersectionKHR, AnyHitKHR, ClosestHitKHR, or MissKHR {ExecutionModel}" + "text": "The CurrentRayTimeNV decoration must be used only within the IntersectionKHR, AnyHitKHR, ClosestHitKHR, or MissKHR Execution Model", + "page": "vkspec" }, { "vuid": "VUID-CurrentRayTimeNV-CurrentRayTimeNV-04943", - "text": " The variable decorated with CurrentRayTimeNV must be declared using the Input {StorageClass}" + "text": "The variable decorated with CurrentRayTimeNV must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-CurrentRayTimeNV-CurrentRayTimeNV-04944", - "text": " The variable decorated with CurrentRayTimeNV must be declared as a scalar 32-bit floating-point value" + "text": "The variable decorated with CurrentRayTimeNV must be declared as a scalar 32-bit floating-point value", + "page": "vkspec" } ] }, @@ -24178,11 +30068,13 @@ "core": [ { "vuid": "VUID-DeviceIndex-DeviceIndex-04205", - "text": " The variable decorated with DeviceIndex must be declared using the Input {StorageClass}" + "text": "The variable decorated with DeviceIndex must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-DeviceIndex-DeviceIndex-04206", - "text": " The variable decorated with DeviceIndex must be declared as a scalar 32-bit integer value" + "text": "The variable decorated with DeviceIndex must be declared as a scalar 32-bit integer value", + "page": "vkspec" } ] }, @@ -24190,15 +30082,18 @@ "core": [ { "vuid": "VUID-DrawIndex-DrawIndex-04207", - "text": " The DrawIndex decoration must be used only within the Vertex, MeshEXT, TaskEXT, MeshNV, or TaskNV {ExecutionModel}" + "text": "The DrawIndex decoration must be used only within the Vertex, MeshEXT, TaskEXT, MeshNV, or TaskNV Execution Model", + "page": "vkspec" }, { "vuid": "VUID-DrawIndex-DrawIndex-04208", - "text": " The variable decorated with DrawIndex must be declared using the Input {StorageClass}" + "text": "The variable decorated with DrawIndex must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-DrawIndex-DrawIndex-04209", - "text": " The variable decorated with DrawIndex must be declared as a scalar 32-bit integer value" + "text": "The variable decorated with DrawIndex must be declared as a scalar 32-bit integer value", + "page": "vkspec" } ] }, @@ -24206,11 +30101,13 @@ "core": [ { "vuid": "VUID-FirstIndexHUAWEI-FirstIndexHUAWEI-07799", - "text": " The FirstIndexHUAWEI decoration must be used only within the ClusterCullingHUAWEI {ExecutionModel}" + "text": "The FirstIndexHUAWEI decoration must be used only within the ClusterCullingHUAWEI Execution Model", + "page": "vkspec" }, { "vuid": "VUID-FirstIndexHUAWEI-FirstIndexHUAWEI-07800", - "text": " The variable decorated with FirstIndexHUAWEI must be declared as a scalar 32-bit integer value" + "text": "The variable decorated with FirstIndexHUAWEI must be declared as a scalar 32-bit integer value", + "page": "vkspec" } ] }, @@ -24218,15 +30115,18 @@ "core": [ { "vuid": "VUID-FragCoord-FragCoord-04210", - "text": " The FragCoord decoration must be used only within the Fragment {ExecutionModel}" + "text": "The FragCoord decoration must be used only within the Fragment Execution Model", + "page": "vkspec" }, { "vuid": "VUID-FragCoord-FragCoord-04211", - "text": " The variable decorated with FragCoord must be declared using the Input {StorageClass}" + "text": "The variable decorated with FragCoord must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-FragCoord-FragCoord-04212", - "text": " The variable decorated with FragCoord must be declared as a four-component vector of 32-bit floating-point values" + "text": "The variable decorated with FragCoord must be declared as a four-component vector of 32-bit floating-point values", + "page": "vkspec" } ] }, @@ -24234,19 +30134,23 @@ "core": [ { "vuid": "VUID-FragDepth-FragDepth-04213", - "text": " The FragDepth decoration must be used only within the Fragment {ExecutionModel}" + "text": "The FragDepth decoration must be used only within the Fragment Execution Model", + "page": "vkspec" }, { "vuid": "VUID-FragDepth-FragDepth-04214", - "text": " The variable decorated with FragDepth must be declared using the Output {StorageClass}" + "text": "The variable decorated with FragDepth must be declared using the Output Storage Class", + "page": "vkspec" }, { "vuid": "VUID-FragDepth-FragDepth-04215", - "text": " The variable decorated with FragDepth must be declared as a scalar 32-bit floating-point value" + "text": "The variable decorated with FragDepth must be declared as a scalar 32-bit floating-point value", + "page": "vkspec" }, { "vuid": "VUID-FragDepth-FragDepth-04216", - "text": " If the shader dynamically writes to the variable decorated with FragDepth, the DepthReplacing {ExecutionMode} must be declared" + "text": "If the shader dynamically writes to the variable decorated with FragDepth, the DepthReplacing Execution Mode must be declared", + "page": "vkspec" } ] }, @@ -24254,11 +30158,13 @@ "core": [ { "vuid": "VUID-FirstInstanceHUAWEI-FirstInstanceHUAWEI-07801", - "text": " The FirstInstanceHUAWEI decoration must be used only within the ClusterCullingHUAWEI {ExecutionModel}" + "text": "The FirstInstanceHUAWEI decoration must be used only within the ClusterCullingHUAWEI Execution Model", + "page": "vkspec" }, { "vuid": "VUID-FirstInstanceHUAWEI-FirstInstanceHUAWEI-07802", - "text": " The variable decorated with FirstInstanceHUAWEI must be declared as a scalar 32-bit integer value" + "text": "The variable decorated with FirstInstanceHUAWEI must be declared as a scalar 32-bit integer value", + "page": "vkspec" } ] }, @@ -24266,11 +30172,13 @@ "core": [ { "vuid": "VUID-FirstVertexHUAWEI-FirstVertexHUAWEI-07803", - "text": " The FirstVertexHUAWEI decoration must be used only within the FirstVertexHUAWEI{ExecutionModel}" + "text": "The FirstVertexHUAWEI decoration must be used only within the FirstVertexHUAWEI Execution Model", + "page": "vkspec" }, { "vuid": "VUID-FirstVertexHUAWEI-FirstVertexHUAWEI-07804", - "text": " The variable decorated with FirstVertexHUAWEI must be declared as a scalar 32-bit integer value" + "text": "The variable decorated with FirstVertexHUAWEI must be declared as a scalar 32-bit integer value", + "page": "vkspec" } ] }, @@ -24278,15 +30186,18 @@ "core": [ { "vuid": "VUID-FragInvocationCountEXT-FragInvocationCountEXT-04217", - "text": " The FragInvocationCountEXT decoration must be used only within the Fragment {ExecutionModel}" + "text": "The FragInvocationCountEXT decoration must be used only within the Fragment Execution Model", + "page": "vkspec" }, { "vuid": "VUID-FragInvocationCountEXT-FragInvocationCountEXT-04218", - "text": " The variable decorated with FragInvocationCountEXT must be declared using the Input {StorageClass}" + "text": "The variable decorated with FragInvocationCountEXT must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-FragInvocationCountEXT-FragInvocationCountEXT-04219", - "text": " The variable decorated with FragInvocationCountEXT must be declared as a scalar 32-bit integer value" + "text": "The variable decorated with FragInvocationCountEXT must be declared as a scalar 32-bit integer value", + "page": "vkspec" } ] }, @@ -24294,15 +30205,18 @@ "core": [ { "vuid": "VUID-FragSizeEXT-FragSizeEXT-04220", - "text": " The FragSizeEXT decoration must be used only within the Fragment {ExecutionModel}" + "text": "The FragSizeEXT decoration must be used only within the Fragment Execution Model", + "page": "vkspec" }, { "vuid": "VUID-FragSizeEXT-FragSizeEXT-04221", - "text": " The variable decorated with FragSizeEXT must be declared using the Input {StorageClass}" + "text": "The variable decorated with FragSizeEXT must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-FragSizeEXT-FragSizeEXT-04222", - "text": " The variable decorated with FragSizeEXT must be declared as a two-component vector of 32-bit integer values" + "text": "The variable decorated with FragSizeEXT must be declared as a two-component vector of 32-bit integer values", + "page": "vkspec" } ] }, @@ -24310,15 +30224,18 @@ "core": [ { "vuid": "VUID-FragStencilRefEXT-FragStencilRefEXT-04223", - "text": " The FragStencilRefEXT decoration must be used only within the Fragment {ExecutionModel}" + "text": "The FragStencilRefEXT decoration must be used only within the Fragment Execution Model", + "page": "vkspec" }, { "vuid": "VUID-FragStencilRefEXT-FragStencilRefEXT-04224", - "text": " The variable decorated with FragStencilRefEXT must be declared using the Output {StorageClass}" + "text": "The variable decorated with FragStencilRefEXT must be declared using the Output Storage Class", + "page": "vkspec" }, { "vuid": "VUID-FragStencilRefEXT-FragStencilRefEXT-04225", - "text": " The variable decorated with FragStencilRefEXT must be declared as a scalar integer value" + "text": "The variable decorated with FragStencilRefEXT must be declared as a scalar integer value", + "page": "vkspec" } ] }, @@ -24326,15 +30243,18 @@ "core": [ { "vuid": "VUID-FragmentSizeNV-FragmentSizeNV-04226", - "text": " The FragmentSizeNV decoration must be used only within the Fragment {ExecutionModel}" + "text": "The FragmentSizeNV decoration must be used only within the Fragment Execution Model", + "page": "vkspec" }, { "vuid": "VUID-FragmentSizeNV-FragmentSizeNV-04227", - "text": " The variable decorated with FragmentSizeNV must be declared using the Input {StorageClass}" + "text": "The variable decorated with FragmentSizeNV must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-FragmentSizeNV-FragmentSizeNV-04228", - "text": " The variable decorated with FragmentSizeNV must be declared as a two-component vector of 32-bit integer values" + "text": "The variable decorated with FragmentSizeNV must be declared as a two-component vector of 32-bit integer values", + "page": "vkspec" } ] }, @@ -24342,15 +30262,18 @@ "core": [ { "vuid": "VUID-FrontFacing-FrontFacing-04229", - "text": " The FrontFacing decoration must be used only within the Fragment {ExecutionModel}" + "text": "The FrontFacing decoration must be used only within the Fragment Execution Model", + "page": "vkspec" }, { "vuid": "VUID-FrontFacing-FrontFacing-04230", - "text": " The variable decorated with FrontFacing must be declared using the Input {StorageClass}" + "text": "The variable decorated with FrontFacing must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-FrontFacing-FrontFacing-04231", - "text": " The variable decorated with FrontFacing must be declared as a boolean value" + "text": "The variable decorated with FrontFacing must be declared as a boolean value", + "page": "vkspec" } ] }, @@ -24358,19 +30281,23 @@ "core": [ { "vuid": "VUID-FullyCoveredEXT-FullyCoveredEXT-04232", - "text": " The FullyCoveredEXT decoration must be used only within the Fragment {ExecutionModel}" + "text": "The FullyCoveredEXT decoration must be used only within the Fragment Execution Model", + "page": "vkspec" }, { "vuid": "VUID-FullyCoveredEXT-FullyCoveredEXT-04233", - "text": " The variable decorated with FullyCoveredEXT must be declared using the Input {StorageClass}" + "text": "The variable decorated with FullyCoveredEXT must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-FullyCoveredEXT-FullyCoveredEXT-04234", - "text": " The variable decorated with FullyCoveredEXT must be declared as a boolean value" + "text": "The variable decorated with FullyCoveredEXT must be declared as a boolean value", + "page": "vkspec" }, { "vuid": "VUID-FullyCoveredEXT-conservativeRasterizationPostDepthCoverage-04235", - "text": " If VkPhysicalDeviceConservativeRasterizationPropertiesEXT::conservativeRasterizationPostDepthCoverage is not supported the PostDepthCoverage {ExecutionMode} must not be declared, when a variable with the FullyCoveredEXT decoration is declared" + "text": "If VkPhysicalDeviceConservativeRasterizationPropertiesEXT::conservativeRasterizationPostDepthCoverage is not supported the PostDepthCoverage Execution Mode must not be declared, when a variable with the FullyCoveredEXT decoration is declared", + "page": "vkspec" } ] }, @@ -24378,15 +30305,18 @@ "core": [ { "vuid": "VUID-GlobalInvocationId-GlobalInvocationId-04236", - "text": " The GlobalInvocationId decoration must be used only within the GLCompute, MeshEXT, TaskEXT, MeshNV, or TaskNV {ExecutionModel}" + "text": "The GlobalInvocationId decoration must be used only within the GLCompute, MeshEXT, TaskEXT, MeshNV, or TaskNV Execution Model", + "page": "vkspec" }, { "vuid": "VUID-GlobalInvocationId-GlobalInvocationId-04237", - "text": " The variable decorated with GlobalInvocationId must be declared using the Input {StorageClass}" + "text": "The variable decorated with GlobalInvocationId must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-GlobalInvocationId-GlobalInvocationId-04238", - "text": " The variable decorated with GlobalInvocationId must be declared as a three-component vector of 32-bit integer values" + "text": "The variable decorated with GlobalInvocationId must be declared as a three-component vector of 32-bit integer values", + "page": "vkspec" } ] }, @@ -24394,15 +30324,18 @@ "core": [ { "vuid": "VUID-HelperInvocation-HelperInvocation-04239", - "text": " The HelperInvocation decoration must be used only within the Fragment {ExecutionModel}" + "text": "The HelperInvocation decoration must be used only within the Fragment Execution Model", + "page": "vkspec" }, { "vuid": "VUID-HelperInvocation-HelperInvocation-04240", - "text": " The variable decorated with HelperInvocation must be declared using the Input {StorageClass}" + "text": "The variable decorated with HelperInvocation must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-HelperInvocation-HelperInvocation-04241", - "text": " The variable decorated with HelperInvocation must be declared as a boolean value" + "text": "The variable decorated with HelperInvocation must be declared as a boolean value", + "page": "vkspec" } ] }, @@ -24410,15 +30343,18 @@ "core": [ { "vuid": "VUID-HitKindKHR-HitKindKHR-04242", - "text": " The HitKindKHR decoration must be used only within the AnyHitKHR or ClosestHitKHR {ExecutionModel}" + "text": "The HitKindKHR decoration must be used only within the AnyHitKHR or ClosestHitKHR Execution Model", + "page": "vkspec" }, { "vuid": "VUID-HitKindKHR-HitKindKHR-04243", - "text": " The variable decorated with HitKindKHR must be declared using the Input {StorageClass}" + "text": "The variable decorated with HitKindKHR must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-HitKindKHR-HitKindKHR-04244", - "text": " The variable decorated with HitKindKHR must be declared as a scalar 32-bit integer value" + "text": "The variable decorated with HitKindKHR must be declared as a scalar 32-bit integer value", + "page": "vkspec" } ] }, @@ -24426,15 +30362,18 @@ "core": [ { "vuid": "VUID-HitTNV-HitTNV-04245", - "text": " The HitTNV decoration must be used only within the AnyHitNV or ClosestHitNV {ExecutionModel}" + "text": "The HitTNV decoration must be used only within the AnyHitNV or ClosestHitNV Execution Model", + "page": "vkspec" }, { "vuid": "VUID-HitTNV-HitTNV-04246", - "text": " The variable decorated with HitTNV must be declared using the Input {StorageClass}" + "text": "The variable decorated with HitTNV must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-HitTNV-HitTNV-04247", - "text": " The variable decorated with HitTNV must be declared as a scalar 32-bit floating-point value" + "text": "The variable decorated with HitTNV must be declared as a scalar 32-bit floating-point value", + "page": "vkspec" } ] }, @@ -24442,23 +30381,28 @@ "core": [ { "vuid": "VUID-HitTriangleVertexPositionsKHR-HitTriangleVertexPositionsKHR-08747", - "text": " The HitTriangleVertexPositionsKHR decoration must be used only within the AnyHitKHR or ClosestHitKHR {ExecutionModel}" + "text": "The HitTriangleVertexPositionsKHR decoration must be used only within the AnyHitKHR or ClosestHitKHR Execution Model", + "page": "vkspec" }, { "vuid": "VUID-HitTriangleVertexPositionsKHR-HitTriangleVertexPositionsKHR-08748", - "text": " The variable decorated with HitTriangleVertexPositionsKHR must be declared using the Input {StorageClass}" + "text": "The variable decorated with HitTriangleVertexPositionsKHR must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-HitTriangleVertexPositionsKHR-HitTriangleVertexPositionsKHR-08749", - "text": " The variable decorated with HitTriangleVertexPositionsKHR must be declared as an array of three vectors of three 32-bit float values" + "text": "The variable decorated with HitTriangleVertexPositionsKHR must be declared as an array of three vectors of three 32-bit float values", + "page": "vkspec" }, { "vuid": "VUID-HitTriangleVertexPositionsKHR-HitTriangleVertexPositionsKHR-08750", - "text": " The variable decorated with HitTriangleVertexPositionsKHR must be used only if the value of HitKindKHR is HitKindFrontFacingTriangleKHR or HitKindBackFacingTriangleKHR" + "text": "The variable decorated with HitTriangleVertexPositionsKHR must be used only if the value of HitKindKHR is HitKindFrontFacingTriangleKHR or HitKindBackFacingTriangleKHR", + "page": "vkspec" }, { "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_KHR", + "page": "vkspec" } ] }, @@ -24466,15 +30410,18 @@ "core": [ { "vuid": "VUID-IncomingRayFlagsKHR-IncomingRayFlagsKHR-04248", - "text": " The IncomingRayFlagsKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, ClosestHitKHR, or MissKHR {ExecutionModel}" + "text": "The IncomingRayFlagsKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, ClosestHitKHR, or MissKHR Execution Model", + "page": "vkspec" }, { "vuid": "VUID-IncomingRayFlagsKHR-IncomingRayFlagsKHR-04249", - "text": " The variable decorated with IncomingRayFlagsKHR must be declared using the Input {StorageClass}" + "text": "The variable decorated with IncomingRayFlagsKHR must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-IncomingRayFlagsKHR-IncomingRayFlagsKHR-04250", - "text": " The variable decorated with IncomingRayFlagsKHR must be declared as a scalar 32-bit integer value" + "text": "The variable decorated with IncomingRayFlagsKHR must be declared as a scalar 32-bit integer value", + "page": "vkspec" } ] }, @@ -24482,11 +30429,13 @@ "core": [ { "vuid": "VUID-IndexCountHUAWEI-IndexCountHUAWEI-07805", - "text": " The IndexCountHUAWEI decoration must be used only within the ClusterCullingHUAWEI {ExecutionModel}" + "text": "The IndexCountHUAWEI decoration must be used only within the ClusterCullingHUAWEI Execution Model", + "page": "vkspec" }, { "vuid": "VUID-IndexCountHUAWEI-IndexCountHUAWEI-07806", - "text": " The variable decorated with IndexCountHUAWEI must be declared as a scalar 32-bit integer value" + "text": "The variable decorated with IndexCountHUAWEI must be declared as a scalar 32-bit integer value", + "page": "vkspec" } ] }, @@ -24494,11 +30443,13 @@ "core": [ { "vuid": "VUID-InstanceCountHUAWEI-InstanceCountHUAWEI-07807", - "text": " The InstanceCountHUAWEI decoration must be used only within the ClusterCullingHUAWEI {ExecutionModel}" + "text": "The InstanceCountHUAWEI decoration must be used only within the ClusterCullingHUAWEI Execution Model", + "page": "vkspec" }, { "vuid": "VUID-InstanceCountHUAWEI-InstanceCountHUAWEI-07808", - "text": " The variable decorated with InstanceCountHUAWEI must be declared as a scalar 32-bit integer value" + "text": "The variable decorated with InstanceCountHUAWEI must be declared as a scalar 32-bit integer value", + "page": "vkspec" } ] }, @@ -24506,15 +30457,18 @@ "core": [ { "vuid": "VUID-InstanceCustomIndexKHR-InstanceCustomIndexKHR-04251", - "text": " The InstanceCustomIndexKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, or ClosestHitKHR {ExecutionModel}" + "text": "The InstanceCustomIndexKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, or ClosestHitKHR Execution Model", + "page": "vkspec" }, { "vuid": "VUID-InstanceCustomIndexKHR-InstanceCustomIndexKHR-04252", - "text": " The variable decorated with InstanceCustomIndexKHR must be declared using the Input {StorageClass}" + "text": "The variable decorated with InstanceCustomIndexKHR must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-InstanceCustomIndexKHR-InstanceCustomIndexKHR-04253", - "text": " The variable decorated with InstanceCustomIndexKHR must be declared as a scalar 32-bit integer value" + "text": "The variable decorated with InstanceCustomIndexKHR must be declared as a scalar 32-bit integer value", + "page": "vkspec" } ] }, @@ -24522,15 +30476,18 @@ "core": [ { "vuid": "VUID-InstanceId-InstanceId-04254", - "text": " The InstanceId decoration must be used only within the IntersectionKHR, AnyHitKHR, or ClosestHitKHR {ExecutionModel}" + "text": "The InstanceId decoration must be used only within the IntersectionKHR, AnyHitKHR, or ClosestHitKHR Execution Model", + "page": "vkspec" }, { "vuid": "VUID-InstanceId-InstanceId-04255", - "text": " The variable decorated with InstanceId must be declared using the Input {StorageClass}" + "text": "The variable decorated with InstanceId must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-InstanceId-InstanceId-04256", - "text": " The variable decorated with InstanceId must be declared as a scalar 32-bit integer value" + "text": "The variable decorated with InstanceId must be declared as a scalar 32-bit integer value", + "page": "vkspec" } ] }, @@ -24538,15 +30495,18 @@ "core": [ { "vuid": "VUID-InvocationId-InvocationId-04257", - "text": " The InvocationId decoration must be used only within the TessellationControl or Geometry {ExecutionModel}" + "text": "The InvocationId decoration must be used only within the TessellationControl or Geometry Execution Model", + "page": "vkspec" }, { "vuid": "VUID-InvocationId-InvocationId-04258", - "text": " The variable decorated with InvocationId must be declared using the Input {StorageClass}" + "text": "The variable decorated with InvocationId must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-InvocationId-InvocationId-04259", - "text": " The variable decorated with InvocationId must be declared as a scalar 32-bit integer value" + "text": "The variable decorated with InvocationId must be declared as a scalar 32-bit integer value", + "page": "vkspec" } ] }, @@ -24554,15 +30514,18 @@ "core": [ { "vuid": "VUID-InvocationsPerPixelNV-InvocationsPerPixelNV-04260", - "text": " The InvocationsPerPixelNV decoration must be used only within the Fragment {ExecutionModel}" + "text": "The InvocationsPerPixelNV decoration must be used only within the Fragment Execution Model", + "page": "vkspec" }, { "vuid": "VUID-InvocationsPerPixelNV-InvocationsPerPixelNV-04261", - "text": " The variable decorated with InvocationsPerPixelNV must be declared using the Input {StorageClass}" + "text": "The variable decorated with InvocationsPerPixelNV must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-InvocationsPerPixelNV-InvocationsPerPixelNV-04262", - "text": " The variable decorated with InvocationsPerPixelNV must be declared as a scalar 32-bit integer value" + "text": "The variable decorated with InvocationsPerPixelNV must be declared as a scalar 32-bit integer value", + "page": "vkspec" } ] }, @@ -24570,15 +30533,18 @@ "core": [ { "vuid": "VUID-InstanceIndex-InstanceIndex-04263", - "text": " The InstanceIndex decoration must be used only within the Vertex {ExecutionModel}" + "text": "The InstanceIndex decoration must be used only within the Vertex Execution Model", + "page": "vkspec" }, { "vuid": "VUID-InstanceIndex-InstanceIndex-04264", - "text": " The variable decorated with InstanceIndex must be declared using the Input {StorageClass}" + "text": "The variable decorated with InstanceIndex must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-InstanceIndex-InstanceIndex-04265", - "text": " The variable decorated with InstanceIndex must be declared as a scalar 32-bit integer value" + "text": "The variable decorated with InstanceIndex must be declared as a scalar 32-bit integer value", + "page": "vkspec" } ] }, @@ -24586,15 +30552,18 @@ "core": [ { "vuid": "VUID-LaunchIdKHR-LaunchIdKHR-04266", - "text": " The LaunchIdKHR decoration must be used only within the RayGenerationKHR, IntersectionKHR, AnyHitKHR, ClosestHitKHR, MissKHR, or CallableKHR {ExecutionModel}" + "text": "The LaunchIdKHR decoration must be used only within the RayGenerationKHR, IntersectionKHR, AnyHitKHR, ClosestHitKHR, MissKHR, or CallableKHR Execution Model", + "page": "vkspec" }, { "vuid": "VUID-LaunchIdKHR-LaunchIdKHR-04267", - "text": " The variable decorated with LaunchIdKHR must be declared using the Input {StorageClass}" + "text": "The variable decorated with LaunchIdKHR must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-LaunchIdKHR-LaunchIdKHR-04268", - "text": " The variable decorated with LaunchIdKHR must be declared as a three-component vector of 32-bit integer values" + "text": "The variable decorated with LaunchIdKHR must be declared as a three-component vector of 32-bit integer values", + "page": "vkspec" } ] }, @@ -24602,15 +30571,18 @@ "core": [ { "vuid": "VUID-LaunchSizeKHR-LaunchSizeKHR-04269", - "text": " The LaunchSizeKHR decoration must be used only within the RayGenerationKHR, IntersectionKHR, AnyHitKHR, ClosestHitKHR, MissKHR, or CallableKHR {ExecutionModel}" + "text": "The LaunchSizeKHR decoration must be used only within the RayGenerationKHR, IntersectionKHR, AnyHitKHR, ClosestHitKHR, MissKHR, or CallableKHR Execution Model", + "page": "vkspec" }, { "vuid": "VUID-LaunchSizeKHR-LaunchSizeKHR-04270", - "text": " The variable decorated with LaunchSizeKHR must be declared using the Input {StorageClass}" + "text": "The variable decorated with LaunchSizeKHR must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-LaunchSizeKHR-LaunchSizeKHR-04271", - "text": " The variable decorated with LaunchSizeKHR must be declared as a three-component vector of 32-bit integer values" + "text": "The variable decorated with LaunchSizeKHR must be declared as a three-component vector of 32-bit integer values", + "page": "vkspec" } ] }, @@ -24618,27 +30590,33 @@ "core": [ { "vuid": "VUID-Layer-Layer-04272", - "text": " The Layer decoration must be used only within the MeshEXT, MeshNV, Vertex, TessellationEvaluation, Geometry, or Fragment {ExecutionModel}" + "text": "The Layer decoration must be used only within the MeshEXT, MeshNV, Vertex, TessellationEvaluation, Geometry, or Fragment Execution Model", + "page": "vkspec" }, { "vuid": "VUID-Layer-Layer-04273", - "text": " If the shaderOutputLayer feature is not enabled then the Layer decoration must be used only within the Geometry or Fragment {ExecutionModel}" + "text": "If the shaderOutputLayer feature is not enabled then the Layer decoration must be used only within the Geometry or Fragment Execution Model", + "page": "vkspec" }, { "vuid": "VUID-Layer-Layer-04274", - "text": " The variable decorated with Layer within the MeshEXT, MeshNV, Vertex, TessellationEvaluation, or Geometry {ExecutionModel} must be declared using the Output {StorageClass}" + "text": "The variable decorated with Layer within the MeshEXT, MeshNV, Vertex, TessellationEvaluation, or Geometry Execution Model must be declared using the Output Storage Class", + "page": "vkspec" }, { "vuid": "VUID-Layer-Layer-04275", - "text": " The variable decorated with Layer within the Fragment {ExecutionModel} must be declared using the Input {StorageClass}" + "text": "The variable decorated with Layer within the Fragment Execution Model must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-Layer-Layer-04276", - "text": " The variable decorated with Layer must be declared as a scalar 32-bit integer value" + "text": "The variable decorated with Layer must be declared as a scalar 32-bit integer value", + "page": "vkspec" }, { "vuid": "VUID-Layer-Layer-07039", - "text": " The variable decorated with Layer within the MeshEXT {ExecutionModel} must also be decorated with the PerPrimitiveEXT decoration" + "text": "The variable decorated with Layer within the MeshEXT Execution Model must also be decorated with the PerPrimitiveEXT decoration", + "page": "vkspec" } ] }, @@ -24646,19 +30624,23 @@ "core": [ { "vuid": "VUID-LayerPerViewNV-LayerPerViewNV-04277", - "text": " The LayerPerViewNV decoration must be used only within the MeshNV {ExecutionModel}" + "text": "The LayerPerViewNV decoration must be used only within the MeshNV Execution Model", + "page": "vkspec" }, { "vuid": "VUID-LayerPerViewNV-LayerPerViewNV-04278", - "text": " The variable decorated with LayerPerViewNV must be declared using the Output {StorageClass}" + "text": "The variable decorated with LayerPerViewNV must be declared using the Output Storage Class", + "page": "vkspec" }, { "vuid": "VUID-LayerPerViewNV-LayerPerViewNV-04279", - "text": " The variable decorated with LayerPerViewNV must also be decorated with the PerViewNV decoration" + "text": "The variable decorated with LayerPerViewNV must also be decorated with the PerViewNV decoration", + "page": "vkspec" }, { "vuid": "VUID-LayerPerViewNV-LayerPerViewNV-04280", - "text": " The variable decorated with LayerPerViewNV must be declared as an array of scalar 32-bit integer values" + "text": "The variable decorated with LayerPerViewNV must be declared as an array of scalar 32-bit integer values", + "page": "vkspec" } ] }, @@ -24666,15 +30648,18 @@ "core": [ { "vuid": "VUID-LocalInvocationId-LocalInvocationId-04281", - "text": " The LocalInvocationId decoration must be used only within the GLCompute, MeshEXT, TaskEXT, MeshNV, or TaskNV {ExecutionModel}" + "text": "The LocalInvocationId decoration must be used only within the GLCompute, MeshEXT, TaskEXT, MeshNV, or TaskNV Execution Model", + "page": "vkspec" }, { "vuid": "VUID-LocalInvocationId-LocalInvocationId-04282", - "text": " The variable decorated with LocalInvocationId must be declared using the Input {StorageClass}" + "text": "The variable decorated with LocalInvocationId must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-LocalInvocationId-LocalInvocationId-04283", - "text": " The variable decorated with LocalInvocationId must be declared as a three-component vector of 32-bit integer values" + "text": "The variable decorated with LocalInvocationId must be declared as a three-component vector of 32-bit integer values", + "page": "vkspec" } ] }, @@ -24682,15 +30667,18 @@ "core": [ { "vuid": "VUID-LocalInvocationIndex-LocalInvocationIndex-04284", - "text": " The LocalInvocationIndex decoration must be used only within the GLCompute, MeshEXT, TaskEXT, MeshNV, or TaskNV {ExecutionModel}" + "text": "The LocalInvocationIndex decoration must be used only within the GLCompute, MeshEXT, TaskEXT, MeshNV, or TaskNV Execution Model", + "page": "vkspec" }, { "vuid": "VUID-LocalInvocationIndex-LocalInvocationIndex-04285", - "text": " The variable decorated with LocalInvocationIndex must be declared using the Input {StorageClass}" + "text": "The variable decorated with LocalInvocationIndex must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-LocalInvocationIndex-LocalInvocationIndex-04286", - "text": " The variable decorated with LocalInvocationIndex must be declared as a scalar 32-bit integer value" + "text": "The variable decorated with LocalInvocationIndex must be declared as a scalar 32-bit integer value", + "page": "vkspec" } ] }, @@ -24698,15 +30686,18 @@ "core": [ { "vuid": "VUID-MeshViewCountNV-MeshViewCountNV-04287", - "text": " The MeshViewCountNV decoration must be used only within the MeshNV or TaskNV {ExecutionModel}" + "text": "The MeshViewCountNV decoration must be used only within the MeshNV or TaskNV Execution Model", + "page": "vkspec" }, { "vuid": "VUID-MeshViewCountNV-MeshViewCountNV-04288", - "text": " The variable decorated with MeshViewCountNV must be declared using the Input {StorageClass}" + "text": "The variable decorated with MeshViewCountNV must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-MeshViewCountNV-MeshViewCountNV-04289", - "text": " The variable decorated with MeshViewCountNV must be declared as a scalar 32-bit integer value" + "text": "The variable decorated with MeshViewCountNV must be declared as a scalar 32-bit integer value", + "page": "vkspec" } ] }, @@ -24714,15 +30705,18 @@ "core": [ { "vuid": "VUID-MeshViewIndicesNV-MeshViewIndicesNV-04290", - "text": " The MeshViewIndicesNV decoration must be used only within the MeshNV or TaskNV {ExecutionModel}" + "text": "The MeshViewIndicesNV decoration must be used only within the MeshNV or TaskNV Execution Model", + "page": "vkspec" }, { "vuid": "VUID-MeshViewIndicesNV-MeshViewIndicesNV-04291", - "text": " The variable decorated with MeshViewIndicesNV must be declared using the Input {StorageClass}" + "text": "The variable decorated with MeshViewIndicesNV must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-MeshViewIndicesNV-MeshViewIndicesNV-04292", - "text": " The variable decorated with MeshViewIndicesNV must be declared as an array of scalar 32-bit integer values" + "text": "The variable decorated with MeshViewIndicesNV must be declared as an array of scalar 32-bit integer values", + "page": "vkspec" } ] }, @@ -24730,15 +30724,18 @@ "core": [ { "vuid": "VUID-NumSubgroups-NumSubgroups-04293", - "text": " The NumSubgroups decoration must be used only within the GLCompute, MeshEXT, TaskEXT, MeshNV, or TaskNV {ExecutionModel}" + "text": "The NumSubgroups decoration must be used only within the GLCompute, MeshEXT, TaskEXT, MeshNV, or TaskNV Execution Model", + "page": "vkspec" }, { "vuid": "VUID-NumSubgroups-NumSubgroups-04294", - "text": " The variable decorated with NumSubgroups must be declared using the Input {StorageClass}" + "text": "The variable decorated with NumSubgroups must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-NumSubgroups-NumSubgroups-04295", - "text": " The variable decorated with NumSubgroups must be declared as a scalar 32-bit integer value" + "text": "The variable decorated with NumSubgroups must be declared as a scalar 32-bit integer value", + "page": "vkspec" } ] }, @@ -24746,15 +30743,18 @@ "core": [ { "vuid": "VUID-NumWorkgroups-NumWorkgroups-04296", - "text": " The NumWorkgroups decoration must be used only within the GLCompute, MeshEXT, or TaskEXT {ExecutionModel}" + "text": "The NumWorkgroups decoration must be used only within the GLCompute, MeshEXT, or TaskEXT Execution Model", + "page": "vkspec" }, { "vuid": "VUID-NumWorkgroups-NumWorkgroups-04297", - "text": " The variable decorated with NumWorkgroups must be declared using the Input {StorageClass}" + "text": "The variable decorated with NumWorkgroups must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-NumWorkgroups-NumWorkgroups-04298", - "text": " The variable decorated with NumWorkgroups must be declared as a three-component vector of 32-bit integer values" + "text": "The variable decorated with NumWorkgroups must be declared as a three-component vector of 32-bit integer values", + "page": "vkspec" } ] }, @@ -24762,15 +30762,18 @@ "core": [ { "vuid": "VUID-ObjectRayDirectionKHR-ObjectRayDirectionKHR-04299", - "text": " The ObjectRayDirectionKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, or ClosestHitKHR {ExecutionModel}" + "text": "The ObjectRayDirectionKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, or ClosestHitKHR Execution Model", + "page": "vkspec" }, { "vuid": "VUID-ObjectRayDirectionKHR-ObjectRayDirectionKHR-04300", - "text": " The variable decorated with ObjectRayDirectionKHR must be declared using the Input {StorageClass}" + "text": "The variable decorated with ObjectRayDirectionKHR must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-ObjectRayDirectionKHR-ObjectRayDirectionKHR-04301", - "text": " The variable decorated with ObjectRayDirectionKHR must be declared as a three-component vector of 32-bit floating-point values" + "text": "The variable decorated with ObjectRayDirectionKHR must be declared as a three-component vector of 32-bit floating-point values", + "page": "vkspec" } ] }, @@ -24778,15 +30781,18 @@ "core": [ { "vuid": "VUID-ObjectRayOriginKHR-ObjectRayOriginKHR-04302", - "text": " The ObjectRayOriginKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, or ClosestHitKHR {ExecutionModel}" + "text": "The ObjectRayOriginKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, or ClosestHitKHR Execution Model", + "page": "vkspec" }, { "vuid": "VUID-ObjectRayOriginKHR-ObjectRayOriginKHR-04303", - "text": " The variable decorated with ObjectRayOriginKHR must be declared using the Input {StorageClass}" + "text": "The variable decorated with ObjectRayOriginKHR must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-ObjectRayOriginKHR-ObjectRayOriginKHR-04304", - "text": " The variable decorated with ObjectRayOriginKHR must be declared as a three-component vector of 32-bit floating-point values" + "text": "The variable decorated with ObjectRayOriginKHR must be declared as a three-component vector of 32-bit floating-point values", + "page": "vkspec" } ] }, @@ -24794,15 +30800,18 @@ "core": [ { "vuid": "VUID-ObjectToWorldKHR-ObjectToWorldKHR-04305", - "text": " The ObjectToWorldKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, or ClosestHitKHR {ExecutionModel}" + "text": "The ObjectToWorldKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, or ClosestHitKHR Execution Model", + "page": "vkspec" }, { "vuid": "VUID-ObjectToWorldKHR-ObjectToWorldKHR-04306", - "text": " The variable decorated with ObjectToWorldKHR must be declared using the Input {StorageClass}" + "text": "The variable decorated with ObjectToWorldKHR must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-ObjectToWorldKHR-ObjectToWorldKHR-04307", - "text": " The variable decorated with ObjectToWorldKHR must be declared as a matrix with four columns of three-component vectors of 32-bit floating-point values" + "text": "The variable decorated with ObjectToWorldKHR must be declared as a matrix with four columns of three-component vectors of 32-bit floating-point values", + "page": "vkspec" } ] }, @@ -24810,15 +30819,18 @@ "core": [ { "vuid": "VUID-PatchVertices-PatchVertices-04308", - "text": " The PatchVertices decoration must be used only within the TessellationControl or TessellationEvaluation {ExecutionModel}" + "text": "The PatchVertices decoration must be used only within the TessellationControl or TessellationEvaluation Execution Model", + "page": "vkspec" }, { "vuid": "VUID-PatchVertices-PatchVertices-04309", - "text": " The variable decorated with PatchVertices must be declared using the Input {StorageClass}" + "text": "The variable decorated with PatchVertices must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-PatchVertices-PatchVertices-04310", - "text": " The variable decorated with PatchVertices must be declared as a scalar 32-bit integer value" + "text": "The variable decorated with PatchVertices must be declared as a scalar 32-bit integer value", + "page": "vkspec" } ] }, @@ -24826,15 +30838,18 @@ "core": [ { "vuid": "VUID-PointCoord-PointCoord-04311", - "text": " The PointCoord decoration must be used only within the Fragment {ExecutionModel}" + "text": "The PointCoord decoration must be used only within the Fragment Execution Model", + "page": "vkspec" }, { "vuid": "VUID-PointCoord-PointCoord-04312", - "text": " The variable decorated with PointCoord must be declared using the Input {StorageClass}" + "text": "The variable decorated with PointCoord must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-PointCoord-PointCoord-04313", - "text": " The variable decorated with PointCoord must be declared as a two-component vector of 32-bit floating-point values" + "text": "The variable decorated with PointCoord must be declared as a two-component vector of 32-bit floating-point values", + "page": "vkspec" } ] }, @@ -24842,19 +30857,23 @@ "core": [ { "vuid": "VUID-PointSize-PointSize-04314", - "text": " The PointSize decoration must be used only within the MeshEXT, MeshNV, Vertex, TessellationControl, TessellationEvaluation, or Geometry {ExecutionModel}" + "text": "The PointSize decoration must be used only within the MeshEXT, MeshNV, Vertex, TessellationControl, TessellationEvaluation, or Geometry Execution Model", + "page": "vkspec" }, { "vuid": "VUID-PointSize-PointSize-04315", - "text": " The variable decorated with PointSize within the MeshEXT, MeshNV, or Vertex {ExecutionModel} must be declared using the Output {StorageClass}" + "text": "The variable decorated with PointSize within the MeshEXT, MeshNV, or Vertex Execution Model must be declared using the Output Storage Class", + "page": "vkspec" }, { "vuid": "VUID-PointSize-PointSize-04316", - "text": " The variable decorated with PointSize within the TessellationControl, TessellationEvaluation, or Geometry {ExecutionModel} must not be declared using a {StorageClass} other than Input or Output" + "text": "The variable decorated with PointSize within the TessellationControl, TessellationEvaluation, or Geometry Execution Model must not be declared using a Storage Class other than Input or Output", + "page": "vkspec" }, { "vuid": "VUID-PointSize-PointSize-04317", - "text": " The variable decorated with PointSize must be declared as a scalar 32-bit floating-point value" + "text": "The variable decorated with PointSize must be declared as a scalar 32-bit floating-point value", + "page": "vkspec" } ] }, @@ -24862,19 +30881,23 @@ "core": [ { "vuid": "VUID-Position-Position-04318", - "text": " The Position decoration must be used only within the MeshEXT, MeshNV, Vertex, TessellationControl, TessellationEvaluation, or Geometry {ExecutionModel}" + "text": "The Position decoration must be used only within the MeshEXT, MeshNV, Vertex, TessellationControl, TessellationEvaluation, or Geometry Execution Model", + "page": "vkspec" }, { "vuid": "VUID-Position-Position-04319", - "text": " The variable decorated with Position within the MeshEXT, MeshNV, or Vertex {ExecutionModel} must be declared using the Output {StorageClass}" + "text": "The variable decorated with Position within the MeshEXT, MeshNV, or Vertex Execution Model must be declared using the Output Storage Class", + "page": "vkspec" }, { "vuid": "VUID-Position-Position-04320", - "text": " The variable decorated with Position within the TessellationControl, TessellationEvaluation, or Geometry {ExecutionModel} must not be declared using a {StorageClass} other than Input or Output" + "text": "The variable decorated with Position within the TessellationControl, TessellationEvaluation, or Geometry Execution Model must not be declared using a Storage Class other than Input or Output", + "page": "vkspec" }, { "vuid": "VUID-Position-Position-04321", - "text": " The variable decorated with Position must be declared as a four-component vector of 32-bit floating-point values" + "text": "The variable decorated with Position must be declared as a four-component vector of 32-bit floating-point values", + "page": "vkspec" } ] }, @@ -24882,23 +30905,28 @@ "core": [ { "vuid": "VUID-PositionPerViewNV-PositionPerViewNV-04322", - "text": " The PositionPerViewNV decoration must be used only within the MeshNV, Vertex, TessellationControl, TessellationEvaluation, or Geometry {ExecutionModel}" + "text": "The PositionPerViewNV decoration must be used only within the MeshNV, Vertex, TessellationControl, TessellationEvaluation, or Geometry Execution Model", + "page": "vkspec" }, { "vuid": "VUID-PositionPerViewNV-PositionPerViewNV-04323", - "text": " The variable decorated with PositionPerViewNV within the Vertex, or MeshNV {ExecutionModel} must be declared using the Output {StorageClass}" + "text": "The variable decorated with PositionPerViewNV within the Vertex, or MeshNV Execution Model must be declared using the Output Storage Class", + "page": "vkspec" }, { "vuid": "VUID-PositionPerViewNV-PositionPerViewNV-04324", - "text": " The variable decorated with PositionPerViewNV within the TessellationControl, TessellationEvaluation, or Geometry {ExecutionModel} must not be declared using a {StorageClass} other than Input or Output" + "text": "The variable decorated with PositionPerViewNV within the TessellationControl, TessellationEvaluation, or Geometry Execution Model must not be declared using a Storage Class other than Input or Output", + "page": "vkspec" }, { "vuid": "VUID-PositionPerViewNV-PositionPerViewNV-04325", - "text": " The variable decorated with PositionPerViewNV must be declared as an array of four-component vector of 32-bit floating-point values with at least as many elements as the maximum view in the subpass’s view mask plus one" + "text": "The variable decorated with PositionPerViewNV must be declared as an array of four-component vector of 32-bit floating-point values with at least as many elements as the maximum view in the subpass’s view mask plus one", + "page": "vkspec" }, { "vuid": "VUID-PositionPerViewNV-PositionPerViewNV-04326", - "text": " The array variable decorated with PositionPerViewNV must only be indexed by a constant or specialization constant" + "text": "The array variable decorated with PositionPerViewNV must only be indexed by a constant or specialization constant", + "page": "vkspec" } ] }, @@ -24906,15 +30934,18 @@ "core": [ { "vuid": "VUID-PrimitiveCountNV-PrimitiveCountNV-04327", - "text": " The PrimitiveCountNV decoration must be used only within the MeshNV {ExecutionModel}" + "text": "The PrimitiveCountNV decoration must be used only within the MeshNV Execution Model", + "page": "vkspec" }, { "vuid": "VUID-PrimitiveCountNV-PrimitiveCountNV-04328", - "text": " The variable decorated with PrimitiveCountNV must be declared using the Output {StorageClass}" + "text": "The variable decorated with PrimitiveCountNV must be declared using the Output Storage Class", + "page": "vkspec" }, { "vuid": "VUID-PrimitiveCountNV-PrimitiveCountNV-04329", - "text": " The variable decorated with PrimitiveCountNV must be declared as a scalar 32-bit integer value" + "text": "The variable decorated with PrimitiveCountNV must be declared as a scalar 32-bit integer value", + "page": "vkspec" } ] }, @@ -24922,39 +30953,48 @@ "core": [ { "vuid": "VUID-PrimitiveId-PrimitiveId-04330", - "text": " The PrimitiveId decoration must be used only within the MeshEXT, MeshNV, IntersectionKHR, AnyHitKHR, ClosestHitKHR, TessellationControl, TessellationEvaluation, Geometry, or Fragment {ExecutionModel}" + "text": "The PrimitiveId decoration must be used only within the MeshEXT, MeshNV, IntersectionKHR, AnyHitKHR, ClosestHitKHR, TessellationControl, TessellationEvaluation, Geometry, or Fragment Execution Model", + "page": "vkspec" }, { "vuid": "VUID-PrimitiveId-Fragment-04331", - "text": " If pipeline contains both the Fragment and Geometry {ExecutionModel} and a variable decorated with PrimitiveId is read from Fragment shader, then the Geometry shader must write to the output variables decorated with PrimitiveId in all execution paths" + "text": "If pipeline contains both the Fragment and Geometry Execution Model and a variable decorated with PrimitiveId is read from Fragment shader, then the Geometry shader must write to the output variables decorated with PrimitiveId in all execution paths", + "page": "vkspec" }, { "vuid": "VUID-PrimitiveId-Fragment-04332", - "text": " If pipeline contains both the Fragment and MeshEXT or MeshNV {ExecutionModel} and a variable decorated with PrimitiveId is read from Fragment shader, then the MeshEXT or MeshNV shader must write to the output variables decorated with PrimitiveId in all execution paths" + "text": "If pipeline contains both the Fragment and MeshEXT or MeshNV Execution Model and a variable decorated with PrimitiveId is read from Fragment shader, then the MeshEXT or MeshNV shader must write to the output variables decorated with PrimitiveId in all execution paths", + "page": "vkspec" }, { "vuid": "VUID-PrimitiveId-Fragment-04333", - "text": " If Fragment {ExecutionModel} contains a variable decorated with PrimitiveId, then either the MeshShadingEXT, MeshShadingNV, Geometry or Tessellation capability must also be declared" + "text": "If Fragment Execution Model contains a variable decorated with PrimitiveId, then either the MeshShadingEXT, MeshShadingNV, Geometry or Tessellation capability must also be declared", + "page": "vkspec" }, { "vuid": "VUID-PrimitiveId-PrimitiveId-04334", - "text": " The variable decorated with PrimitiveId within the TessellationControl, TessellationEvaluation, Fragment, IntersectionKHR, AnyHitKHR, or ClosestHitKHR {ExecutionModel} must be declared using the Input {StorageClass}" + "text": "The variable decorated with PrimitiveId within the TessellationControl, TessellationEvaluation, Fragment, IntersectionKHR, AnyHitKHR, or ClosestHitKHR Execution Model must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-PrimitiveId-PrimitiveId-04335", - "text": " The variable decorated with PrimitiveId within the Geometry {ExecutionModel} must be declared using the Input or Output {StorageClass}" + "text": "The variable decorated with PrimitiveId within the Geometry Execution Model must be declared using the Input or Output Storage Class", + "page": "vkspec" }, { "vuid": "VUID-PrimitiveId-PrimitiveId-04336", - "text": " The variable decorated with PrimitiveId within the MeshEXT or MeshNV {ExecutionModel} must be declared using the Output {StorageClass}" + "text": "The variable decorated with PrimitiveId within the MeshEXT or MeshNV Execution Model must be declared using the Output Storage Class", + "page": "vkspec" }, { "vuid": "VUID-PrimitiveId-PrimitiveId-04337", - "text": " The variable decorated with PrimitiveId must be declared as a scalar 32-bit integer value" + "text": "The variable decorated with PrimitiveId must be declared as a scalar 32-bit integer value", + "page": "vkspec" }, { "vuid": "VUID-PrimitiveId-PrimitiveId-07040", - "text": " The variable decorated with PrimitiveId within the MeshEXT {ExecutionModel} must also be decorated with the PerPrimitiveEXT decoration" + "text": "The variable decorated with PrimitiveId within the MeshEXT Execution Model must also be decorated with the PerPrimitiveEXT decoration", + "page": "vkspec" } ] }, @@ -24962,31 +31002,38 @@ "core": [ { "vuid": "VUID-PrimitiveIndicesNV-PrimitiveIndicesNV-04338", - "text": " The PrimitiveIndicesNV decoration must be used only within the MeshNV {ExecutionModel}" + "text": "The PrimitiveIndicesNV decoration must be used only within the MeshNV Execution Model", + "page": "vkspec" }, { "vuid": "VUID-PrimitiveIndicesNV-PrimitiveIndicesNV-04339", - "text": " The variable decorated with PrimitiveIndicesNV must be declared using the Output {StorageClass}" + "text": "The variable decorated with PrimitiveIndicesNV must be declared using the Output Storage Class", + "page": "vkspec" }, { "vuid": "VUID-PrimitiveIndicesNV-PrimitiveIndicesNV-04340", - "text": " The variable decorated with PrimitiveIndicesNV must be declared as an array of scalar 32-bit integer values" + "text": "The variable decorated with PrimitiveIndicesNV must be declared as an array of scalar 32-bit integer values", + "page": "vkspec" }, { "vuid": "VUID-PrimitiveIndicesNV-PrimitiveIndicesNV-04341", - "text": " All index values of the array decorated with PrimitiveIndicesNV must be in the range [0, N-1], where N is the value specified by the OutputVertices {ExecutionMode}" + "text": "All index values of the array decorated with PrimitiveIndicesNV must be in the range [0, N-1], where N is the value specified by the OutputVertices Execution Mode", + "page": "vkspec" }, { "vuid": "VUID-PrimitiveIndicesNV-OutputPoints-04342", - "text": " If the {ExecutionMode} is OutputPoints, then the array decorated with PrimitiveIndicesNV must be the size of the value specified by OutputPrimitivesNV" + "text": "If the Execution Mode is OutputPoints, then the array decorated with PrimitiveIndicesNV must be the size of the value specified by OutputPrimitivesNV", + "page": "vkspec" }, { "vuid": "VUID-PrimitiveIndicesNV-OutputLinesNV-04343", - "text": " If the {ExecutionMode} is OutputLinesNV, then the array decorated with PrimitiveIndicesNV must be the size of two times the value specified by OutputPrimitivesNV" + "text": "If the Execution Mode is OutputLinesNV, then the array decorated with PrimitiveIndicesNV must be the size of two times the value specified by OutputPrimitivesNV", + "page": "vkspec" }, { "vuid": "VUID-PrimitiveIndicesNV-OutputTrianglesNV-04344", - "text": " If the {ExecutionMode} is OutputTrianglesNV, then the array decorated with PrimitiveIndicesNV must be the size of three times the value specified by OutputPrimitivesNV" + "text": "If the Execution Mode is OutputTrianglesNV, then the array decorated with PrimitiveIndicesNV must be the size of three times the value specified by OutputPrimitivesNV", + "page": "vkspec" } ] }, @@ -24994,27 +31041,33 @@ "core": [ { "vuid": "VUID-PrimitivePointIndicesEXT-PrimitivePointIndicesEXT-07041", - "text": " The PrimitivePointIndicesEXT decoration must be used only within the MeshEXT {ExecutionModel}" + "text": "The PrimitivePointIndicesEXT decoration must be used only within the MeshEXT Execution Model", + "page": "vkspec" }, { "vuid": "VUID-PrimitivePointIndicesEXT-PrimitivePointIndicesEXT-07042", - "text": " The PrimitivePointIndicesEXT decoration must be used with the OutputPoints {ExecutionMode}" + "text": "The PrimitivePointIndicesEXT decoration must be used with the OutputPoints Execution Mode", + "page": "vkspec" }, { "vuid": "VUID-PrimitivePointIndicesEXT-PrimitivePointIndicesEXT-07043", - "text": " The variable decorated with PrimitivePointIndicesEXT must be declared using the Output {StorageClass}" + "text": "The variable decorated with PrimitivePointIndicesEXT must be declared using the Output Storage Class", + "page": "vkspec" }, { "vuid": "VUID-PrimitivePointIndicesEXT-PrimitivePointIndicesEXT-07044", - "text": " The variable decorated with PrimitivePointIndicesEXT must be declared as an array of scalar 32-bit integer values" + "text": "The variable decorated with PrimitivePointIndicesEXT must be declared as an array of scalar 32-bit integer values", + "page": "vkspec" }, { "vuid": "VUID-PrimitivePointIndicesEXT-PrimitivePointIndicesEXT-07045", - "text": " All index values of the array decorated with PrimitivePointIndicesEXT must be in the range [0, N-1], where N is the value specified by the OutputVertices {ExecutionMode}" + "text": "All index values of the array decorated with PrimitivePointIndicesEXT must be in the range [0, N-1], where N is the value specified by the OutputVertices Execution Mode", + "page": "vkspec" }, { "vuid": "VUID-PrimitivePointIndicesEXT-PrimitivePointIndicesEXT-07046", - "text": " The size of the array decorated with PrimitivePointIndicesEXT must match the value specified by OutputPrimitivesEXT" + "text": "The size of the array decorated with PrimitivePointIndicesEXT must match the value specified by OutputPrimitivesEXT", + "page": "vkspec" } ] }, @@ -25022,27 +31075,33 @@ "core": [ { "vuid": "VUID-PrimitiveLineIndicesEXT-PrimitiveLineIndicesEXT-07047", - "text": " The PrimitiveLineIndicesEXT decoration must be used only within the MeshEXT {ExecutionModel}" + "text": "The PrimitiveLineIndicesEXT decoration must be used only within the MeshEXT Execution Model", + "page": "vkspec" }, { "vuid": "VUID-PrimitiveLineIndicesEXT-PrimitiveLineIndicesEXT-07048", - "text": " The PrimitiveLineIndicesEXT decoration must be used with the OutputLinesEXT {ExecutionMode}" + "text": "The PrimitiveLineIndicesEXT decoration must be used with the OutputLinesEXT Execution Mode", + "page": "vkspec" }, { "vuid": "VUID-PrimitiveLineIndicesEXT-PrimitiveLineIndicesEXT-07049", - "text": " The variable decorated with PrimitiveLineIndicesEXT must be declared using the Output {StorageClass}" + "text": "The variable decorated with PrimitiveLineIndicesEXT must be declared using the Output Storage Class", + "page": "vkspec" }, { "vuid": "VUID-PrimitiveLineIndicesEXT-PrimitiveLineIndicesEXT-07050", - "text": " The variable decorated with PrimitiveLineIndicesEXT must be declared as an array of two component vector 32-bit integer values" + "text": "The variable decorated with PrimitiveLineIndicesEXT must be declared as an array of two component vector 32-bit integer values", + "page": "vkspec" }, { "vuid": "VUID-PrimitiveLineIndicesEXT-PrimitiveLineIndicesEXT-07051", - "text": " All index values of the array decorated with PrimitiveLineIndicesEXT must be in the range [0, N-1], where N is the value specified by the OutputVertices {ExecutionMode}" + "text": "All index values of the array decorated with PrimitiveLineIndicesEXT must be in the range [0, N-1], where N is the value specified by the OutputVertices Execution Mode", + "page": "vkspec" }, { "vuid": "VUID-PrimitiveLineIndicesEXT-PrimitiveLineIndicesEXT-07052", - "text": " The size of the array decorated with PrimitiveLineIndicesEXT must match the value specified by OutputPrimitivesEXT" + "text": "The size of the array decorated with PrimitiveLineIndicesEXT must match the value specified by OutputPrimitivesEXT", + "page": "vkspec" } ] }, @@ -25050,27 +31109,33 @@ "core": [ { "vuid": "VUID-PrimitiveTriangleIndicesEXT-PrimitiveTriangleIndicesEXT-07053", - "text": " The PrimitiveTriangleIndicesEXT decoration must be used only within the MeshEXT {ExecutionModel}" + "text": "The PrimitiveTriangleIndicesEXT decoration must be used only within the MeshEXT Execution Model", + "page": "vkspec" }, { "vuid": "VUID-PrimitiveTriangleIndicesEXT-PrimitiveTriangleIndicesEXT-07054", - "text": " The PrimitiveTriangleIndicesEXT decoration must be used with the OutputTrianglesEXT {ExecutionMode}" + "text": "The PrimitiveTriangleIndicesEXT decoration must be used with the OutputTrianglesEXT Execution Mode", + "page": "vkspec" }, { "vuid": "VUID-PrimitiveTriangleIndicesEXT-PrimitiveTriangleIndicesEXT-07055", - "text": " The variable decorated with PrimitiveTriangleIndicesEXT must be declared using the Output {StorageClass}" + "text": "The variable decorated with PrimitiveTriangleIndicesEXT must be declared using the Output Storage Class", + "page": "vkspec" }, { "vuid": "VUID-PrimitiveTriangleIndicesEXT-PrimitiveTriangleIndicesEXT-07056", - "text": " The variable decorated with PrimitiveTriangleIndicesEXT must be declared as an array of three component vector 32-bit integer values" + "text": "The variable decorated with PrimitiveTriangleIndicesEXT must be declared as an array of three component vector 32-bit integer values", + "page": "vkspec" }, { "vuid": "VUID-PrimitiveTriangleIndicesEXT-PrimitiveTriangleIndicesEXT-07057", - "text": " All index values of the array decorated with PrimitiveTriangleIndicesEXT must be in the range [0, N-1], where N is the value specified by the OutputVertices {ExecutionMode}" + "text": "All index values of the array decorated with PrimitiveTriangleIndicesEXT must be in the range [0, N-1], where N is the value specified by the OutputVertices Execution Mode", + "page": "vkspec" }, { "vuid": "VUID-PrimitiveTriangleIndicesEXT-PrimitiveTriangleIndicesEXT-07058", - "text": " The size of the array decorated with PrimitiveTriangleIndicesEXT must match the value specified by OutputPrimitivesEXT" + "text": "The size of the array decorated with PrimitiveTriangleIndicesEXT must match the value specified by OutputPrimitivesEXT", + "page": "vkspec" } ] }, @@ -25078,31 +31143,38 @@ "core": [ { "vuid": "VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-04484", - "text": " The PrimitiveShadingRateKHR decoration must be used only within the MeshEXT, MeshNV, Vertex, or Geometry {ExecutionModel}" + "text": "The PrimitiveShadingRateKHR decoration must be used only within the MeshEXT, MeshNV, Vertex, or Geometry Execution Model", + "page": "vkspec" }, { "vuid": "VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-04485", - "text": " The variable decorated with PrimitiveShadingRateKHR must be declared using the Output {StorageClass}" + "text": "The variable decorated with PrimitiveShadingRateKHR must be declared using the Output Storage Class", + "page": "vkspec" }, { "vuid": "VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-04486", - "text": " The variable decorated with PrimitiveShadingRateKHR must be declared as a scalar 32-bit integer value" + "text": "The variable decorated with PrimitiveShadingRateKHR must be declared as a scalar 32-bit integer value", + "page": "vkspec" }, { "vuid": "VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-04487", - "text": " The value written to PrimitiveShadingRateKHR must include no more than one of Vertical2Pixels and Vertical4Pixels" + "text": "The value written to PrimitiveShadingRateKHR must include no more than one of Vertical2Pixels and Vertical4Pixels", + "page": "vkspec" }, { "vuid": "VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-04488", - "text": " The value written to PrimitiveShadingRateKHR must include no more than one of Horizontal2Pixels and Horizontal4Pixels" + "text": "The value written to PrimitiveShadingRateKHR must include no more than one of Horizontal2Pixels and Horizontal4Pixels", + "page": "vkspec" }, { "vuid": "VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-04489", - "text": " The value written to PrimitiveShadingRateKHR must not have any bits set other than those defined by Fragment Shading Rate Flags enumerants in the SPIR-V specification" + "text": "The value written to PrimitiveShadingRateKHR must not have any bits set other than those defined by Fragment Shading Rate Flags enumerants in the SPIR-V specification", + "page": "vkspec" }, { "vuid": "VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-07059", - "text": " The variable decorated with PrimitiveShadingRateKHR within the MeshEXT {ExecutionModel} must also be decorated with the PerPrimitiveEXT decoration" + "text": "The variable decorated with PrimitiveShadingRateKHR within the MeshEXT Execution Model must also be decorated with the PerPrimitiveEXT decoration", + "page": "vkspec" } ] }, @@ -25110,15 +31182,18 @@ "core": [ { "vuid": "VUID-RayGeometryIndexKHR-RayGeometryIndexKHR-04345", - "text": " The RayGeometryIndexKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, or ClosestHitKHR {ExecutionModel}" + "text": "The RayGeometryIndexKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, or ClosestHitKHR Execution Model", + "page": "vkspec" }, { "vuid": "VUID-RayGeometryIndexKHR-RayGeometryIndexKHR-04346", - "text": " The variable decorated with RayGeometryIndexKHR must be declared using the Input {StorageClass}" + "text": "The variable decorated with RayGeometryIndexKHR must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-RayGeometryIndexKHR-RayGeometryIndexKHR-04347", - "text": " The variable decorated with RayGeometryIndexKHR must be declared as a scalar 32-bit integer value" + "text": "The variable decorated with RayGeometryIndexKHR must be declared as a scalar 32-bit integer value", + "page": "vkspec" } ] }, @@ -25126,15 +31201,18 @@ "core": [ { "vuid": "VUID-RayTmaxKHR-RayTmaxKHR-04348", - "text": " The RayTmaxKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, ClosestHitKHR, or MissKHR {ExecutionModel}" + "text": "The RayTmaxKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, ClosestHitKHR, or MissKHR Execution Model", + "page": "vkspec" }, { "vuid": "VUID-RayTmaxKHR-RayTmaxKHR-04349", - "text": " The variable decorated with RayTmaxKHR must be declared using the Input {StorageClass}" + "text": "The variable decorated with RayTmaxKHR must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-RayTmaxKHR-RayTmaxKHR-04350", - "text": " The variable decorated with RayTmaxKHR must be declared as a scalar 32-bit floating-point value" + "text": "The variable decorated with RayTmaxKHR must be declared as a scalar 32-bit floating-point value", + "page": "vkspec" } ] }, @@ -25142,15 +31220,18 @@ "core": [ { "vuid": "VUID-RayTminKHR-RayTminKHR-04351", - "text": " The RayTminKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, ClosestHitKHR, or MissKHR {ExecutionModel}" + "text": "The RayTminKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, ClosestHitKHR, or MissKHR Execution Model", + "page": "vkspec" }, { "vuid": "VUID-RayTminKHR-RayTminKHR-04352", - "text": " The variable decorated with RayTminKHR must be declared using the Input {StorageClass}" + "text": "The variable decorated with RayTminKHR must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-RayTminKHR-RayTminKHR-04353", - "text": " The variable decorated with RayTminKHR must be declared as a scalar 32-bit floating-point value" + "text": "The variable decorated with RayTminKHR must be declared as a scalar 32-bit floating-point value", + "page": "vkspec" } ] }, @@ -25158,15 +31239,18 @@ "core": [ { "vuid": "VUID-SampleId-SampleId-04354", - "text": " The SampleId decoration must be used only within the Fragment {ExecutionModel}" + "text": "The SampleId decoration must be used only within the Fragment Execution Model", + "page": "vkspec" }, { "vuid": "VUID-SampleId-SampleId-04355", - "text": " The variable decorated with SampleId must be declared using the Input {StorageClass}" + "text": "The variable decorated with SampleId must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-SampleId-SampleId-04356", - "text": " The variable decorated with SampleId must be declared as a scalar 32-bit integer value" + "text": "The variable decorated with SampleId must be declared as a scalar 32-bit integer value", + "page": "vkspec" } ] }, @@ -25174,15 +31258,18 @@ "core": [ { "vuid": "VUID-SampleMask-SampleMask-04357", - "text": " The SampleMask decoration must be used only within the Fragment {ExecutionModel}" + "text": "The SampleMask decoration must be used only within the Fragment Execution Model", + "page": "vkspec" }, { "vuid": "VUID-SampleMask-SampleMask-04358", - "text": " The variable decorated with SampleMask must be declared using the Input or Output {StorageClass}" + "text": "The variable decorated with SampleMask must be declared using the Input or Output Storage Class", + "page": "vkspec" }, { "vuid": "VUID-SampleMask-SampleMask-04359", - "text": " The variable decorated with SampleMask must be declared as an array of 32-bit integer values" + "text": "The variable decorated with SampleMask must be declared as an array of 32-bit integer values", + "page": "vkspec" } ] }, @@ -25190,15 +31277,18 @@ "core": [ { "vuid": "VUID-SamplePosition-SamplePosition-04360", - "text": " The SamplePosition decoration must be used only within the Fragment {ExecutionModel}" + "text": "The SamplePosition decoration must be used only within the Fragment Execution Model", + "page": "vkspec" }, { "vuid": "VUID-SamplePosition-SamplePosition-04361", - "text": " The variable decorated with SamplePosition must be declared using the Input {StorageClass}" + "text": "The variable decorated with SamplePosition must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-SamplePosition-SamplePosition-04362", - "text": " The variable decorated with SamplePosition must be declared as a two-component vector of 32-bit floating-point values" + "text": "The variable decorated with SamplePosition must be declared as a two-component vector of 32-bit floating-point values", + "page": "vkspec" } ] }, @@ -25206,15 +31296,18 @@ "core": [ { "vuid": "VUID-ShadingRateKHR-ShadingRateKHR-04490", - "text": " The ShadingRateKHR decoration must be used only within the Fragment {ExecutionModel}" + "text": "The ShadingRateKHR decoration must be used only within the Fragment Execution Model", + "page": "vkspec" }, { "vuid": "VUID-ShadingRateKHR-ShadingRateKHR-04491", - "text": " The variable decorated with ShadingRateKHR must be declared using the Input {StorageClass}" + "text": "The variable decorated with ShadingRateKHR must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-ShadingRateKHR-ShadingRateKHR-04492", - "text": " The variable decorated with ShadingRateKHR must be declared as a scalar 32-bit integer value" + "text": "The variable decorated with ShadingRateKHR must be declared as a scalar 32-bit integer value", + "page": "vkspec" } ] }, @@ -25222,11 +31315,13 @@ "core": [ { "vuid": "VUID-SMCountNV-SMCountNV-04363", - "text": " The variable decorated with SMCountNV must be declared using the Input {StorageClass}" + "text": "The variable decorated with SMCountNV must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-SMCountNV-SMCountNV-04364", - "text": " The variable decorated with SMCountNV must be declared as a scalar 32-bit integer value" + "text": "The variable decorated with SMCountNV must be declared as a scalar 32-bit integer value", + "page": "vkspec" } ] }, @@ -25234,11 +31329,13 @@ "core": [ { "vuid": "VUID-SMIDNV-SMIDNV-04365", - "text": " The variable decorated with SMIDNV must be declared using the Input {StorageClass}" + "text": "The variable decorated with SMIDNV must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-SMIDNV-SMIDNV-04366", - "text": " The variable decorated with SMIDNV must be declared as a scalar 32-bit integer value" + "text": "The variable decorated with SMIDNV must be declared as a scalar 32-bit integer value", + "page": "vkspec" } ] }, @@ -25246,15 +31343,18 @@ "core": [ { "vuid": "VUID-SubgroupId-SubgroupId-04367", - "text": " The SubgroupId decoration must be used only within the GLCompute, MeshEXT, TaskEXT, MeshNV, or TaskNV {ExecutionModel}" + "text": "The SubgroupId decoration must be used only within the GLCompute, MeshEXT, TaskEXT, MeshNV, or TaskNV Execution Model", + "page": "vkspec" }, { "vuid": "VUID-SubgroupId-SubgroupId-04368", - "text": " The variable decorated with SubgroupId must be declared using the Input {StorageClass}" + "text": "The variable decorated with SubgroupId must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-SubgroupId-SubgroupId-04369", - "text": " The variable decorated with SubgroupId must be declared as a scalar 32-bit integer value" + "text": "The variable decorated with SubgroupId must be declared as a scalar 32-bit integer value", + "page": "vkspec" } ] }, @@ -25262,11 +31362,13 @@ "core": [ { "vuid": "VUID-SubgroupEqMask-SubgroupEqMask-04370", - "text": " The variable decorated with SubgroupEqMask must be declared using the Input {StorageClass}" + "text": "The variable decorated with SubgroupEqMask must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-SubgroupEqMask-SubgroupEqMask-04371", - "text": " The variable decorated with SubgroupEqMask must be declared as a four-component vector of 32-bit integer values" + "text": "The variable decorated with SubgroupEqMask must be declared as a four-component vector of 32-bit integer values", + "page": "vkspec" } ] }, @@ -25274,11 +31376,13 @@ "core": [ { "vuid": "VUID-SubgroupGeMask-SubgroupGeMask-04372", - "text": " The variable decorated with SubgroupGeMask must be declared using the Input {StorageClass}" + "text": "The variable decorated with SubgroupGeMask must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-SubgroupGeMask-SubgroupGeMask-04373", - "text": " The variable decorated with SubgroupGeMask must be declared as a four-component vector of 32-bit integer values" + "text": "The variable decorated with SubgroupGeMask must be declared as a four-component vector of 32-bit integer values", + "page": "vkspec" } ] }, @@ -25286,11 +31390,13 @@ "core": [ { "vuid": "VUID-SubgroupGtMask-SubgroupGtMask-04374", - "text": " The variable decorated with SubgroupGtMask must be declared using the Input {StorageClass}" + "text": "The variable decorated with SubgroupGtMask must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-SubgroupGtMask-SubgroupGtMask-04375", - "text": " The variable decorated with SubgroupGtMask must be declared as a four-component vector of 32-bit integer values" + "text": "The variable decorated with SubgroupGtMask must be declared as a four-component vector of 32-bit integer values", + "page": "vkspec" } ] }, @@ -25298,11 +31404,13 @@ "core": [ { "vuid": "VUID-SubgroupLeMask-SubgroupLeMask-04376", - "text": " The variable decorated with SubgroupLeMask must be declared using the Input {StorageClass}" + "text": "The variable decorated with SubgroupLeMask must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-SubgroupLeMask-SubgroupLeMask-04377", - "text": " The variable decorated with SubgroupLeMask must be declared as a four-component vector of 32-bit integer values" + "text": "The variable decorated with SubgroupLeMask must be declared as a four-component vector of 32-bit integer values", + "page": "vkspec" } ] }, @@ -25310,11 +31418,13 @@ "core": [ { "vuid": "VUID-SubgroupLtMask-SubgroupLtMask-04378", - "text": " The variable decorated with SubgroupLtMask must be declared using the Input {StorageClass}" + "text": "The variable decorated with SubgroupLtMask must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-SubgroupLtMask-SubgroupLtMask-04379", - "text": " The variable decorated with SubgroupLtMask must be declared as a four-component vector of 32-bit integer values" + "text": "The variable decorated with SubgroupLtMask must be declared as a four-component vector of 32-bit integer values", + "page": "vkspec" } ] }, @@ -25322,11 +31432,13 @@ "core": [ { "vuid": "VUID-SubgroupLocalInvocationId-SubgroupLocalInvocationId-04380", - "text": " The variable decorated with SubgroupLocalInvocationId must be declared using the Input {StorageClass}" + "text": "The variable decorated with SubgroupLocalInvocationId must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-SubgroupLocalInvocationId-SubgroupLocalInvocationId-04381", - "text": " The variable decorated with SubgroupLocalInvocationId must be declared as a scalar 32-bit integer value" + "text": "The variable decorated with SubgroupLocalInvocationId must be declared as a scalar 32-bit integer value", + "page": "vkspec" } ] }, @@ -25334,11 +31446,13 @@ "core": [ { "vuid": "VUID-SubgroupSize-SubgroupSize-04382", - "text": " The variable decorated with SubgroupSize must be declared using the Input {StorageClass}" + "text": "The variable decorated with SubgroupSize must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-SubgroupSize-SubgroupSize-04383", - "text": " The variable decorated with SubgroupSize must be declared as a scalar 32-bit integer value" + "text": "The variable decorated with SubgroupSize must be declared as a scalar 32-bit integer value", + "page": "vkspec" } ] }, @@ -25346,15 +31460,18 @@ "core": [ { "vuid": "VUID-TaskCountNV-TaskCountNV-04384", - "text": " The TaskCountNV decoration must be used only within the TaskNV {ExecutionModel}" + "text": "The TaskCountNV decoration must be used only within the TaskNV Execution Model", + "page": "vkspec" }, { "vuid": "VUID-TaskCountNV-TaskCountNV-04385", - "text": " The variable decorated with TaskCountNV must be declared using the Output {StorageClass}" + "text": "The variable decorated with TaskCountNV must be declared using the Output Storage Class", + "page": "vkspec" }, { "vuid": "VUID-TaskCountNV-TaskCountNV-04386", - "text": " The variable decorated with TaskCountNV must be declared as a scalar 32-bit integer value" + "text": "The variable decorated with TaskCountNV must be declared as a scalar 32-bit integer value", + "page": "vkspec" } ] }, @@ -25362,15 +31479,18 @@ "core": [ { "vuid": "VUID-TessCoord-TessCoord-04387", - "text": " The TessCoord decoration must be used only within the TessellationEvaluation {ExecutionModel}" + "text": "The TessCoord decoration must be used only within the TessellationEvaluation Execution Model", + "page": "vkspec" }, { "vuid": "VUID-TessCoord-TessCoord-04388", - "text": " The variable decorated with TessCoord must be declared using the Input {StorageClass}" + "text": "The variable decorated with TessCoord must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-TessCoord-TessCoord-04389", - "text": " The variable decorated with TessCoord must be declared as a three-component vector of 32-bit floating-point values" + "text": "The variable decorated with TessCoord must be declared as a three-component vector of 32-bit floating-point values", + "page": "vkspec" } ] }, @@ -25378,19 +31498,23 @@ "core": [ { "vuid": "VUID-TessLevelOuter-TessLevelOuter-04390", - "text": " The TessLevelOuter decoration must be used only within the TessellationControl or TessellationEvaluation {ExecutionModel}" + "text": "The TessLevelOuter decoration must be used only within the TessellationControl or TessellationEvaluation Execution Model", + "page": "vkspec" }, { "vuid": "VUID-TessLevelOuter-TessLevelOuter-04391", - "text": " The variable decorated with TessLevelOuter within the TessellationControl {ExecutionModel} must be declared using the Output {StorageClass}" + "text": "The variable decorated with TessLevelOuter within the TessellationControl Execution Model must be declared using the Output Storage Class", + "page": "vkspec" }, { "vuid": "VUID-TessLevelOuter-TessLevelOuter-04392", - "text": " The variable decorated with TessLevelOuter within the TessellationEvaluation {ExecutionModel} must be declared using the Input {StorageClass}" + "text": "The variable decorated with TessLevelOuter within the TessellationEvaluation Execution Model must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-TessLevelOuter-TessLevelOuter-04393", - "text": " The variable decorated with TessLevelOuter must be declared as an array of size four, containing 32-bit floating-point values" + "text": "The variable decorated with TessLevelOuter must be declared as an array of size four, containing 32-bit floating-point values", + "page": "vkspec" } ] }, @@ -25398,19 +31522,23 @@ "core": [ { "vuid": "VUID-TessLevelInner-TessLevelInner-04394", - "text": " The TessLevelInner decoration must be used only within the TessellationControl or TessellationEvaluation {ExecutionModel}" + "text": "The TessLevelInner decoration must be used only within the TessellationControl or TessellationEvaluation Execution Model", + "page": "vkspec" }, { "vuid": "VUID-TessLevelInner-TessLevelInner-04395", - "text": " The variable decorated with TessLevelInner within the TessellationControl {ExecutionModel} must be declared using the Output {StorageClass}" + "text": "The variable decorated with TessLevelInner within the TessellationControl Execution Model must be declared using the Output Storage Class", + "page": "vkspec" }, { "vuid": "VUID-TessLevelInner-TessLevelInner-04396", - "text": " The variable decorated with TessLevelInner within the TessellationEvaluation {ExecutionModel} must be declared using the Input {StorageClass}" + "text": "The variable decorated with TessLevelInner within the TessellationEvaluation Execution Model must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-TessLevelInner-TessLevelInner-04397", - "text": " The variable decorated with TessLevelInner must be declared as an array of size two, containing 32-bit floating-point values" + "text": "The variable decorated with TessLevelInner must be declared as an array of size two, containing 32-bit floating-point values", + "page": "vkspec" } ] }, @@ -25418,11 +31546,13 @@ "core": [ { "vuid": "VUID-VertexCountHUAWEI-VertexCountHUAWEI-07809", - "text": " The VertexCountHUAWEI decoration must be used only within the ClusterCullingHUAWEI {ExecutionModel}" + "text": "The VertexCountHUAWEI decoration must be used only within the ClusterCullingHUAWEI Execution Model", + "page": "vkspec" }, { "vuid": "VUID-VertexCountHUAWEI-VertexCountHUAWEI-07810", - "text": " The variable decorated with VertexCountHUAWEI must be declared as a scalar 32-bit integer value" + "text": "The variable decorated with VertexCountHUAWEI must be declared as a scalar 32-bit integer value", + "page": "vkspec" } ] }, @@ -25430,15 +31560,18 @@ "core": [ { "vuid": "VUID-VertexIndex-VertexIndex-04398", - "text": " The VertexIndex decoration must be used only within the Vertex {ExecutionModel}" + "text": "The VertexIndex decoration must be used only within the Vertex Execution Model", + "page": "vkspec" }, { "vuid": "VUID-VertexIndex-VertexIndex-04399", - "text": " The variable decorated with VertexIndex must be declared using the Input {StorageClass}" + "text": "The variable decorated with VertexIndex must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-VertexIndex-VertexIndex-04400", - "text": " The variable decorated with VertexIndex must be declared as a scalar 32-bit integer value" + "text": "The variable decorated with VertexIndex must be declared as a scalar 32-bit integer value", + "page": "vkspec" } ] }, @@ -25446,11 +31579,13 @@ "core": [ { "vuid": "VUID-VertexOffsetHUAWEI-VertexOffsetHUAWEI-07811", - "text": " The VertexOffsetHUAWEI decoration must be used only within the ClusterCullingHUAWEI {ExecutionModel}" + "text": "The VertexOffsetHUAWEI decoration must be used only within the ClusterCullingHUAWEI Execution Model", + "page": "vkspec" }, { "vuid": "VUID-VertexOffsetHUAWEI-VertexOffsetHUAWEI-07812", - "text": " The variable decorated with VertexOffsetHUAWEI must be declared as a scalar 32-bit integer value" + "text": "The variable decorated with VertexOffsetHUAWEI must be declared as a scalar 32-bit integer value", + "page": "vkspec" } ] }, @@ -25458,15 +31593,18 @@ "core": [ { "vuid": "VUID-ViewIndex-ViewIndex-04401", - "text": " The ViewIndex decoration must be used only within the MeshEXT, Vertex, Geometry, TessellationControl, TessellationEvaluation or Fragment {ExecutionModel}" + "text": "The ViewIndex decoration must be used only within the MeshEXT, Vertex, Geometry, TessellationControl, TessellationEvaluation or Fragment Execution Model", + "page": "vkspec" }, { "vuid": "VUID-ViewIndex-ViewIndex-04402", - "text": " The variable decorated with ViewIndex must be declared using the Input {StorageClass}" + "text": "The variable decorated with ViewIndex must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-ViewIndex-ViewIndex-04403", - "text": " The variable decorated with ViewIndex must be declared as a scalar 32-bit integer value" + "text": "The variable decorated with ViewIndex must be declared as a scalar 32-bit integer value", + "page": "vkspec" } ] }, @@ -25474,27 +31612,33 @@ "core": [ { "vuid": "VUID-ViewportIndex-ViewportIndex-04404", - "text": " The ViewportIndex decoration must be used only within the MeshEXT, MeshNV, Vertex, TessellationEvaluation, Geometry, or Fragment {ExecutionModel}" + "text": "The ViewportIndex decoration must be used only within the MeshEXT, MeshNV, Vertex, TessellationEvaluation, Geometry, or Fragment Execution Model", + "page": "vkspec" }, { "vuid": "VUID-ViewportIndex-ViewportIndex-04405", - "text": " If the shaderOutputViewportIndex feature is not enabled then the ViewportIndex decoration must be used only within the Geometry or Fragment {ExecutionModel}" + "text": "If the shaderOutputViewportIndex feature is not enabled then the ViewportIndex decoration must be used only within the Geometry or Fragment Execution Model", + "page": "vkspec" }, { "vuid": "VUID-ViewportIndex-ViewportIndex-04406", - "text": " The variable decorated with ViewportIndex within the MeshEXT, MeshNV, Vertex, TessellationEvaluation, or Geometry {ExecutionModel} must be declared using the Output {StorageClass}" + "text": "The variable decorated with ViewportIndex within the MeshEXT, MeshNV, Vertex, TessellationEvaluation, or Geometry Execution Model must be declared using the Output Storage Class", + "page": "vkspec" }, { "vuid": "VUID-ViewportIndex-ViewportIndex-04407", - "text": " The variable decorated with ViewportIndex within the Fragment {ExecutionModel} must be declared using the Input {StorageClass}" + "text": "The variable decorated with ViewportIndex within the Fragment Execution Model must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-ViewportIndex-ViewportIndex-04408", - "text": " The variable decorated with ViewportIndex must be declared as a scalar 32-bit integer value" + "text": "The variable decorated with ViewportIndex must be declared as a scalar 32-bit integer value", + "page": "vkspec" }, { "vuid": "VUID-ViewportIndex-ViewportIndex-07060", - "text": " The variable decorated with ViewportIndex within the MeshEXT {ExecutionModel} must also be decorated with the PerPrimitiveEXT decoration" + "text": "The variable decorated with ViewportIndex within the MeshEXT Execution Model must also be decorated with the PerPrimitiveEXT decoration", + "page": "vkspec" } ] }, @@ -25502,15 +31646,18 @@ "core": [ { "vuid": "VUID-ViewportMaskNV-ViewportMaskNV-04409", - "text": " The ViewportMaskNV decoration must be used only within the Vertex, MeshNV, TessellationEvaluation, or Geometry {ExecutionModel}" + "text": "The ViewportMaskNV decoration must be used only within the Vertex, MeshNV, TessellationEvaluation, or Geometry Execution Model", + "page": "vkspec" }, { "vuid": "VUID-ViewportMaskNV-ViewportMaskNV-04410", - "text": " The variable decorated with ViewportMaskNV must be declared using the Output {StorageClass}" + "text": "The variable decorated with ViewportMaskNV must be declared using the Output Storage Class", + "page": "vkspec" }, { "vuid": "VUID-ViewportMaskNV-ViewportMaskNV-04411", - "text": " The variable decorated with ViewportMaskNV must be declared as an array of 32-bit integer values" + "text": "The variable decorated with ViewportMaskNV must be declared as an array of 32-bit integer values", + "page": "vkspec" } ] }, @@ -25518,27 +31665,33 @@ "core": [ { "vuid": "VUID-ViewportMaskPerViewNV-ViewportMaskPerViewNV-04412", - "text": " The ViewportMaskPerViewNV decoration must be used only within the Vertex, MeshNV, TessellationControl, TessellationEvaluation, or Geometry {ExecutionModel}" + "text": "The ViewportMaskPerViewNV decoration must be used only within the Vertex, MeshNV, TessellationControl, TessellationEvaluation, or Geometry Execution Model", + "page": "vkspec" }, { "vuid": "VUID-ViewportMaskPerViewNV-ViewportMaskPerViewNV-04413", - "text": " The variable decorated with ViewportMaskPerViewNV must be declared using the Output {StorageClass}" + "text": "The variable decorated with ViewportMaskPerViewNV must be declared using the Output Storage Class", + "page": "vkspec" }, { "vuid": "VUID-ViewportMaskPerViewNV-ViewportMaskPerViewNV-04414", - "text": " The variable decorated with ViewportMaskPerViewNV must be declared as an array of 32-bit integer values" + "text": "The variable decorated with ViewportMaskPerViewNV must be declared as an array of 32-bit integer values", + "page": "vkspec" }, { "vuid": "VUID-ViewportMaskPerViewNV-ViewportMaskPerViewNV-04415", - "text": " The array decorated with ViewportMaskPerViewNV must be a size less than or equal to 32" + "text": "The array decorated with ViewportMaskPerViewNV must be a size less than or equal to 32", + "page": "vkspec" }, { "vuid": "VUID-ViewportMaskPerViewNV-ViewportMaskPerViewNV-04416", - "text": " The array decorated with ViewportMaskPerViewNV must be a size greater than the maximum view in the subpass’s view mask" + "text": "The array decorated with ViewportMaskPerViewNV must be a size greater than the maximum view in the subpass’s view mask", + "page": "vkspec" }, { "vuid": "VUID-ViewportMaskPerViewNV-ViewportMaskPerViewNV-04417", - "text": " The array variable decorated with ViewportMaskPerViewNV must only be indexed by a constant or specialization constant" + "text": "The array variable decorated with ViewportMaskPerViewNV must only be indexed by a constant or specialization constant", + "page": "vkspec" } ] }, @@ -25546,11 +31699,13 @@ "core": [ { "vuid": "VUID-WarpsPerSMNV-WarpsPerSMNV-04418", - "text": " The variable decorated with WarpsPerSMNV must be declared using the Input {StorageClass}" + "text": "The variable decorated with WarpsPerSMNV must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-WarpsPerSMNV-WarpsPerSMNV-04419", - "text": " The variable decorated with WarpsPerSMNV must be declared as a scalar 32-bit integer value" + "text": "The variable decorated with WarpsPerSMNV must be declared as a scalar 32-bit integer value", + "page": "vkspec" } ] }, @@ -25558,11 +31713,13 @@ "core": [ { "vuid": "VUID-WarpIDNV-WarpIDNV-04420", - "text": " The variable decorated with WarpIDNV must be declared using the Input {StorageClass}" + "text": "The variable decorated with WarpIDNV must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-WarpIDNV-WarpIDNV-04421", - "text": " The variable decorated with WarpIDNV must be declared as a scalar 32-bit integer value" + "text": "The variable decorated with WarpIDNV must be declared as a scalar 32-bit integer value", + "page": "vkspec" } ] }, @@ -25570,15 +31727,18 @@ "core": [ { "vuid": "VUID-WorkgroupId-WorkgroupId-04422", - "text": " The WorkgroupId decoration must be used only within the GLCompute, MeshEXT, TaskEXT, MeshNV, or TaskNV {ExecutionModel}" + "text": "The WorkgroupId decoration must be used only within the GLCompute, MeshEXT, TaskEXT, MeshNV, or TaskNV Execution Model", + "page": "vkspec" }, { "vuid": "VUID-WorkgroupId-WorkgroupId-04423", - "text": " The variable decorated with WorkgroupId must be declared using the Input {StorageClass}" + "text": "The variable decorated with WorkgroupId must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-WorkgroupId-WorkgroupId-04424", - "text": " The variable decorated with WorkgroupId must be declared as a three-component vector of 32-bit integer values" + "text": "The variable decorated with WorkgroupId must be declared as a three-component vector of 32-bit integer values", + "page": "vkspec" } ] }, @@ -25586,15 +31746,18 @@ "core": [ { "vuid": "VUID-WorkgroupSize-WorkgroupSize-04425", - "text": " The WorkgroupSize decoration must be used only within the GLCompute, MeshEXT, TaskEXT, MeshNV, or TaskNV {ExecutionModel}" + "text": "The WorkgroupSize decoration must be used only within the GLCompute, MeshEXT, TaskEXT, MeshNV, or TaskNV Execution Model", + "page": "vkspec" }, { "vuid": "VUID-WorkgroupSize-WorkgroupSize-04426", - "text": " The variable decorated with WorkgroupSize must be a specialization constant or a constant" + "text": "The variable decorated with WorkgroupSize must be a specialization constant or a constant", + "page": "vkspec" }, { "vuid": "VUID-WorkgroupSize-WorkgroupSize-04427", - "text": " The variable decorated with WorkgroupSize must be declared as a three-component vector of 32-bit integer values" + "text": "The variable decorated with WorkgroupSize must be declared as a three-component vector of 32-bit integer values", + "page": "vkspec" } ] }, @@ -25602,15 +31765,18 @@ "core": [ { "vuid": "VUID-WorldRayDirectionKHR-WorldRayDirectionKHR-04428", - "text": " The WorldRayDirectionKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, ClosestHitKHR, or MissKHR {ExecutionModel}" + "text": "The WorldRayDirectionKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, ClosestHitKHR, or MissKHR Execution Model", + "page": "vkspec" }, { "vuid": "VUID-WorldRayDirectionKHR-WorldRayDirectionKHR-04429", - "text": " The variable decorated with WorldRayDirectionKHR must be declared using the Input {StorageClass}" + "text": "The variable decorated with WorldRayDirectionKHR must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-WorldRayDirectionKHR-WorldRayDirectionKHR-04430", - "text": " The variable decorated with WorldRayDirectionKHR must be declared as a three-component vector of 32-bit floating-point values" + "text": "The variable decorated with WorldRayDirectionKHR must be declared as a three-component vector of 32-bit floating-point values", + "page": "vkspec" } ] }, @@ -25618,15 +31784,18 @@ "core": [ { "vuid": "VUID-WorldRayOriginKHR-WorldRayOriginKHR-04431", - "text": " The WorldRayOriginKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, ClosestHitKHR, or MissKHR {ExecutionModel}" + "text": "The WorldRayOriginKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, ClosestHitKHR, or MissKHR Execution Model", + "page": "vkspec" }, { "vuid": "VUID-WorldRayOriginKHR-WorldRayOriginKHR-04432", - "text": " The variable decorated with WorldRayOriginKHR must be declared using the Input {StorageClass}" + "text": "The variable decorated with WorldRayOriginKHR must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-WorldRayOriginKHR-WorldRayOriginKHR-04433", - "text": " The variable decorated with WorldRayOriginKHR must be declared as a three-component vector of 32-bit floating-point values" + "text": "The variable decorated with WorldRayOriginKHR must be declared as a three-component vector of 32-bit floating-point values", + "page": "vkspec" } ] }, @@ -25634,15 +31803,18 @@ "core": [ { "vuid": "VUID-WorldToObjectKHR-WorldToObjectKHR-04434", - "text": " The WorldToObjectKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, or ClosestHitKHR {ExecutionModel}" + "text": "The WorldToObjectKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, or ClosestHitKHR Execution Model", + "page": "vkspec" }, { "vuid": "VUID-WorldToObjectKHR-WorldToObjectKHR-04435", - "text": " The variable decorated with WorldToObjectKHR must be declared using the Input {StorageClass}" + "text": "The variable decorated with WorldToObjectKHR must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-WorldToObjectKHR-WorldToObjectKHR-04436", - "text": " The variable decorated with WorldToObjectKHR must be declared as a matrix with four columns of three-component vectors of 32-bit floating-point values" + "text": "The variable decorated with WorldToObjectKHR must be declared as a matrix with four columns of three-component vectors of 32-bit floating-point values", + "page": "vkspec" } ] }, @@ -25650,11 +31822,13 @@ "core": [ { "vuid": "VUID-CoreCountARM-CoreCountARM-07595", - "text": " The variable decorated with CoreCountARM must be declared using the Input {StorageClass}" + "text": "The variable decorated with CoreCountARM must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-CoreCountARM-CoreCountARM-07596", - "text": " The variable decorated with CoreCountARM must be declared as a scalar 32-bit integer value" + "text": "The variable decorated with CoreCountARM must be declared as a scalar 32-bit integer value", + "page": "vkspec" } ] }, @@ -25662,11 +31836,13 @@ "core": [ { "vuid": "VUID-CoreMaxIDARM-CoreMaxIDARM-07597", - "text": " The variable decorated with CoreMaxIDARM must be declared using the Input {StorageClass}" + "text": "The variable decorated with CoreMaxIDARM must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-CoreMaxIDARM-CoreMaxIDARM-07598", - "text": " The variable decorated with CoreMaxIDARM must be declared as a scalar 32-bit integer value" + "text": "The variable decorated with CoreMaxIDARM must be declared as a scalar 32-bit integer value", + "page": "vkspec" } ] }, @@ -25674,11 +31850,13 @@ "core": [ { "vuid": "VUID-CoreIDARM-CoreIDARM-07599", - "text": " The variable decorated with CoreIDARM must be declared using the Input {StorageClass}" + "text": "The variable decorated with CoreIDARM must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-CoreIDARM-CoreIDARM-07600", - "text": " The variable decorated with CoreIDARM must be declared as a scalar 32-bit integer value" + "text": "The variable decorated with CoreIDARM must be declared as a scalar 32-bit integer value", + "page": "vkspec" } ] }, @@ -25686,11 +31864,13 @@ "core": [ { "vuid": "VUID-WarpMaxIDARM-WarpMaxIDARM-07601", - "text": " The variable decorated with WarpMaxIDARM must be declared using the Input {StorageClass}" + "text": "The variable decorated with WarpMaxIDARM must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-WarpMaxIDARM-WarpMaxIDARM-07602", - "text": " The variable decorated with WarpMaxIDARM must be declared as a scalar 32-bit integer value" + "text": "The variable decorated with WarpMaxIDARM must be declared as a scalar 32-bit integer value", + "page": "vkspec" } ] }, @@ -25698,11 +31878,13 @@ "core": [ { "vuid": "VUID-WarpIDARM-WarpIDARM-07603", - "text": " The variable decorated with WarpIDARM must be declared using the Input {StorageClass}" + "text": "The variable decorated with WarpIDARM must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-WarpIDARM-WarpIDARM-07604", - "text": " The variable decorated with WarpIDARM must be declared as a scalar 32-bit integer value" + "text": "The variable decorated with WarpIDARM must be declared as a scalar 32-bit integer value", + "page": "vkspec" } ] }, @@ -25710,15 +31892,18 @@ "core": [ { "vuid": "VUID-CoalescedInputCountAMDX-CoalescedInputCountAMDX-09172", - "text": " The variable decorated with CoalescedInputCountAMDX must be declared using the Input {StorageClass}" + "text": "The variable decorated with CoalescedInputCountAMDX must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-CoalescedInputCountAMDX-CoalescedInputCountAMDX-09173", - "text": " If a variable is decorated with CoalescedInputCountAMDX, the CoalescingAMDX execution mode must be declared" + "text": "If a variable is decorated with CoalescedInputCountAMDX, the CoalescingAMDX execution mode must be declared", + "page": "vkspec" }, { "vuid": "VUID-CoalescedInputCountAMDX-CoalescedInputCountAMDX-09174", - "text": " The variable decorated with CoalescedInputCountAMDX must be declared as a scalar 32-bit integer value" + "text": "The variable decorated with CoalescedInputCountAMDX must be declared as a scalar 32-bit integer value", + "page": "vkspec" } ] }, @@ -25726,11 +31911,13 @@ "core": [ { "vuid": "VUID-ShaderIndexAMDX-ShaderIndexAMDX-09175", - "text": " The variable decorated with ShaderIndexAMDX must be declared using the Input {StorageClass}" + "text": "The variable decorated with ShaderIndexAMDX must be declared using the Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-ShaderIndexAMDX-ShaderIndexAMDX-09176", - "text": " The variable decorated with ShaderIndexAMDX must be declared as a scalar 32-bit integer value" + "text": "The variable decorated with ShaderIndexAMDX must be declared as a scalar 32-bit integer value", + "page": "vkspec" } ] }, @@ -25738,19 +31925,23 @@ "core": [ { "vuid": "VUID-vkCreateQueryPool-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkCreateQueryPool-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkQueryPoolCreateInfo structure" + "text": "pCreateInfo must be a valid pointer to a valid VkQueryPoolCreateInfo structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateQueryPool-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateQueryPool-pQueryPool-parameter", - "text": " pQueryPool must be a valid pointer to a VkQueryPool handle" + "text": "pQueryPool must be a valid pointer to a VkQueryPool handle", + "page": "vkspec" } ] }, @@ -25758,59 +31949,73 @@ "core": [ { "vuid": "VUID-VkQueryPoolCreateInfo-queryType-00791", - "text": " If the pipelineStatisticsQuery feature is not enabled, queryType must not be VK_QUERY_TYPE_PIPELINE_STATISTICS" + "text": "If the pipelineStatisticsQuery feature is not enabled, queryType must not be VK_QUERY_TYPE_PIPELINE_STATISTICS", + "page": "vkspec" }, { "vuid": "VUID-VkQueryPoolCreateInfo-meshShaderQueries-07068", - "text": " If the meshShaderQueries feature is not enabled, queryType must not be VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT" + "text": "If the meshShaderQueries feature is not enabled, queryType must not be VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkQueryPoolCreateInfo-meshShaderQueries-07069", - "text": " If the meshShaderQueries feature is not enabled, and queryType is VK_QUERY_TYPE_PIPELINE_STATISTICS, pipelineStatistics must not contain VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT or VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT" + "text": "If the meshShaderQueries feature is not enabled, and queryType is VK_QUERY_TYPE_PIPELINE_STATISTICS, pipelineStatistics must not contain VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT or VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkQueryPoolCreateInfo-queryType-00792", - "text": " If queryType is VK_QUERY_TYPE_PIPELINE_STATISTICS, pipelineStatistics must be a valid combination of VkQueryPipelineStatisticFlagBits values" + "text": "If queryType is VK_QUERY_TYPE_PIPELINE_STATISTICS, pipelineStatistics must be a valid combination of VkQueryPipelineStatisticFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkQueryPoolCreateInfo-queryType-03222", - "text": " If queryType is VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, the pNext chain must include a VkQueryPoolPerformanceCreateInfoKHR structure" + "text": "If queryType is VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, the pNext chain must include a VkQueryPoolPerformanceCreateInfoKHR structure", + "page": "vkspec" }, { "vuid": "VUID-VkQueryPoolCreateInfo-queryCount-02763", - "text": " queryCount must be greater than 0" + "text": "queryCount must be greater than 0", + "page": "vkspec" }, { "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" + "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", + "page": "vkspec" }, { "vuid": "VUID-VkQueryPoolCreateInfo-queryType-07906", - "text": " If queryType is VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR, then the pNext chain must include a VkQueryPoolVideoEncodeFeedbackCreateInfoKHR structure" + "text": "If queryType is VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR, then the pNext chain must include a VkQueryPoolVideoEncodeFeedbackCreateInfoKHR structure", + "page": "vkspec" }, { "vuid": "VUID-VkQueryPoolCreateInfo-queryType-07907", - "text": " If queryType is VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR, and the pNext chain includes a VkVideoProfileInfoKHR structure and a VkQueryPoolVideoEncodeFeedbackCreateInfoKHR structure, then VkQueryPoolVideoEncodeFeedbackCreateInfoKHR::encodeFeedbackFlags must not contain any bits that are not set in VkVideoEncodeCapabilitiesKHR::supportedEncodeFeedbackFlags, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile described by VkVideoProfileInfoKHR and its pNext chain" + "text": "If queryType is VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR, and the pNext chain includes a VkVideoProfileInfoKHR structure and a VkQueryPoolVideoEncodeFeedbackCreateInfoKHR structure, then VkQueryPoolVideoEncodeFeedbackCreateInfoKHR::encodeFeedbackFlags must not contain any bits that are not set in VkVideoEncodeCapabilitiesKHR::supportedEncodeFeedbackFlags, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile described by VkVideoProfileInfoKHR and its pNext chain", + "page": "vkspec" }, { "vuid": "VUID-VkQueryPoolCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO", + "page": "vkspec" }, { "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, VkVideoDecodeH264ProfileInfoKHR, VkVideoDecodeH265ProfileInfoKHR, VkVideoDecodeUsageInfoKHR, VkVideoEncodeH264ProfileInfoEXT, VkVideoEncodeH265ProfileInfoEXT, 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, VkVideoDecodeH264ProfileInfoKHR, VkVideoDecodeH265ProfileInfoKHR, VkVideoDecodeUsageInfoKHR, VkVideoEncodeH264ProfileInfoEXT, VkVideoEncodeH265ProfileInfoEXT, VkVideoEncodeUsageInfoKHR, or VkVideoProfileInfoKHR", + "page": "vkspec" }, { "vuid": "VUID-VkQueryPoolCreateInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" }, { "vuid": "VUID-VkQueryPoolCreateInfo-flags-zerobitmask", - "text": " flags must be 0" + "text": "flags must be 0", + "page": "vkspec" }, { "vuid": "VUID-VkQueryPoolCreateInfo-queryType-parameter", - "text": " queryType must be a valid VkQueryType value" + "text": "queryType must be a valid VkQueryType value", + "page": "vkspec" } ] }, @@ -25818,27 +32023,33 @@ "core": [ { "vuid": "VUID-VkQueryPoolPerformanceCreateInfoKHR-queueFamilyIndex-03236", - "text": " queueFamilyIndex must be a valid queue family index of the device" + "text": "queueFamilyIndex must be a valid queue family index of the device", + "page": "vkspec" }, { "vuid": "VUID-VkQueryPoolPerformanceCreateInfoKHR-performanceCounterQueryPools-03237", - "text": " The performanceCounterQueryPools feature must be enabled" + "text": "The performanceCounterQueryPools feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-VkQueryPoolPerformanceCreateInfoKHR-pCounterIndices-03321", - "text": " Each element of pCounterIndices must be in the range of counters reported by vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR for the queue family specified in queueFamilyIndex" + "text": "Each element of pCounterIndices must be in the range of counters reported by vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR for the queue family specified in queueFamilyIndex", + "page": "vkspec" }, { "vuid": "VUID-VkQueryPoolPerformanceCreateInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkQueryPoolPerformanceCreateInfoKHR-pCounterIndices-parameter", - "text": " pCounterIndices must be a valid pointer to an array of counterIndexCount uint32_t values" + "text": "pCounterIndices must be a valid pointer to an array of counterIndexCount uint32_t values", + "page": "vkspec" }, { "vuid": "VUID-VkQueryPoolPerformanceCreateInfoKHR-counterIndexCount-arraylength", - "text": " counterIndexCount must be greater than 0" + "text": "counterIndexCount must be greater than 0", + "page": "vkspec" } ] }, @@ -25846,15 +32057,18 @@ "core": [ { "vuid": "VUID-vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": "physicalDevice must be a valid VkPhysicalDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR-pPerformanceQueryCreateInfo-parameter", - "text": " pPerformanceQueryCreateInfo must be a valid pointer to a valid VkQueryPoolPerformanceCreateInfoKHR structure" + "text": "pPerformanceQueryCreateInfo must be a valid pointer to a valid VkQueryPoolPerformanceCreateInfoKHR structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR-pNumPasses-parameter", - "text": " pNumPasses must be a valid pointer to a uint32_t value" + "text": "pNumPasses must be a valid pointer to a uint32_t value", + "page": "vkspec" } ] }, @@ -25862,31 +32076,38 @@ "core": [ { "vuid": "VUID-vkDestroyQueryPool-queryPool-00793", - "text": " All submitted commands that refer to queryPool must have completed execution" + "text": "All submitted commands that refer to queryPool must have completed execution", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyQueryPool-queryPool-00794", - "text": " If VkAllocationCallbacks were provided when queryPool was created, a compatible set of callbacks must be provided here" + "text": "If VkAllocationCallbacks were provided when queryPool was created, a compatible set of callbacks must be provided here", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyQueryPool-queryPool-00795", - "text": " If no VkAllocationCallbacks were provided when queryPool was created, pAllocator must be NULL" + "text": "If no VkAllocationCallbacks were provided when queryPool was created, pAllocator must be NULL", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyQueryPool-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyQueryPool-queryPool-parameter", - "text": " If queryPool is not VK_NULL_HANDLE, queryPool must be a valid VkQueryPool handle" + "text": "If queryPool is not VK_NULL_HANDLE, queryPool must be a valid VkQueryPool handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyQueryPool-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyQueryPool-queryPool-parent", - "text": " If queryPool is a valid handle, it must have been created, allocated, or retrieved from device" + "text": "If queryPool is a valid handle, it must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -25894,47 +32115,58 @@ "core": [ { "vuid": "VUID-vkCmdResetQueryPool-firstQuery-00796", - "text": " firstQuery must be less than the number of queries in queryPool" + "text": "firstQuery must be less than the number of queries in queryPool", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResetQueryPool-firstQuery-00797", - "text": " The sum of firstQuery and queryCount must be less than or equal to the number of queries in queryPool" + "text": "The sum of firstQuery and queryCount must be less than or equal to the number of queries in queryPool", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResetQueryPool-None-02841", - "text": " All queries used by the command must not be active" + "text": "All queries used by the command must not be active", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResetQueryPool-firstQuery-02862", - "text": " If queryPool was created with VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, this command must not be recorded in a command buffer that, either directly or through secondary command buffers, also contains begin commands for a query from the set of queries [firstQuery, firstQuery + queryCount - 1]" + "text": "If queryPool was created with VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, this command must not be recorded in a command buffer that, either directly or through secondary command buffers, also contains begin commands for a query from the set of queries [firstQuery, firstQuery + queryCount - 1]", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResetQueryPool-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResetQueryPool-queryPool-parameter", - "text": " queryPool must be a valid VkQueryPool handle" + "text": "queryPool must be a valid VkQueryPool handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResetQueryPool-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResetQueryPool-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, compute, decode, encode, or optical flow operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics, compute, decode, encode, or optical flow operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResetQueryPool-renderpass", - "text": " This command must only be called outside of a render pass instance" + "text": "This command must only be called outside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResetQueryPool-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResetQueryPool-commonparent", - "text": " Both of commandBuffer, and queryPool must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of commandBuffer, and queryPool must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -25942,35 +32174,43 @@ "core": [ { "vuid": "VUID-vkResetQueryPool-None-02665", - "text": " The hostQueryReset feature must be enabled" + "text": "The hostQueryReset feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkResetQueryPool-firstQuery-02666", - "text": " firstQuery must be less than the number of queries in queryPool" + "text": "firstQuery must be less than the number of queries in queryPool", + "page": "vkspec" }, { "vuid": "VUID-vkResetQueryPool-firstQuery-02667", - "text": " The sum of firstQuery and queryCount must be less than or equal to the number of queries in queryPool" + "text": "The sum of firstQuery and queryCount must be less than or equal to the number of queries in queryPool", + "page": "vkspec" }, { "vuid": "VUID-vkResetQueryPool-firstQuery-02741", - "text": " Submitted commands that refer to the range specified by firstQuery and queryCount in queryPool must have completed execution" + "text": "Submitted commands that refer to the range specified by firstQuery and queryCount in queryPool must have completed execution", + "page": "vkspec" }, { "vuid": "VUID-vkResetQueryPool-firstQuery-02742", - "text": " The range of queries specified by firstQuery and queryCount in queryPool must not be in use by calls to vkGetQueryPoolResults or vkResetQueryPool in other threads" + "text": "The range of queries specified by firstQuery and queryCount in queryPool must not be in use by calls to vkGetQueryPoolResults or vkResetQueryPool in other threads", + "page": "vkspec" }, { "vuid": "VUID-vkResetQueryPool-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkResetQueryPool-queryPool-parameter", - "text": " queryPool must be a valid VkQueryPool handle" + "text": "queryPool must be a valid VkQueryPool handle", + "page": "vkspec" }, { "vuid": "VUID-vkResetQueryPool-queryPool-parent", - "text": " queryPool must have been created, allocated, or retrieved from device" + "text": "queryPool must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -25978,151 +32218,188 @@ "core": [ { "vuid": "VUID-vkCmdBeginQuery-None-00807", - "text": " All queries used by the command must be unavailable" + "text": "All queries used by the command must be unavailable", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQuery-queryType-02804", - "text": " The queryType used to create queryPool must not be VK_QUERY_TYPE_TIMESTAMP" + "text": "The queryType used to create queryPool must not be VK_QUERY_TYPE_TIMESTAMP", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQuery-queryType-04728", - "text": " The queryType used to create queryPool must not be VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR or VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR" + "text": "The queryType used to create queryPool must not be VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR or VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQuery-queryType-06741", - "text": " The queryType used to create queryPool must not be VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR or VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR" + "text": "The queryType used to create queryPool must not be VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR or VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQuery-queryType-04729", - "text": " The queryType used to create queryPool must not be VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV" + "text": "The queryType used to create queryPool must not be VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQuery-queryType-00800", - "text": " If the occlusionQueryPrecise feature is not enabled, or the queryType used to create queryPool was not VK_QUERY_TYPE_OCCLUSION, flags must not contain VK_QUERY_CONTROL_PRECISE_BIT" + "text": "If the occlusionQueryPrecise feature is not enabled, or the queryType used to create queryPool was not VK_QUERY_TYPE_OCCLUSION, flags must not contain VK_QUERY_CONTROL_PRECISE_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQuery-query-00802", - "text": " query must be less than the number of queries in queryPool" + "text": "query must be less than the number of queries in queryPool", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQuery-queryType-00803", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_OCCLUSION, the VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "If the queryType used to create queryPool was VK_QUERY_TYPE_OCCLUSION, the VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQuery-queryType-00804", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_PIPELINE_STATISTICS and any of the pipelineStatistics indicate graphics operations, the VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "If the queryType used to create queryPool was VK_QUERY_TYPE_PIPELINE_STATISTICS and any of the pipelineStatistics indicate graphics operations, the VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQuery-queryType-00805", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_PIPELINE_STATISTICS and any of the pipelineStatistics indicate compute operations, the VkCommandPool that commandBuffer was allocated from must support compute operations" + "text": "If the queryType used to create queryPool was VK_QUERY_TYPE_PIPELINE_STATISTICS and any of the pipelineStatistics indicate compute operations, the VkCommandPool that commandBuffer was allocated from must support compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQuery-commandBuffer-01885", - "text": " commandBuffer must not be a protected command buffer" + "text": "commandBuffer must not be a protected command buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQuery-query-00808", - "text": " If called within a render pass instance, the sum of query and the number of bits set in the current subpass’s view mask must be less than or equal to the number of queries in queryPool" + "text": "If called within a render pass instance, the sum of query and the number of bits set in the current subpass’s view mask must be less than or equal to the number of queries in queryPool", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQuery-queryType-07126", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR, then the VkCommandPool that commandBuffer was allocated from must have been created with a queue family index that supports result status queries, as indicated by VkQueueFamilyQueryResultStatusPropertiesKHR::queryResultStatusSupport" + "text": "If the queryType used to create queryPool was VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR, then the VkCommandPool that commandBuffer was allocated from must have been created with a queue family index that supports result status queries, as indicated by VkQueueFamilyQueryResultStatusPropertiesKHR::queryResultStatusSupport", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQuery-None-07127", - "text": " If there is a bound video session, then there must be no active queries" + "text": "If there is a bound video session, then there must be no active queries", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQuery-queryType-07128", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR and there is a bound video session, then queryPool must have been created with a VkVideoProfileInfoKHR structure included in the pNext chain of VkQueryPoolCreateInfo identical to the one specified in VkVideoSessionCreateInfoKHR::pVideoProfile the bound video session was created with" + "text": "If the queryType used to create queryPool was VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR and there is a bound video session, then queryPool must have been created with a VkVideoProfileInfoKHR structure included in the pNext chain of VkQueryPoolCreateInfo identical to the one specified in VkVideoSessionCreateInfoKHR::pVideoProfile the bound video session was created with", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQuery-queryType-04862", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR, then the VkCommandPool that commandBuffer was allocated from must support video encode operations" + "text": "If the queryType used to create queryPool was VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR, then the VkCommandPool that commandBuffer was allocated from must support video encode operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQuery-queryType-07129", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR, then there must be a bound video session" + "text": "If the queryType used to create queryPool was VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR, then there must be a bound video session", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQuery-queryType-07130", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR and there is a bound video session, then queryPool must have been created with a VkVideoProfileInfoKHR structure included in the pNext chain of VkQueryPoolCreateInfo identical to the one specified in VkVideoSessionCreateInfoKHR::pVideoProfile the bound video session was created with" + "text": "If the queryType used to create queryPool was VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR and there is a bound video session, then queryPool must have been created with a VkVideoProfileInfoKHR structure included in the pNext chain of VkQueryPoolCreateInfo identical to the one specified in VkVideoSessionCreateInfoKHR::pVideoProfile the bound video session was created with", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQuery-queryType-07131", - "text": " If the queryType used to create queryPool was not VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR or VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR, then there must be no bound video session" + "text": "If the queryType used to create queryPool was not VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR or VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR, then there must be no bound video session", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQuery-queryPool-01922", - "text": " queryPool must have been created with a queryType that differs from that of any queries that are active within commandBuffer" + "text": "queryPool must have been created with a queryType that differs from that of any queries that are active within commandBuffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQuery-queryType-07070", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT the VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "If the queryType used to create queryPool was VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT the VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQuery-queryType-02327", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT the VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "If the queryType used to create queryPool was VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT the VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQuery-queryType-02328", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT then VkPhysicalDeviceTransformFeedbackPropertiesEXT::transformFeedbackQueries must be supported" + "text": "If the queryType used to create queryPool was VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT then VkPhysicalDeviceTransformFeedbackPropertiesEXT::transformFeedbackQueries must be supported", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQuery-queryType-06687", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT the VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "If the queryType used to create queryPool was VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT the VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQuery-queryType-06688", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT then primitivesGeneratedQuery must be enabled" + "text": "If the queryType used to create queryPool was VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT then primitivesGeneratedQuery must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQuery-queryPool-07289", - "text": " If queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, then the VkQueryPoolPerformanceCreateInfoKHR::queueFamilyIndex queryPool was created with must equal the queue family index of the VkCommandPool that commandBuffer was allocated from" + "text": "If queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, then the VkQueryPoolPerformanceCreateInfoKHR::queueFamilyIndex queryPool was created with must equal the queue family index of the VkCommandPool that commandBuffer was allocated from", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQuery-queryPool-03223", - "text": " If queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, the profiling lock must have been held before vkBeginCommandBuffer was called on commandBuffer" + "text": "If queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, the profiling lock must have been held before vkBeginCommandBuffer was called on commandBuffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQuery-queryPool-03224", - "text": " If queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR and one of the counters used to create queryPool was VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR, the query begin must be the first recorded command in commandBuffer" + "text": "If queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR and one of the counters used to create queryPool was VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR, the query begin must be the first recorded command in commandBuffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQuery-queryPool-03225", - "text": " If queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR and one of the counters used to create queryPool was VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR, the begin command must not be recorded within a render pass instance" + "text": "If queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR and one of the counters used to create queryPool was VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR, the begin command must not be recorded within a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQuery-queryPool-03226", - "text": " If queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR and another query pool with a queryType VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR has been used within commandBuffer, its parent primary command buffer or secondary command buffer recorded within the same parent primary command buffer as commandBuffer, the performanceCounterMultipleQueryPools feature must be enabled" + "text": "If queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR and another query pool with a queryType VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR has been used within commandBuffer, its parent primary command buffer or secondary command buffer recorded within the same parent primary command buffer as commandBuffer, the performanceCounterMultipleQueryPools feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQuery-None-02863", - "text": " If queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, this command must not be recorded in a command buffer that, either directly or through secondary command buffers, also contains a vkCmdResetQueryPool command affecting the same query" + "text": "If queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, this command must not be recorded in a command buffer that, either directly or through secondary command buffers, also contains a vkCmdResetQueryPool command affecting the same query", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQuery-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQuery-queryPool-parameter", - "text": " queryPool must be a valid VkQueryPool handle" + "text": "queryPool must be a valid VkQueryPool handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQuery-flags-parameter", - "text": " flags must be a valid combination of VkQueryControlFlagBits values" + "text": "flags must be a valid combination of VkQueryControlFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQuery-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQuery-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, compute, decode, or encode operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics, compute, decode, or encode operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQuery-commonparent", - "text": " Both of commandBuffer, and queryPool must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of commandBuffer, and queryPool must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -26130,171 +32407,213 @@ "core": [ { "vuid": "VUID-vkCmdBeginQueryIndexedEXT-None-00807", - "text": " All queries used by the command must be unavailable" + "text": "All queries used by the command must be unavailable", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-02804", - "text": " The queryType used to create queryPool must not be VK_QUERY_TYPE_TIMESTAMP" + "text": "The queryType used to create queryPool must not be VK_QUERY_TYPE_TIMESTAMP", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-04728", - "text": " The queryType used to create queryPool must not be VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR or VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR" + "text": "The queryType used to create queryPool must not be VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR or VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-06741", - "text": " The queryType used to create queryPool must not be VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR or VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR" + "text": "The queryType used to create queryPool must not be VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR or VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-04729", - "text": " The queryType used to create queryPool must not be VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV" + "text": "The queryType used to create queryPool must not be VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-00800", - "text": " If the occlusionQueryPrecise feature is not enabled, or the queryType used to create queryPool was not VK_QUERY_TYPE_OCCLUSION, flags must not contain VK_QUERY_CONTROL_PRECISE_BIT" + "text": "If the occlusionQueryPrecise feature is not enabled, or the queryType used to create queryPool was not VK_QUERY_TYPE_OCCLUSION, flags must not contain VK_QUERY_CONTROL_PRECISE_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQueryIndexedEXT-query-00802", - "text": " query must be less than the number of queries in queryPool" + "text": "query must be less than the number of queries in queryPool", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-00803", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_OCCLUSION, the VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "If the queryType used to create queryPool was VK_QUERY_TYPE_OCCLUSION, the VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-00804", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_PIPELINE_STATISTICS and any of the pipelineStatistics indicate graphics operations, the VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "If the queryType used to create queryPool was VK_QUERY_TYPE_PIPELINE_STATISTICS and any of the pipelineStatistics indicate graphics operations, the VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-00805", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_PIPELINE_STATISTICS and any of the pipelineStatistics indicate compute operations, the VkCommandPool that commandBuffer was allocated from must support compute operations" + "text": "If the queryType used to create queryPool was VK_QUERY_TYPE_PIPELINE_STATISTICS and any of the pipelineStatistics indicate compute operations, the VkCommandPool that commandBuffer was allocated from must support compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQueryIndexedEXT-commandBuffer-01885", - "text": " commandBuffer must not be a protected command buffer" + "text": "commandBuffer must not be a protected command buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQueryIndexedEXT-query-00808", - "text": " If called within a render pass instance, the sum of query and the number of bits set in the current subpass’s view mask must be less than or equal to the number of queries in queryPool" + "text": "If called within a render pass instance, the sum of query and the number of bits set in the current subpass’s view mask must be less than or equal to the number of queries in queryPool", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-07126", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR, then the VkCommandPool that commandBuffer was allocated from must have been created with a queue family index that supports result status queries, as indicated by VkQueueFamilyQueryResultStatusPropertiesKHR::queryResultStatusSupport" + "text": "If the queryType used to create queryPool was VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR, then the VkCommandPool that commandBuffer was allocated from must have been created with a queue family index that supports result status queries, as indicated by VkQueueFamilyQueryResultStatusPropertiesKHR::queryResultStatusSupport", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQueryIndexedEXT-None-07127", - "text": " If there is a bound video session, then there must be no active queries" + "text": "If there is a bound video session, then there must be no active queries", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-07128", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR and there is a bound video session, then queryPool must have been created with a VkVideoProfileInfoKHR structure included in the pNext chain of VkQueryPoolCreateInfo identical to the one specified in VkVideoSessionCreateInfoKHR::pVideoProfile the bound video session was created with" + "text": "If the queryType used to create queryPool was VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR and there is a bound video session, then queryPool must have been created with a VkVideoProfileInfoKHR structure included in the pNext chain of VkQueryPoolCreateInfo identical to the one specified in VkVideoSessionCreateInfoKHR::pVideoProfile the bound video session was created with", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-04862", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR, then the VkCommandPool that commandBuffer was allocated from must support video encode operations" + "text": "If the queryType used to create queryPool was VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR, then the VkCommandPool that commandBuffer was allocated from must support video encode operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-07129", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR, then there must be a bound video session" + "text": "If the queryType used to create queryPool was VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR, then there must be a bound video session", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-07130", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR and there is a bound video session, then queryPool must have been created with a VkVideoProfileInfoKHR structure included in the pNext chain of VkQueryPoolCreateInfo identical to the one specified in VkVideoSessionCreateInfoKHR::pVideoProfile the bound video session was created with" + "text": "If the queryType used to create queryPool was VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR and there is a bound video session, then queryPool must have been created with a VkVideoProfileInfoKHR structure included in the pNext chain of VkQueryPoolCreateInfo identical to the one specified in VkVideoSessionCreateInfoKHR::pVideoProfile the bound video session was created with", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-07131", - "text": " If the queryType used to create queryPool was not VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR or VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR, then there must be no bound video session" + "text": "If the queryType used to create queryPool was not VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR or VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR, then there must be no bound video session", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryPool-04753", - "text": " If the queryPool was created with the same queryType as that of another active query within commandBuffer, then index must not match the index used for the active query" + "text": "If the queryPool was created with the same queryType as that of another active query within commandBuffer, then index must not match the index used for the active query", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-02338", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT the VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "If the queryType used to create queryPool was VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT the VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-02339", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT the index parameter must be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackStreams" + "text": "If the queryType used to create queryPool was VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT the index parameter must be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackStreams", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-06689", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT the VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "If the queryType used to create queryPool was VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT the VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-06690", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT the index parameter must be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackStreams" + "text": "If the queryType used to create queryPool was VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT the index parameter must be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackStreams", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-06691", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT and the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled, the index parameter must be zero" + "text": "If the queryType used to create queryPool was VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT and the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled, the index parameter must be zero", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-06692", - "text": " If the queryType used to create queryPool was not VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT and not VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT, the index must be zero" + "text": "If the queryType used to create queryPool was not VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT and not VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT, the index must be zero", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-06693", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT then primitivesGeneratedQuery must be enabled" + "text": "If the queryType used to create queryPool was VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT then primitivesGeneratedQuery must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-02341", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT then VkPhysicalDeviceTransformFeedbackPropertiesEXT::transformFeedbackQueries must be supported" + "text": "If the queryType used to create queryPool was VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT then VkPhysicalDeviceTransformFeedbackPropertiesEXT::transformFeedbackQueries must be supported", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-07071", - "text": " The queryType used to create queryPool must not be VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT" + "text": "The queryType used to create queryPool must not be VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryPool-07289", - "text": " If queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, then the VkQueryPoolPerformanceCreateInfoKHR::queueFamilyIndex queryPool was created with must equal the queue family index of the VkCommandPool that commandBuffer was allocated from" + "text": "If queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, then the VkQueryPoolPerformanceCreateInfoKHR::queueFamilyIndex queryPool was created with must equal the queue family index of the VkCommandPool that commandBuffer was allocated from", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryPool-03223", - "text": " If queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, the profiling lock must have been held before vkBeginCommandBuffer was called on commandBuffer" + "text": "If queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, the profiling lock must have been held before vkBeginCommandBuffer was called on commandBuffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryPool-03224", - "text": " If queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR and one of the counters used to create queryPool was VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR, the query begin must be the first recorded command in commandBuffer" + "text": "If queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR and one of the counters used to create queryPool was VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR, the query begin must be the first recorded command in commandBuffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryPool-03225", - "text": " If queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR and one of the counters used to create queryPool was VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR, the begin command must not be recorded within a render pass instance" + "text": "If queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR and one of the counters used to create queryPool was VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR, the begin command must not be recorded within a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryPool-03226", - "text": " If queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR and another query pool with a queryType VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR has been used within commandBuffer, its parent primary command buffer or secondary command buffer recorded within the same parent primary command buffer as commandBuffer, the performanceCounterMultipleQueryPools feature must be enabled" + "text": "If queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR and another query pool with a queryType VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR has been used within commandBuffer, its parent primary command buffer or secondary command buffer recorded within the same parent primary command buffer as commandBuffer, the performanceCounterMultipleQueryPools feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQueryIndexedEXT-None-02863", - "text": " If queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, this command must not be recorded in a command buffer that, either directly or through secondary command buffers, also contains a vkCmdResetQueryPool command affecting the same query" + "text": "If queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, this command must not be recorded in a command buffer that, either directly or through secondary command buffers, also contains a vkCmdResetQueryPool command affecting the same query", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQueryIndexedEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryPool-parameter", - "text": " queryPool must be a valid VkQueryPool handle" + "text": "queryPool must be a valid VkQueryPool handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQueryIndexedEXT-flags-parameter", - "text": " flags must be a valid combination of VkQueryControlFlagBits values" + "text": "flags must be a valid combination of VkQueryControlFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQueryIndexedEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQueryIndexedEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, compute, decode, or encode operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics, compute, decode, or encode operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQueryIndexedEXT-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginQueryIndexedEXT-commonparent", - "text": " Both of commandBuffer, and queryPool must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of commandBuffer, and queryPool must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -26302,55 +32621,68 @@ "core": [ { "vuid": "VUID-vkCmdEndQuery-None-01923", - "text": " All queries used by the command must be active" + "text": "All queries used by the command must be active", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndQuery-query-00810", - "text": " query must be less than the number of queries in queryPool" + "text": "query must be less than the number of queries in queryPool", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndQuery-commandBuffer-01886", - "text": " commandBuffer must not be a protected command buffer" + "text": "commandBuffer must not be a protected command buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndQuery-query-00812", - "text": " If vkCmdEndQuery is called within a render pass instance, the sum of query and the number of bits set in the current subpass’s view mask must be less than or equal to the number of queries in queryPool" + "text": "If vkCmdEndQuery is called within a render pass instance, the sum of query and the number of bits set in the current subpass’s view mask must be less than or equal to the number of queries in queryPool", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndQuery-queryPool-03227", - "text": " If queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR and one or more of the counters used to create queryPool was VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR, the vkCmdEndQuery must be the last recorded command in commandBuffer" + "text": "If queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR and one or more of the counters used to create queryPool was VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR, the vkCmdEndQuery must be the last recorded command in commandBuffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndQuery-queryPool-03228", - "text": " If queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR and one or more of the counters used to create queryPool was VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR, the vkCmdEndQuery must not be recorded within a render pass instance" + "text": "If queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR and one or more of the counters used to create queryPool was VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR, the vkCmdEndQuery must not be recorded within a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndQuery-None-07007", - "text": " If called within a subpass of a render pass instance, the corresponding vkCmdBeginQuery* command must have been called previously within the same subpass" + "text": "If called within a subpass of a render pass instance, the corresponding vkCmdBeginQuery* command must have been called previously within the same subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndQuery-None-07008", - "text": " If called outside of a render pass instance, the corresponding vkCmdBeginQuery* command must have been called outside of a render pass instance" + "text": "If called outside of a render pass instance, the corresponding vkCmdBeginQuery* command must have been called outside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndQuery-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndQuery-queryPool-parameter", - "text": " queryPool must be a valid VkQueryPool handle" + "text": "queryPool must be a valid VkQueryPool handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndQuery-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndQuery-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, compute, decode, or encode operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics, compute, decode, or encode operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndQuery-commonparent", - "text": " Both of commandBuffer, and queryPool must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of commandBuffer, and queryPool must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -26358,63 +32690,78 @@ "core": [ { "vuid": "VUID-vkCmdEndQueryIndexedEXT-None-02342", - "text": " All queries used by the command must be active" + "text": "All queries used by the command must be active", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndQueryIndexedEXT-query-02343", - "text": " query must be less than the number of queries in queryPool" + "text": "query must be less than the number of queries in queryPool", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndQueryIndexedEXT-commandBuffer-02344", - "text": " commandBuffer must not be a protected command buffer" + "text": "commandBuffer must not be a protected command buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndQueryIndexedEXT-query-02345", - "text": " If vkCmdEndQueryIndexedEXT is called within a render pass instance, the sum of query and the number of bits set in the current subpass’s view mask must be less than or equal to the number of queries in queryPool" + "text": "If vkCmdEndQueryIndexedEXT is called within a render pass instance, the sum of query and the number of bits set in the current subpass’s view mask must be less than or equal to the number of queries in queryPool", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndQueryIndexedEXT-queryType-06694", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT or VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT, the index parameter must be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackStreams" + "text": "If the queryType used to create queryPool was VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT or VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT, the index parameter must be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackStreams", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndQueryIndexedEXT-queryType-06695", - "text": " If the queryType used to create queryPool was not VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT and not VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT, the index must be zero" + "text": "If the queryType used to create queryPool was not VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT and not VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT, the index must be zero", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndQueryIndexedEXT-queryType-06696", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT or VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT, index must equal the index used to begin the query" + "text": "If the queryType used to create queryPool was VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT or VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT, index must equal the index used to begin the query", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndQueryIndexedEXT-None-07007", - "text": " If called within a subpass of a render pass instance, the corresponding vkCmdBeginQuery* command must have been called previously within the same subpass" + "text": "If called within a subpass of a render pass instance, the corresponding vkCmdBeginQuery* command must have been called previously within the same subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndQueryIndexedEXT-None-07008", - "text": " If called outside of a render pass instance, the corresponding vkCmdBeginQuery* command must have been called outside of a render pass instance" + "text": "If called outside of a render pass instance, the corresponding vkCmdBeginQuery* command must have been called outside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndQueryIndexedEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndQueryIndexedEXT-queryPool-parameter", - "text": " queryPool must be a valid VkQueryPool handle" + "text": "queryPool must be a valid VkQueryPool handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndQueryIndexedEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndQueryIndexedEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, compute, decode, or encode operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics, compute, decode, or encode operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndQueryIndexedEXT-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndQueryIndexedEXT-commonparent", - "text": " Both of commandBuffer, and queryPool must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of commandBuffer, and queryPool must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -26422,79 +32769,98 @@ "core": [ { "vuid": "VUID-vkGetQueryPoolResults-firstQuery-00813", - "text": " firstQuery must be less than the number of queries in queryPool" + "text": "firstQuery must be less than the number of queries in queryPool", + "page": "vkspec" }, { "vuid": "VUID-vkGetQueryPoolResults-flags-02828", - "text": " If VK_QUERY_RESULT_64_BIT is not set in flags and the queryType used to create queryPool was not VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, then pData and stride must be multiples of 4" + "text": "If VK_QUERY_RESULT_64_BIT is not set in flags and the queryType used to create queryPool was not VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, then pData and stride must be multiples of 4", + "page": "vkspec" }, { "vuid": "VUID-vkGetQueryPoolResults-flags-00815", - "text": " If VK_QUERY_RESULT_64_BIT is set in flags then pData and stride must be multiples of 8" + "text": "If VK_QUERY_RESULT_64_BIT is set in flags then pData and stride must be multiples of 8", + "page": "vkspec" }, { "vuid": "VUID-vkGetQueryPoolResults-stride-08993", - "text": " If VK_QUERY_RESULT_WITH_AVAILABILITY_BIT is set, stride must be large enough to contain the unsigned integer representing availability or status in addition to the query result." + "text": "If VK_QUERY_RESULT_WITH_AVAILABILITY_BIT is set, stride must be large enough to contain the unsigned integer representing availability or status in addition to the query result.", + "page": "vkspec" }, { "vuid": "VUID-vkGetQueryPoolResults-queryType-03229", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, then pData and stride must be multiples of the size of VkPerformanceCounterResultKHR" + "text": "If the queryType used to create queryPool was VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, then pData and stride must be multiples of the size of VkPerformanceCounterResultKHR", + "page": "vkspec" }, { "vuid": "VUID-vkGetQueryPoolResults-queryType-04519", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, then stride must be large enough to contain the VkQueryPoolPerformanceCreateInfoKHR::counterIndexCount used to create queryPool times the size of VkPerformanceCounterResultKHR" + "text": "If the queryType used to create queryPool was VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, then stride must be large enough to contain the VkQueryPoolPerformanceCreateInfoKHR::counterIndexCount used to create queryPool times the size of VkPerformanceCounterResultKHR", + "page": "vkspec" }, { "vuid": "VUID-vkGetQueryPoolResults-firstQuery-00816", - "text": " The sum of firstQuery and queryCount must be less than or equal to the number of queries in queryPool" + "text": "The sum of firstQuery and queryCount must be less than or equal to the number of queries in queryPool", + "page": "vkspec" }, { "vuid": "VUID-vkGetQueryPoolResults-dataSize-00817", - "text": " dataSize must be large enough to contain the result of each query, as described here" + "text": "dataSize must be large enough to contain the result of each query, as described here", + "page": "vkspec" }, { "vuid": "VUID-vkGetQueryPoolResults-queryType-00818", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_TIMESTAMP, flags must not contain VK_QUERY_RESULT_PARTIAL_BIT" + "text": "If the queryType used to create queryPool was VK_QUERY_TYPE_TIMESTAMP, flags must not contain VK_QUERY_RESULT_PARTIAL_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkGetQueryPoolResults-queryType-03230", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, flags must not contain VK_QUERY_RESULT_WITH_AVAILABILITY_BIT, VK_QUERY_RESULT_WITH_STATUS_BIT_KHR, VK_QUERY_RESULT_PARTIAL_BIT, or VK_QUERY_RESULT_64_BIT" + "text": "If the queryType used to create queryPool was VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, flags must not contain VK_QUERY_RESULT_WITH_AVAILABILITY_BIT, VK_QUERY_RESULT_WITH_STATUS_BIT_KHR, VK_QUERY_RESULT_PARTIAL_BIT, or VK_QUERY_RESULT_64_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkGetQueryPoolResults-queryType-03231", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, the queryPool must have been recorded once for each pass as retrieved via a call to vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR" + "text": "If the queryType used to create queryPool was VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, the queryPool must have been recorded once for each pass as retrieved via a call to vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR", + "page": "vkspec" }, { "vuid": "VUID-vkGetQueryPoolResults-queryType-04810", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR, then flags must include VK_QUERY_RESULT_WITH_STATUS_BIT_KHR" + "text": "If the queryType used to create queryPool was VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR, then flags must include VK_QUERY_RESULT_WITH_STATUS_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkGetQueryPoolResults-flags-04811", - "text": " If flags includes VK_QUERY_RESULT_WITH_STATUS_BIT_KHR, then it must not include VK_QUERY_RESULT_WITH_AVAILABILITY_BIT" + "text": "If flags includes VK_QUERY_RESULT_WITH_STATUS_BIT_KHR, then it must not include VK_QUERY_RESULT_WITH_AVAILABILITY_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkGetQueryPoolResults-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetQueryPoolResults-queryPool-parameter", - "text": " queryPool must be a valid VkQueryPool handle" + "text": "queryPool must be a valid VkQueryPool handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetQueryPoolResults-pData-parameter", - "text": " pData must be a valid pointer to an array of dataSize bytes" + "text": "pData must be a valid pointer to an array of dataSize bytes", + "page": "vkspec" }, { "vuid": "VUID-vkGetQueryPoolResults-flags-parameter", - "text": " flags must be a valid combination of VkQueryResultFlagBits values" + "text": "flags must be a valid combination of VkQueryResultFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-vkGetQueryPoolResults-dataSize-arraylength", - "text": " dataSize must be greater than 0" + "text": "dataSize must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-vkGetQueryPoolResults-queryPool-parent", - "text": " queryPool must have been created, allocated, or retrieved from device" + "text": "queryPool must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -26502,107 +32868,133 @@ "core": [ { "vuid": "VUID-vkCmdCopyQueryPoolResults-dstOffset-00819", - "text": " dstOffset must be less than the size of dstBuffer" + "text": "dstOffset must be less than the size of dstBuffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyQueryPoolResults-firstQuery-00820", - "text": " firstQuery must be less than the number of queries in queryPool" + "text": "firstQuery must be less than the number of queries in queryPool", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyQueryPoolResults-firstQuery-00821", - "text": " The sum of firstQuery and queryCount must be less than or equal to the number of queries in queryPool" + "text": "The sum of firstQuery and queryCount must be less than or equal to the number of queries in queryPool", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyQueryPoolResults-flags-00822", - "text": " If VK_QUERY_RESULT_64_BIT is not set in flags then dstOffset and stride must be multiples of 4" + "text": "If VK_QUERY_RESULT_64_BIT is not set in flags then dstOffset and stride must be multiples of 4", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyQueryPoolResults-flags-00823", - "text": " If VK_QUERY_RESULT_64_BIT is set in flags then dstOffset and stride must be multiples of 8" + "text": "If VK_QUERY_RESULT_64_BIT is set in flags then dstOffset and stride must be multiples of 8", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyQueryPoolResults-dstBuffer-00824", - "text": " dstBuffer must have enough storage, from dstOffset, to contain the result of each query, as described here" + "text": "dstBuffer must have enough storage, from dstOffset, to contain the result of each query, as described here", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyQueryPoolResults-dstBuffer-00825", - "text": " dstBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag" + "text": "dstBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyQueryPoolResults-dstBuffer-00826", - "text": " If dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyQueryPoolResults-queryType-00827", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_TIMESTAMP, flags must not contain VK_QUERY_RESULT_PARTIAL_BIT" + "text": "If the queryType used to create queryPool was VK_QUERY_TYPE_TIMESTAMP, flags must not contain VK_QUERY_RESULT_PARTIAL_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyQueryPoolResults-queryType-03232", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, VkPhysicalDevicePerformanceQueryPropertiesKHR::allowCommandBufferQueryCopies must be VK_TRUE" + "text": "If the queryType used to create queryPool was VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, VkPhysicalDevicePerformanceQueryPropertiesKHR::allowCommandBufferQueryCopies must be VK_TRUE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyQueryPoolResults-queryType-03233", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, flags must not contain VK_QUERY_RESULT_WITH_AVAILABILITY_BIT, VK_QUERY_RESULT_WITH_STATUS_BIT_KHR, VK_QUERY_RESULT_PARTIAL_BIT, or VK_QUERY_RESULT_64_BIT" + "text": "If the queryType used to create queryPool was VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, flags must not contain VK_QUERY_RESULT_WITH_AVAILABILITY_BIT, VK_QUERY_RESULT_WITH_STATUS_BIT_KHR, VK_QUERY_RESULT_PARTIAL_BIT, or VK_QUERY_RESULT_64_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyQueryPoolResults-queryType-03234", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, the queryPool must have been submitted once for each pass as retrieved via a call to vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR" + "text": "If the queryType used to create queryPool was VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, the queryPool must have been submitted once for each pass as retrieved via a call to vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyQueryPoolResults-queryType-02734", - "text": " vkCmdCopyQueryPoolResults must not be called if the queryType used to create queryPool was VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL" + "text": "vkCmdCopyQueryPoolResults must not be called if the queryType used to create queryPool was VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyQueryPoolResults-queryType-06901", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR, then flags must include VK_QUERY_RESULT_WITH_STATUS_BIT_KHR" + "text": "If the queryType used to create queryPool was VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR, then flags must include VK_QUERY_RESULT_WITH_STATUS_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyQueryPoolResults-flags-06902", - "text": " If flags includes VK_QUERY_RESULT_WITH_STATUS_BIT_KHR, then it must not include VK_QUERY_RESULT_WITH_AVAILABILITY_BIT" + "text": "If flags includes VK_QUERY_RESULT_WITH_STATUS_BIT_KHR, then it must not include VK_QUERY_RESULT_WITH_AVAILABILITY_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyQueryPoolResults-None-07429", - "text": " All queries used by the command must not be active" + "text": "All queries used by the command must not be active", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyQueryPoolResults-None-08752", - "text": " All queries used by the command must have been made available by prior executed commands" + "text": "All queries used by the command must have been made available by prior executed commands", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyQueryPoolResults-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyQueryPoolResults-queryPool-parameter", - "text": " queryPool must be a valid VkQueryPool handle" + "text": "queryPool must be a valid VkQueryPool handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyQueryPoolResults-dstBuffer-parameter", - "text": " dstBuffer must be a valid VkBuffer handle" + "text": "dstBuffer must be a valid VkBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyQueryPoolResults-flags-parameter", - "text": " flags must be a valid combination of VkQueryResultFlagBits values" + "text": "flags must be a valid combination of VkQueryResultFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyQueryPoolResults-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyQueryPoolResults-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyQueryPoolResults-renderpass", - "text": " This command must only be called outside of a render pass instance" + "text": "This command must only be called outside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyQueryPoolResults-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyQueryPoolResults-commonparent", - "text": " Each of commandBuffer, dstBuffer, and queryPool must have been created, allocated, or retrieved from the same VkDevice" + "text": "Each of commandBuffer, dstBuffer, and queryPool must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -26610,103 +33002,128 @@ "core": [ { "vuid": "VUID-vkCmdWriteTimestamp2-stage-03929", - "text": " If the geometryShader feature is not enabled, pname:stage must not contain VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT" + "text": "If the geometryShader feature is not enabled, stage must not contain VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteTimestamp2-stage-03930", - "text": " If the tessellationShader feature is not enabled, pname:stage must not contain VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT" + "text": "If the tessellationShader feature is not enabled, stage must not contain VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteTimestamp2-stage-03931", - "text": " If the conditionalRendering feature is not enabled, pname:stage must not contain VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT" + "text": "If the conditionalRendering feature is not enabled, stage must not contain VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteTimestamp2-stage-03932", - "text": " If the fragmentDensityMap feature is not enabled, pname:stage must not contain VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT" + "text": "If the fragmentDensityMap feature is not enabled, stage must not contain VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteTimestamp2-stage-03933", - "text": " If the transformFeedback feature is not enabled, pname:stage must not contain VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT" + "text": "If the transformFeedback feature is not enabled, stage must not contain VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteTimestamp2-stage-03934", - "text": " If the meshShader feature is not enabled, pname:stage must not contain VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT" + "text": "If the meshShader feature is not enabled, stage must not contain VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteTimestamp2-stage-03935", - "text": " If the taskShader feature is not enabled, pname:stage must not contain VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT" + "text": "If the taskShader feature is not enabled, stage must not contain VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteTimestamp2-stage-07316", - "text": " If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pname:stage must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR" + "text": "If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, stage must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteTimestamp2-stage-04957", - "text": " If the subpassShading feature is not enabled, pname:stage must not contain VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI" + "text": "If the subpassShading feature is not enabled, stage must not contain VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteTimestamp2-stage-04995", - "text": " If the invocationMask feature is not enabled, pname:stage must not contain VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI" + "text": "If the invocationMask feature is not enabled, stage must not contain VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteTimestamp2-stage-07946", - "text": " If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, pname:stage must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR" + "text": "If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, stage must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteTimestamp2-synchronization2-03858", - "text": " The synchronization2 feature must be enabled" + "text": "The synchronization2 feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteTimestamp2-stage-03859", - "text": " stage must only include a single pipeline stage" + "text": "stage must only include a single pipeline stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteTimestamp2-stage-03860", - "text": " stage must only include stages valid for the queue family that was used to create the command pool that commandBuffer was allocated from" + "text": "stage must only include stages valid for the queue family that was used to create the command pool that commandBuffer was allocated from", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteTimestamp2-queryPool-03861", - "text": " queryPool must have been created with a queryType of VK_QUERY_TYPE_TIMESTAMP" + "text": "queryPool must have been created with a queryType of VK_QUERY_TYPE_TIMESTAMP", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteTimestamp2-timestampValidBits-03863", - "text": " The command pool’s queue family must support a non-zero timestampValidBits" + "text": "The command pool’s queue family must support a non-zero timestampValidBits", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteTimestamp2-query-04903", - "text": " query must be less than the number of queries in queryPool" + "text": "query must be less than the number of queries in queryPool", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteTimestamp2-None-03864", - "text": " All queries used by the command must be unavailable" + "text": "All queries used by the command must be unavailable", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteTimestamp2-query-03865", - "text": " If vkCmdWriteTimestamp2 is called within a render pass instance, the sum of query and the number of bits set in the current subpass’s view mask must be less than or equal to the number of queries in queryPool" + "text": "If vkCmdWriteTimestamp2 is called within a render pass instance, the sum of query and the number of bits set in the current subpass’s view mask must be less than or equal to the number of queries in queryPool", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteTimestamp2-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteTimestamp2-stage-parameter", - "text": " stage must be a valid combination of VkPipelineStageFlagBits2 values" + "text": "stage must be a valid combination of VkPipelineStageFlagBits2 values", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteTimestamp2-queryPool-parameter", - "text": " queryPool must be a valid VkQueryPool handle" + "text": "queryPool must be a valid VkQueryPool handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteTimestamp2-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteTimestamp2-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, compute, decode, or encode operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, compute, decode, or encode operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteTimestamp2-commonparent", - "text": " Both of commandBuffer, and queryPool must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of commandBuffer, and queryPool must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -26714,91 +33131,113 @@ "core": [ { "vuid": "VUID-vkCmdWriteTimestamp-pipelineStage-04074", - "text": " pipelineStage must be a valid stage for the queue family that was used to create the command pool that commandBuffer was allocated from" + "text": "pipelineStage must be a valid stage for the queue family that was used to create the command pool that commandBuffer was allocated from", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteTimestamp-pipelineStage-04075", - "text": " If the geometryShader feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT" + "text": "If the geometryShader feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteTimestamp-pipelineStage-04076", - "text": " If the tessellationShader feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT" + "text": "If the tessellationShader feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteTimestamp-pipelineStage-04077", - "text": " If the conditionalRendering feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT" + "text": "If the conditionalRendering feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteTimestamp-pipelineStage-04078", - "text": " If the fragmentDensityMap feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT" + "text": "If the fragmentDensityMap feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteTimestamp-pipelineStage-04079", - "text": " If the transformFeedback feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT" + "text": "If the transformFeedback feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteTimestamp-pipelineStage-04080", - "text": " If the meshShader feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT" + "text": "If the meshShader feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteTimestamp-pipelineStage-07077", - "text": " If the taskShader feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT" + "text": "If the taskShader feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteTimestamp-shadingRateImage-07314", - "text": " If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pipelineStage must not be VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR" + "text": "If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pipelineStage must not be VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteTimestamp-synchronization2-06489", - "text": " If the synchronization2 feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_NONE" + "text": "If the synchronization2 feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_NONE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteTimestamp-rayTracingPipeline-07943", - "text": " If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, pipelineStage must not be VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR" + "text": "If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, pipelineStage must not be VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteTimestamp-queryPool-01416", - "text": " queryPool must have been created with a queryType of VK_QUERY_TYPE_TIMESTAMP" + "text": "queryPool must have been created with a queryType of VK_QUERY_TYPE_TIMESTAMP", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteTimestamp-timestampValidBits-00829", - "text": " The command pool’s queue family must support a non-zero timestampValidBits" + "text": "The command pool’s queue family must support a non-zero timestampValidBits", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteTimestamp-query-04904", - "text": " query must be less than the number of queries in queryPool" + "text": "query must be less than the number of queries in queryPool", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteTimestamp-None-00830", - "text": " All queries used by the command must be unavailable" + "text": "All queries used by the command must be unavailable", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteTimestamp-query-00831", - "text": " If vkCmdWriteTimestamp is called within a render pass instance, the sum of query and the number of bits set in the current subpass’s view mask must be less than or equal to the number of queries in queryPool" + "text": "If vkCmdWriteTimestamp is called within a render pass instance, the sum of query and the number of bits set in the current subpass’s view mask must be less than or equal to the number of queries in queryPool", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteTimestamp-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteTimestamp-pipelineStage-parameter", - "text": " pipelineStage must be a valid VkPipelineStageFlagBits value" + "text": "pipelineStage must be a valid VkPipelineStageFlagBits value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteTimestamp-queryPool-parameter", - "text": " queryPool must be a valid VkQueryPool handle" + "text": "queryPool must be a valid VkQueryPool handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteTimestamp-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteTimestamp-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, compute, decode, encode, or optical flow operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, compute, decode, encode, or optical flow operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteTimestamp-commonparent", - "text": " Both of commandBuffer, and queryPool must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of commandBuffer, and queryPool must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -26806,11 +33245,13 @@ "core": [ { "vuid": "VUID-vkAcquireProfilingLockKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkAcquireProfilingLockKHR-pInfo-parameter", - "text": " pInfo must be a valid pointer to a valid VkAcquireProfilingLockInfoKHR structure" + "text": "pInfo must be a valid pointer to a valid VkAcquireProfilingLockInfoKHR structure", + "page": "vkspec" } ] }, @@ -26818,15 +33259,18 @@ "core": [ { "vuid": "VUID-VkAcquireProfilingLockInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkAcquireProfilingLockInfoKHR-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkAcquireProfilingLockInfoKHR-flags-zerobitmask", - "text": " flags must be 0" + "text": "flags must be 0", + "page": "vkspec" } ] }, @@ -26834,11 +33278,13 @@ "core": [ { "vuid": "VUID-vkReleaseProfilingLockKHR-device-03235", - "text": " The profiling lock of device must have been held via a previous successful call to vkAcquireProfilingLockKHR" + "text": "The profiling lock of device must have been held via a previous successful call to vkAcquireProfilingLockKHR", + "page": "vkspec" }, { "vuid": "VUID-vkReleaseProfilingLockKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" } ] }, @@ -26846,11 +33292,13 @@ "core": [ { "vuid": "VUID-vkInitializePerformanceApiINTEL-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkInitializePerformanceApiINTEL-pInitializeInfo-parameter", - "text": " pInitializeInfo must be a valid pointer to a valid VkInitializePerformanceApiInfoINTEL structure" + "text": "pInitializeInfo must be a valid pointer to a valid VkInitializePerformanceApiInfoINTEL structure", + "page": "vkspec" } ] }, @@ -26858,11 +33306,13 @@ "core": [ { "vuid": "VUID-VkInitializePerformanceApiInfoINTEL-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL" + "text": "sType must be VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL", + "page": "vkspec" }, { "vuid": "VUID-VkInitializePerformanceApiInfoINTEL-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" } ] }, @@ -26870,7 +33320,8 @@ "core": [ { "vuid": "VUID-vkUninitializePerformanceApiINTEL-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" } ] }, @@ -26878,15 +33329,18 @@ "core": [ { "vuid": "VUID-vkGetPerformanceParameterINTEL-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPerformanceParameterINTEL-parameter-parameter", - "text": " parameter must be a valid VkPerformanceParameterTypeINTEL value" + "text": "parameter must be a valid VkPerformanceParameterTypeINTEL value", + "page": "vkspec" }, { "vuid": "VUID-vkGetPerformanceParameterINTEL-pValue-parameter", - "text": " pValue must be a valid pointer to a VkPerformanceValueINTEL structure" + "text": "pValue must be a valid pointer to a VkPerformanceValueINTEL structure", + "page": "vkspec" } ] }, @@ -26894,11 +33348,13 @@ "core": [ { "vuid": "VUID-VkPerformanceValueINTEL-type-parameter", - "text": " type must be a valid VkPerformanceValueTypeINTEL value" + "text": "type must be a valid VkPerformanceValueTypeINTEL value", + "page": "vkspec" }, { "vuid": "VUID-VkPerformanceValueINTEL-valueString-parameter", - "text": " If type is VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL, the valueString member of data must be a null-terminated UTF-8 string" + "text": "If type is VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL, the valueString member of data must be a null-terminated UTF-8 string", + "page": "vkspec" } ] }, @@ -26906,11 +33362,13 @@ "core": [ { "vuid": "VUID-VkQueryPoolPerformanceQueryCreateInfoINTEL-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL" + "text": "sType must be VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL", + "page": "vkspec" }, { "vuid": "VUID-VkQueryPoolPerformanceQueryCreateInfoINTEL-performanceCountersSampling-parameter", - "text": " performanceCountersSampling must be a valid VkQueryPoolSamplingModeINTEL value" + "text": "performanceCountersSampling must be a valid VkQueryPoolSamplingModeINTEL value", + "page": "vkspec" } ] }, @@ -26918,23 +33376,28 @@ "core": [ { "vuid": "VUID-vkCmdSetPerformanceMarkerINTEL-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetPerformanceMarkerINTEL-pMarkerInfo-parameter", - "text": " pMarkerInfo must be a valid pointer to a valid VkPerformanceMarkerInfoINTEL structure" + "text": "pMarkerInfo must be a valid pointer to a valid VkPerformanceMarkerInfoINTEL structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetPerformanceMarkerINTEL-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetPerformanceMarkerINTEL-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, compute, or transfer operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics, compute, or transfer operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetPerformanceMarkerINTEL-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -26942,11 +33405,13 @@ "core": [ { "vuid": "VUID-VkPerformanceMarkerInfoINTEL-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL" + "text": "sType must be VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL", + "page": "vkspec" }, { "vuid": "VUID-VkPerformanceMarkerInfoINTEL-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" } ] }, @@ -26954,23 +33419,28 @@ "core": [ { "vuid": "VUID-vkCmdSetPerformanceStreamMarkerINTEL-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetPerformanceStreamMarkerINTEL-pMarkerInfo-parameter", - "text": " pMarkerInfo must be a valid pointer to a valid VkPerformanceStreamMarkerInfoINTEL structure" + "text": "pMarkerInfo must be a valid pointer to a valid VkPerformanceStreamMarkerInfoINTEL structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetPerformanceStreamMarkerINTEL-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetPerformanceStreamMarkerINTEL-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, compute, or transfer operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics, compute, or transfer operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetPerformanceStreamMarkerINTEL-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -26978,15 +33448,18 @@ "core": [ { "vuid": "VUID-VkPerformanceStreamMarkerInfoINTEL-marker-02735", - "text": " The value written by the application into marker must only used the valid bits as reported by vkGetPerformanceParameterINTEL with the VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL" + "text": "The value written by the application into marker must only used the valid bits as reported by vkGetPerformanceParameterINTEL with the VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL", + "page": "vkspec" }, { "vuid": "VUID-VkPerformanceStreamMarkerInfoINTEL-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL" + "text": "sType must be VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL", + "page": "vkspec" }, { "vuid": "VUID-VkPerformanceStreamMarkerInfoINTEL-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" } ] }, @@ -26994,27 +33467,33 @@ "core": [ { "vuid": "VUID-vkCmdSetPerformanceOverrideINTEL-pOverrideInfo-02736", - "text": " pOverrideInfo must not be used with a VkPerformanceOverrideTypeINTEL that is not reported available by vkGetPerformanceParameterINTEL" + "text": "pOverrideInfo must not be used with a VkPerformanceOverrideTypeINTEL that is not reported available by vkGetPerformanceParameterINTEL", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetPerformanceOverrideINTEL-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetPerformanceOverrideINTEL-pOverrideInfo-parameter", - "text": " pOverrideInfo must be a valid pointer to a valid VkPerformanceOverrideInfoINTEL structure" + "text": "pOverrideInfo must be a valid pointer to a valid VkPerformanceOverrideInfoINTEL structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetPerformanceOverrideINTEL-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetPerformanceOverrideINTEL-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, compute, or transfer operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics, compute, or transfer operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetPerformanceOverrideINTEL-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -27022,15 +33501,18 @@ "core": [ { "vuid": "VUID-VkPerformanceOverrideInfoINTEL-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL" + "text": "sType must be VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL", + "page": "vkspec" }, { "vuid": "VUID-VkPerformanceOverrideInfoINTEL-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkPerformanceOverrideInfoINTEL-type-parameter", - "text": " type must be a valid VkPerformanceOverrideTypeINTEL value" + "text": "type must be a valid VkPerformanceOverrideTypeINTEL value", + "page": "vkspec" } ] }, @@ -27038,15 +33520,18 @@ "core": [ { "vuid": "VUID-vkAcquirePerformanceConfigurationINTEL-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkAcquirePerformanceConfigurationINTEL-pAcquireInfo-parameter", - "text": " pAcquireInfo must be a valid pointer to a valid VkPerformanceConfigurationAcquireInfoINTEL structure" + "text": "pAcquireInfo must be a valid pointer to a valid VkPerformanceConfigurationAcquireInfoINTEL structure", + "page": "vkspec" }, { "vuid": "VUID-vkAcquirePerformanceConfigurationINTEL-pConfiguration-parameter", - "text": " pConfiguration must be a valid pointer to a VkPerformanceConfigurationINTEL handle" + "text": "pConfiguration must be a valid pointer to a VkPerformanceConfigurationINTEL handle", + "page": "vkspec" } ] }, @@ -27054,15 +33539,18 @@ "core": [ { "vuid": "VUID-VkPerformanceConfigurationAcquireInfoINTEL-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL" + "text": "sType must be VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL", + "page": "vkspec" }, { "vuid": "VUID-VkPerformanceConfigurationAcquireInfoINTEL-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkPerformanceConfigurationAcquireInfoINTEL-type-parameter", - "text": " type must be a valid VkPerformanceConfigurationTypeINTEL value" + "text": "type must be a valid VkPerformanceConfigurationTypeINTEL value", + "page": "vkspec" } ] }, @@ -27070,15 +33558,18 @@ "core": [ { "vuid": "VUID-vkQueueSetPerformanceConfigurationINTEL-queue-parameter", - "text": " queue must be a valid VkQueue handle" + "text": "queue must be a valid VkQueue handle", + "page": "vkspec" }, { "vuid": "VUID-vkQueueSetPerformanceConfigurationINTEL-configuration-parameter", - "text": " configuration must be a valid VkPerformanceConfigurationINTEL handle" + "text": "configuration must be a valid VkPerformanceConfigurationINTEL handle", + "page": "vkspec" }, { "vuid": "VUID-vkQueueSetPerformanceConfigurationINTEL-commonparent", - "text": " Both of configuration, and queue must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of configuration, and queue must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -27086,19 +33577,23 @@ "core": [ { "vuid": "VUID-vkReleasePerformanceConfigurationINTEL-configuration-02737", - "text": " configuration must not be released before all command buffers submitted while the configuration was set are in pending state" + "text": "configuration must not be released before all command buffers submitted while the configuration was set are in pending state", + "page": "vkspec" }, { "vuid": "VUID-vkReleasePerformanceConfigurationINTEL-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkReleasePerformanceConfigurationINTEL-configuration-parameter", - "text": " If configuration is not VK_NULL_HANDLE, configuration must be a valid VkPerformanceConfigurationINTEL handle" + "text": "If configuration is not VK_NULL_HANDLE, configuration must be a valid VkPerformanceConfigurationINTEL handle", + "page": "vkspec" }, { "vuid": "VUID-vkReleasePerformanceConfigurationINTEL-configuration-parent", - "text": " If configuration is a valid handle, it must have been created, allocated, or retrieved from device" + "text": "If configuration is a valid handle, it must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -27106,15 +33601,18 @@ "core": [ { "vuid": "VUID-VkQueryPoolVideoEncodeFeedbackCreateInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkQueryPoolVideoEncodeFeedbackCreateInfoKHR-encodeFeedbackFlags-parameter", - "text": " encodeFeedbackFlags must be a valid combination of VkVideoEncodeFeedbackFlagBitsKHR values" + "text": "encodeFeedbackFlags must be a valid combination of VkVideoEncodeFeedbackFlagBitsKHR values", + "page": "vkspec" }, { "vuid": "VUID-VkQueryPoolVideoEncodeFeedbackCreateInfoKHR-encodeFeedbackFlags-requiredbitmask", - "text": " encodeFeedbackFlags must not be 0" + "text": "encodeFeedbackFlags must not be 0", + "page": "vkspec" } ] }, @@ -27122,103 +33620,128 @@ "core": [ { "vuid": "VUID-vkCmdClearColorImage-image-01993", - "text": " The format features of image must contain VK_FORMAT_FEATURE_TRANSFER_DST_BIT" + "text": "The format features of image must contain VK_FORMAT_FEATURE_TRANSFER_DST_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdClearColorImage-image-00002", - "text": " image must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag" + "text": "image must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag", + "page": "vkspec" }, { "vuid": "VUID-vkCmdClearColorImage-image-01545", - "text": " image must not use any of the formats that require a sampler {YCbCr} conversion" + "text": "image must not use any of the formats that require a sampler Y′CBCR conversion", + "page": "vkspec" }, { "vuid": "VUID-vkCmdClearColorImage-image-00003", - "text": " If image is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If image is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdClearColorImage-imageLayout-00004", - "text": " imageLayout must specify the layout of the image subresource ranges of image specified in pRanges at the time this command is executed on a VkDevice" + "text": "imageLayout must specify the layout of the image subresource ranges of image specified in pRanges at the time this command is executed on a VkDevice", + "page": "vkspec" }, { "vuid": "VUID-vkCmdClearColorImage-imageLayout-01394", - "text": " imageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL" + "text": "imageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL", + "page": "vkspec" }, { "vuid": "VUID-vkCmdClearColorImage-aspectMask-02498", - "text": " The VkImageSubresourceRange::aspectMask members of the elements of the pRanges array must each only include VK_IMAGE_ASPECT_COLOR_BIT" + "text": "The VkImageSubresourceRange::aspectMask members of the elements of the pRanges array must each only include VK_IMAGE_ASPECT_COLOR_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdClearColorImage-baseMipLevel-01470", - "text": " The VkImageSubresourceRange::baseMipLevel members of the elements of the pRanges array must each be less than the mipLevels specified in VkImageCreateInfo when image was created" + "text": "The VkImageSubresourceRange::baseMipLevel members of the elements of the pRanges array must each be less than the mipLevels specified in VkImageCreateInfo when image was created", + "page": "vkspec" }, { "vuid": "VUID-vkCmdClearColorImage-pRanges-01692", - "text": " For each VkImageSubresourceRange element of pRanges, if the levelCount member is not VK_REMAINING_MIP_LEVELS, then baseMipLevel + levelCount must be less than or equal to the mipLevels specified in VkImageCreateInfo when image was created" + "text": "For each VkImageSubresourceRange element of pRanges, if the levelCount member is not VK_REMAINING_MIP_LEVELS, then baseMipLevel + levelCount must be less than or equal to the mipLevels specified in VkImageCreateInfo when image was created", + "page": "vkspec" }, { "vuid": "VUID-vkCmdClearColorImage-baseArrayLayer-01472", - "text": " The VkImageSubresourceRange::baseArrayLayer members of the elements of the pRanges array must each be less than the arrayLayers specified in VkImageCreateInfo when image was created" + "text": "The VkImageSubresourceRange::baseArrayLayer members of the elements of the pRanges array must each be less than the arrayLayers specified in VkImageCreateInfo when image was created", + "page": "vkspec" }, { "vuid": "VUID-vkCmdClearColorImage-pRanges-01693", - "text": " For each VkImageSubresourceRange element of pRanges, if the layerCount member is not VK_REMAINING_ARRAY_LAYERS, then baseArrayLayer + layerCount must be less than or equal to the arrayLayers specified in VkImageCreateInfo when image was created" + "text": "For each VkImageSubresourceRange element of pRanges, if the layerCount member is not VK_REMAINING_ARRAY_LAYERS, then baseArrayLayer + layerCount must be less than or equal to the arrayLayers specified in VkImageCreateInfo when image was created", + "page": "vkspec" }, { "vuid": "VUID-vkCmdClearColorImage-image-00007", - "text": " image must not have a compressed or depth/stencil format" + "text": "image must not have a compressed or depth/stencil format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdClearColorImage-pColor-04961", - "text": " pColor must be a valid pointer to a VkClearColorValue union" + "text": "pColor must be a valid pointer to a VkClearColorValue union", + "page": "vkspec" }, { "vuid": "VUID-vkCmdClearColorImage-commandBuffer-01805", - "text": " If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, image must not be a protected image" + "text": "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, image must not be a protected image", + "page": "vkspec" }, { "vuid": "VUID-vkCmdClearColorImage-commandBuffer-01806", - "text": " If commandBuffer is a protected command buffer and protectedNoFault is not supported, must not be an unprotected image" + "text": "If commandBuffer is a protected command buffer and protectedNoFault is not supported, must not be an unprotected image", + "page": "vkspec" }, { "vuid": "VUID-vkCmdClearColorImage-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdClearColorImage-image-parameter", - "text": " image must be a valid VkImage handle" + "text": "image must be a valid VkImage handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdClearColorImage-imageLayout-parameter", - "text": " imageLayout must be a valid VkImageLayout value" + "text": "imageLayout must be a valid VkImageLayout value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdClearColorImage-pRanges-parameter", - "text": " pRanges must be a valid pointer to an array of rangeCount valid VkImageSubresourceRange structures" + "text": "pRanges must be a valid pointer to an array of rangeCount valid VkImageSubresourceRange structures", + "page": "vkspec" }, { "vuid": "VUID-vkCmdClearColorImage-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdClearColorImage-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdClearColorImage-renderpass", - "text": " This command must only be called outside of a render pass instance" + "text": "This command must only be called outside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdClearColorImage-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdClearColorImage-rangeCount-arraylength", - "text": " rangeCount must be greater than 0" + "text": "rangeCount must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdClearColorImage-commonparent", - "text": " Both of commandBuffer, and image must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of commandBuffer, and image must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -27226,115 +33749,143 @@ "core": [ { "vuid": "VUID-vkCmdClearDepthStencilImage-image-01994", - "text": " The format features of image must contain VK_FORMAT_FEATURE_TRANSFER_DST_BIT" + "text": "The format features of image must contain VK_FORMAT_FEATURE_TRANSFER_DST_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdClearDepthStencilImage-pRanges-02658", - "text": " If the aspect member of any element of pRanges includes VK_IMAGE_ASPECT_STENCIL_BIT, and image was created with separate stencil usage, VK_IMAGE_USAGE_TRANSFER_DST_BIT must have been included in the VkImageStencilUsageCreateInfo::stencilUsage used to create image" + "text": "If the aspect member of any element of pRanges includes VK_IMAGE_ASPECT_STENCIL_BIT, and image was created with separate stencil usage, VK_IMAGE_USAGE_TRANSFER_DST_BIT must have been included in the VkImageStencilUsageCreateInfo::stencilUsage used to create image", + "page": "vkspec" }, { "vuid": "VUID-vkCmdClearDepthStencilImage-pRanges-02659", - "text": " If the aspect member of any element of pRanges includes VK_IMAGE_ASPECT_STENCIL_BIT, and image was not created with separate stencil usage, VK_IMAGE_USAGE_TRANSFER_DST_BIT must have been included in the VkImageCreateInfo::usage used to create image" + "text": "If the aspect member of any element of pRanges includes VK_IMAGE_ASPECT_STENCIL_BIT, and image was not created with separate stencil usage, VK_IMAGE_USAGE_TRANSFER_DST_BIT must have been included in the VkImageCreateInfo::usage used to create image", + "page": "vkspec" }, { "vuid": "VUID-vkCmdClearDepthStencilImage-pRanges-02660", - "text": " If the aspect member of any element of pRanges includes VK_IMAGE_ASPECT_DEPTH_BIT, VK_IMAGE_USAGE_TRANSFER_DST_BIT must have been included in the VkImageCreateInfo::usage used to create image" + "text": "If the aspect member of any element of pRanges includes VK_IMAGE_ASPECT_DEPTH_BIT, VK_IMAGE_USAGE_TRANSFER_DST_BIT must have been included in the VkImageCreateInfo::usage used to create image", + "page": "vkspec" }, { "vuid": "VUID-vkCmdClearDepthStencilImage-image-00010", - "text": " If image is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If image is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdClearDepthStencilImage-imageLayout-00011", - "text": " imageLayout must specify the layout of the image subresource ranges of image specified in pRanges at the time this command is executed on a VkDevice" + "text": "imageLayout must specify the layout of the image subresource ranges of image specified in pRanges at the time this command is executed on a VkDevice", + "page": "vkspec" }, { "vuid": "VUID-vkCmdClearDepthStencilImage-imageLayout-00012", - "text": " imageLayout must be either of VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL" + "text": "imageLayout must be either of VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL", + "page": "vkspec" }, { "vuid": "VUID-vkCmdClearDepthStencilImage-aspectMask-02824", - "text": " The VkImageSubresourceRange::aspectMask member of each element of the pRanges array must not include bits other than VK_IMAGE_ASPECT_DEPTH_BIT or VK_IMAGE_ASPECT_STENCIL_BIT" + "text": "The VkImageSubresourceRange::aspectMask member of each element of the pRanges array must not include bits other than VK_IMAGE_ASPECT_DEPTH_BIT or VK_IMAGE_ASPECT_STENCIL_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdClearDepthStencilImage-image-02825", - "text": " If the image’s format does not have a stencil component, then the VkImageSubresourceRange::aspectMask member of each element of the pRanges array must not include the VK_IMAGE_ASPECT_STENCIL_BIT bit" + "text": "If the image’s format does not have a stencil component, then the VkImageSubresourceRange::aspectMask member of each element of the pRanges array must not include the VK_IMAGE_ASPECT_STENCIL_BIT bit", + "page": "vkspec" }, { "vuid": "VUID-vkCmdClearDepthStencilImage-image-02826", - "text": " If the image’s format does not have a depth component, then the VkImageSubresourceRange::aspectMask member of each element of the pRanges array must not include the VK_IMAGE_ASPECT_DEPTH_BIT bit" + "text": "If the image’s format does not have a depth component, then the VkImageSubresourceRange::aspectMask member of each element of the pRanges array must not include the VK_IMAGE_ASPECT_DEPTH_BIT bit", + "page": "vkspec" }, { "vuid": "VUID-vkCmdClearDepthStencilImage-baseMipLevel-01474", - "text": " The VkImageSubresourceRange::baseMipLevel members of the elements of the pRanges array must each be less than the mipLevels specified in VkImageCreateInfo when image was created" + "text": "The VkImageSubresourceRange::baseMipLevel members of the elements of the pRanges array must each be less than the mipLevels specified in VkImageCreateInfo when image was created", + "page": "vkspec" }, { "vuid": "VUID-vkCmdClearDepthStencilImage-pRanges-01694", - "text": " For each VkImageSubresourceRange element of pRanges, if the levelCount member is not VK_REMAINING_MIP_LEVELS, then baseMipLevel + levelCount must be less than or equal to the mipLevels specified in VkImageCreateInfo when image was created" + "text": "For each VkImageSubresourceRange element of pRanges, if the levelCount member is not VK_REMAINING_MIP_LEVELS, then baseMipLevel + levelCount must be less than or equal to the mipLevels specified in VkImageCreateInfo when image was created", + "page": "vkspec" }, { "vuid": "VUID-vkCmdClearDepthStencilImage-baseArrayLayer-01476", - "text": " The VkImageSubresourceRange::baseArrayLayer members of the elements of the pRanges array must each be less than the arrayLayers specified in VkImageCreateInfo when image was created" + "text": "The VkImageSubresourceRange::baseArrayLayer members of the elements of the pRanges array must each be less than the arrayLayers specified in VkImageCreateInfo when image was created", + "page": "vkspec" }, { "vuid": "VUID-vkCmdClearDepthStencilImage-pRanges-01695", - "text": " For each VkImageSubresourceRange element of pRanges, if the layerCount member is not VK_REMAINING_ARRAY_LAYERS, then baseArrayLayer + layerCount must be less than or equal to the arrayLayers specified in VkImageCreateInfo when image was created" + "text": "For each VkImageSubresourceRange element of pRanges, if the layerCount member is not VK_REMAINING_ARRAY_LAYERS, then baseArrayLayer + layerCount must be less than or equal to the arrayLayers specified in VkImageCreateInfo when image was created", + "page": "vkspec" }, { "vuid": "VUID-vkCmdClearDepthStencilImage-image-00014", - "text": " image must have a depth/stencil format" + "text": "image must have a depth/stencil format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdClearDepthStencilImage-commandBuffer-01807", - "text": " If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, image must not be a protected image" + "text": "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, image must not be a protected image", + "page": "vkspec" }, { "vuid": "VUID-vkCmdClearDepthStencilImage-commandBuffer-01808", - "text": " If commandBuffer is a protected command buffer and protectedNoFault is not supported, image must not be an unprotected image" + "text": "If commandBuffer is a protected command buffer and protectedNoFault is not supported, image must not be an unprotected image", + "page": "vkspec" }, { "vuid": "VUID-vkCmdClearDepthStencilImage-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdClearDepthStencilImage-image-parameter", - "text": " image must be a valid VkImage handle" + "text": "image must be a valid VkImage handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdClearDepthStencilImage-imageLayout-parameter", - "text": " imageLayout must be a valid VkImageLayout value" + "text": "imageLayout must be a valid VkImageLayout value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdClearDepthStencilImage-pDepthStencil-parameter", - "text": " pDepthStencil must be a valid pointer to a valid VkClearDepthStencilValue structure" + "text": "pDepthStencil must be a valid pointer to a valid VkClearDepthStencilValue structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdClearDepthStencilImage-pRanges-parameter", - "text": " pRanges must be a valid pointer to an array of rangeCount valid VkImageSubresourceRange structures" + "text": "pRanges must be a valid pointer to an array of rangeCount valid VkImageSubresourceRange structures", + "page": "vkspec" }, { "vuid": "VUID-vkCmdClearDepthStencilImage-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdClearDepthStencilImage-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdClearDepthStencilImage-renderpass", - "text": " This command must only be called outside of a render pass instance" + "text": "This command must only be called outside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdClearDepthStencilImage-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdClearDepthStencilImage-rangeCount-arraylength", - "text": " rangeCount must be greater than 0" + "text": "rangeCount must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdClearDepthStencilImage-commonparent", - "text": " Both of commandBuffer, and image must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of commandBuffer, and image must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -27342,83 +33893,108 @@ "core": [ { "vuid": "VUID-vkCmdClearAttachments-aspectMask-07884", - "text": " If the current render pass instance does not use dynamic rendering, and the aspectMask member of any element of pAttachments contains VK_IMAGE_ASPECT_DEPTH_BIT, the current subpass instance’s depth-stencil attachment must be either VK_ATTACHMENT_UNUSED or the attachment format must contain a depth component" + "text": "If the current render pass instance does not use dynamic rendering, and the aspectMask member of any element of pAttachments contains VK_IMAGE_ASPECT_DEPTH_BIT, the current subpass instance’s depth-stencil attachment must be either VK_ATTACHMENT_UNUSED or the attachment format must contain a depth component", + "page": "vkspec" }, { "vuid": "VUID-vkCmdClearAttachments-aspectMask-07885", - "text": " If the current render pass instance does not use dynamic rendering, and the aspectMask member of any element of pAttachments contains VK_IMAGE_ASPECT_STENCIL_BIT, the current subpass instance’s depth-stencil attachment must be either VK_ATTACHMENT_UNUSED or the attachment format must contain a stencil component" + "text": "If the current render pass instance does not use dynamic rendering, and the aspectMask member of any element of pAttachments contains VK_IMAGE_ASPECT_STENCIL_BIT, the current subpass instance’s depth-stencil attachment must be either VK_ATTACHMENT_UNUSED or the attachment format must contain a stencil component", + "page": "vkspec" }, { "vuid": "VUID-vkCmdClearAttachments-aspectMask-07271", - "text": " If the aspectMask member of any element of pAttachments contains VK_IMAGE_ASPECT_COLOR_BIT, the colorAttachment must be a valid color attachment index in the current render pass instance" + "text": "If the aspectMask member of any element of pAttachments contains VK_IMAGE_ASPECT_COLOR_BIT, the colorAttachment must be a valid color attachment index in the current render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdClearAttachments-rect-02682", - "text": " The rect member of each element of pRects must have an extent.width greater than 0" + "text": "The rect member of each element of pRects must have an extent.width greater than 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdClearAttachments-rect-02683", - "text": " The rect member of each element of pRects must have an extent.height greater than 0" + "text": "The rect member of each element of pRects must have an extent.height greater than 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdClearAttachments-pRects-00016", - "text": " The rectangular region specified by each element of pRects must be contained within the render area of the current render pass instance" + "text": "The rectangular region specified by each element of pRects must be contained within the render area of the current render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdClearAttachments-pRects-06937", - "text": " The layers specified by each element of pRects must be contained within every attachment that pAttachments refers to, i.e. for each element of pRects, VkClearRect::baseArrayLayer + VkClearRect::layerCount must be less than or equal to the number of layers rendered to in the current render pass instance" + "text": "The layers specified by each element of pRects must be contained within every attachment that pAttachments refers to, i.e. for each element of pRects, VkClearRect::baseArrayLayer + VkClearRect::layerCount must be less than or equal to the number of layers rendered to in the current render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdClearAttachments-layerCount-01934", - "text": " The layerCount member of each element of pRects must not be 0" + "text": "The layerCount member of each element of pRects must not be 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdClearAttachments-commandBuffer-02504", - "text": " If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, each attachment to be cleared must not be a protected image" + "text": "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, each attachment to be cleared must not be a protected image", + "page": "vkspec" }, { "vuid": "VUID-vkCmdClearAttachments-commandBuffer-02505", - "text": " If commandBuffer is a protected command buffer and protectedNoFault is not supported, each attachment to be cleared must not be an unprotected image" + "text": "If commandBuffer is a protected command buffer and protectedNoFault is not supported, each attachment to be cleared must not be an unprotected image", + "page": "vkspec" }, { "vuid": "VUID-vkCmdClearAttachments-baseArrayLayer-00018", - "text": " If the render pass instance this is recorded in uses multiview, then baseArrayLayer must be zero and layerCount must be one" + "text": "If the render pass instance this is recorded in uses multiview, then baseArrayLayer must be zero and layerCount must be one", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdClearAttachments-aspectMask-09298", + "text": "If the subpass this is recorded in performs an external format resolve, the aspectMask member of any element of pAttachments must not include VK_IMAGE_ASPECT_PLANE_i_BIT for any index i", + "page": "vkspec" }, { "vuid": "VUID-vkCmdClearAttachments-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdClearAttachments-pAttachments-parameter", - "text": " pAttachments must be a valid pointer to an array of attachmentCount valid VkClearAttachment structures" + "text": "pAttachments must be a valid pointer to an array of attachmentCount valid VkClearAttachment structures", + "page": "vkspec" }, { "vuid": "VUID-vkCmdClearAttachments-pRects-parameter", - "text": " pRects must be a valid pointer to an array of rectCount VkClearRect structures" + "text": "pRects must be a valid pointer to an array of rectCount VkClearRect structures", + "page": "vkspec" }, { "vuid": "VUID-vkCmdClearAttachments-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdClearAttachments-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdClearAttachments-renderpass", - "text": " This command must only be called inside of a render pass instance" + "text": "This command must only be called inside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdClearAttachments-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdClearAttachments-attachmentCount-arraylength", - "text": " attachmentCount must be greater than 0" + "text": "attachmentCount must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdClearAttachments-rectCount-arraylength", - "text": " rectCount must be greater than 0" + "text": "rectCount must be greater than 0", + "page": "vkspec" } ] }, @@ -27426,27 +34002,33 @@ "core": [ { "vuid": "VUID-VkClearAttachment-aspectMask-00019", - "text": " If aspectMask includes VK_IMAGE_ASPECT_COLOR_BIT, it must not include VK_IMAGE_ASPECT_DEPTH_BIT or VK_IMAGE_ASPECT_STENCIL_BIT" + "text": "If aspectMask includes VK_IMAGE_ASPECT_COLOR_BIT, it must not include VK_IMAGE_ASPECT_DEPTH_BIT or VK_IMAGE_ASPECT_STENCIL_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkClearAttachment-aspectMask-00020", - "text": " aspectMask must not include VK_IMAGE_ASPECT_METADATA_BIT" + "text": "aspectMask must not include VK_IMAGE_ASPECT_METADATA_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkClearAttachment-aspectMask-02246", - "text": " aspectMask must not include VK_IMAGE_ASPECT_MEMORY_PLANE{ibit}BIT_EXT for any index i" + "text": "aspectMask must not include VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT for any index i", + "page": "vkspec" }, { "vuid": "VUID-VkClearAttachment-clearValue-00021", - "text": " clearValue must be a valid VkClearValue union" + "text": "clearValue must be a valid VkClearValue union", + "page": "vkspec" }, { "vuid": "VUID-VkClearAttachment-aspectMask-parameter", - "text": " aspectMask must be a valid combination of VkImageAspectFlagBits values" + "text": "aspectMask must be a valid combination of VkImageAspectFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkClearAttachment-aspectMask-requiredbitmask", - "text": " aspectMask must not be 0" + "text": "aspectMask must not be 0", + "page": "vkspec" } ] }, @@ -27454,7 +34036,8 @@ "core": [ { "vuid": "VUID-VkClearDepthStencilValue-depth-00022", - "text": " Unless the VK_EXT_depth_range_unrestricted extension is enabled depth must be between 0.0 and 1.0, inclusive" + "text": "Unless the VK_EXT_depth_range_unrestricted extension is enabled depth must be between 0.0 and 1.0, inclusive", + "page": "vkspec" } ] }, @@ -27462,71 +34045,88 @@ "core": [ { "vuid": "VUID-vkCmdFillBuffer-dstOffset-00024", - "text": " dstOffset must be less than the size of dstBuffer" + "text": "dstOffset must be less than the size of dstBuffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdFillBuffer-dstOffset-00025", - "text": " dstOffset must be a multiple of 4" + "text": "dstOffset must be a multiple of 4", + "page": "vkspec" }, { "vuid": "VUID-vkCmdFillBuffer-size-00026", - "text": " If size is not equal to VK_WHOLE_SIZE, size must be greater than 0" + "text": "If size is not equal to VK_WHOLE_SIZE, size must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdFillBuffer-size-00027", - "text": " If size is not equal to VK_WHOLE_SIZE, size must be less than or equal to the size of dstBuffer minus dstOffset" + "text": "If size is not equal to VK_WHOLE_SIZE, size must be less than or equal to the size of dstBuffer minus dstOffset", + "page": "vkspec" }, { "vuid": "VUID-vkCmdFillBuffer-size-00028", - "text": " If size is not equal to VK_WHOLE_SIZE, size must be a multiple of 4" + "text": "If size is not equal to VK_WHOLE_SIZE, size must be a multiple of 4", + "page": "vkspec" }, { "vuid": "VUID-vkCmdFillBuffer-dstBuffer-00029", - "text": " dstBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag" + "text": "dstBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag", + "page": "vkspec" }, { "vuid": "VUID-vkCmdFillBuffer-apiVersion-07894", - "text": " If the VK_KHR_maintenance1 extension is not enabled and VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, the VkCommandPool that commandBuffer was allocated from must support graphics or compute operations" + "text": "If the VK_KHR_maintenance1 extension is not enabled and VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, the VkCommandPool that commandBuffer was allocated from must support graphics or compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdFillBuffer-dstBuffer-00031", - "text": " If dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdFillBuffer-commandBuffer-01811", - "text": " If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstBuffer must not be a protected buffer" + "text": "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstBuffer must not be a protected buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdFillBuffer-commandBuffer-01812", - "text": " If commandBuffer is a protected command buffer and protectedNoFault is not supported, dstBuffer must not be an unprotected buffer" + "text": "If commandBuffer is a protected command buffer and protectedNoFault is not supported, dstBuffer must not be an unprotected buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdFillBuffer-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdFillBuffer-dstBuffer-parameter", - "text": " dstBuffer must be a valid VkBuffer handle" + "text": "dstBuffer must be a valid VkBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdFillBuffer-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdFillBuffer-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support transfer, graphics or compute operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support transfer, graphics or compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdFillBuffer-renderpass", - "text": " This command must only be called outside of a render pass instance" + "text": "This command must only be called outside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdFillBuffer-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdFillBuffer-commonparent", - "text": " Both of commandBuffer, and dstBuffer must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of commandBuffer, and dstBuffer must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -27534,75 +34134,93 @@ "core": [ { "vuid": "VUID-vkCmdUpdateBuffer-dstOffset-00032", - "text": " dstOffset must be less than the size of dstBuffer" + "text": "dstOffset must be less than the size of dstBuffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdUpdateBuffer-dataSize-00033", - "text": " dataSize must be less than or equal to the size of dstBuffer minus dstOffset" + "text": "dataSize must be less than or equal to the size of dstBuffer minus dstOffset", + "page": "vkspec" }, { "vuid": "VUID-vkCmdUpdateBuffer-dstBuffer-00034", - "text": " dstBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag" + "text": "dstBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag", + "page": "vkspec" }, { "vuid": "VUID-vkCmdUpdateBuffer-dstBuffer-00035", - "text": " If dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdUpdateBuffer-dstOffset-00036", - "text": " dstOffset must be a multiple of 4" + "text": "dstOffset must be a multiple of 4", + "page": "vkspec" }, { "vuid": "VUID-vkCmdUpdateBuffer-dataSize-00037", - "text": " dataSize must be less than or equal to 65536" + "text": "dataSize must be less than or equal to 65536", + "page": "vkspec" }, { "vuid": "VUID-vkCmdUpdateBuffer-dataSize-00038", - "text": " dataSize must be a multiple of 4" + "text": "dataSize must be a multiple of 4", + "page": "vkspec" }, { "vuid": "VUID-vkCmdUpdateBuffer-commandBuffer-01813", - "text": " If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstBuffer must not be a protected buffer" + "text": "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstBuffer must not be a protected buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdUpdateBuffer-commandBuffer-01814", - "text": " If commandBuffer is a protected command buffer and protectedNoFault is not supported, dstBuffer must not be an unprotected buffer" + "text": "If commandBuffer is a protected command buffer and protectedNoFault is not supported, dstBuffer must not be an unprotected buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdUpdateBuffer-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdUpdateBuffer-dstBuffer-parameter", - "text": " dstBuffer must be a valid VkBuffer handle" + "text": "dstBuffer must be a valid VkBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdUpdateBuffer-pData-parameter", - "text": " pData must be a valid pointer to an array of dataSize bytes" + "text": "pData must be a valid pointer to an array of dataSize bytes", + "page": "vkspec" }, { "vuid": "VUID-vkCmdUpdateBuffer-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdUpdateBuffer-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdUpdateBuffer-renderpass", - "text": " This command must only be called outside of a render pass instance" + "text": "This command must only be called outside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdUpdateBuffer-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdUpdateBuffer-dataSize-arraylength", - "text": " dataSize must be greater than 0" + "text": "dataSize must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdUpdateBuffer-commonparent", - "text": " Both of commandBuffer, and dstBuffer must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of commandBuffer, and dstBuffer must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -27610,91 +34228,113 @@ "core": [ { "vuid": "VUID-vkCmdCopyBuffer-commandBuffer-01822", - "text": " If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcBuffer must not be a protected buffer" + "text": "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcBuffer must not be a protected buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBuffer-commandBuffer-01823", - "text": " If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstBuffer must not be a protected buffer" + "text": "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstBuffer must not be a protected buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBuffer-commandBuffer-01824", - "text": " If commandBuffer is a protected command buffer and protectedNoFault is not supported, dstBuffer must not be an unprotected buffer" + "text": "If commandBuffer is a protected command buffer and protectedNoFault is not supported, dstBuffer must not be an unprotected buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBuffer-srcOffset-00113", - "text": " The srcOffset member of each element of pRegions must be less than the size of srcBuffer" + "text": "The srcOffset member of each element of pRegions must be less than the size of srcBuffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBuffer-dstOffset-00114", - "text": " The dstOffset member of each element of pRegions must be less than the size of dstBuffer" + "text": "The dstOffset member of each element of pRegions must be less than the size of dstBuffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBuffer-size-00115", - "text": " The size member of each element of pRegions must be less than or equal to the size of srcBuffer minus srcOffset" + "text": "The size member of each element of pRegions must be less than or equal to the size of srcBuffer minus srcOffset", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBuffer-size-00116", - "text": " The size member of each element of pRegions must be less than or equal to the size of dstBuffer minus dstOffset" + "text": "The size member of each element of pRegions must be less than or equal to the size of dstBuffer minus dstOffset", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBuffer-pRegions-00117", - "text": " The union of the source regions, and the union of the destination regions, specified by the elements of pRegions, must not overlap in memory" + "text": "The union of the source regions, and the union of the destination regions, specified by the elements of pRegions, must not overlap in memory", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBuffer-srcBuffer-00118", - "text": " srcBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_SRC_BIT usage flag" + "text": "srcBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_SRC_BIT usage flag", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBuffer-srcBuffer-00119", - "text": " If srcBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If srcBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBuffer-dstBuffer-00120", - "text": " dstBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag" + "text": "dstBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBuffer-dstBuffer-00121", - "text": " If dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBuffer-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBuffer-srcBuffer-parameter", - "text": " srcBuffer must be a valid VkBuffer handle" + "text": "srcBuffer must be a valid VkBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBuffer-dstBuffer-parameter", - "text": " dstBuffer must be a valid VkBuffer handle" + "text": "dstBuffer must be a valid VkBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBuffer-pRegions-parameter", - "text": " pRegions must be a valid pointer to an array of regionCount valid VkBufferCopy structures" + "text": "pRegions must be a valid pointer to an array of regionCount valid VkBufferCopy structures", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBuffer-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBuffer-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBuffer-renderpass", - "text": " This command must only be called outside of a render pass instance" + "text": "This command must only be called outside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBuffer-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBuffer-regionCount-arraylength", - "text": " regionCount must be greater than 0" + "text": "regionCount must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBuffer-commonparent", - "text": " Each of commandBuffer, dstBuffer, and srcBuffer must have been created, allocated, or retrieved from the same VkDevice" + "text": "Each of commandBuffer, dstBuffer, and srcBuffer must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -27702,7 +34342,8 @@ "core": [ { "vuid": "VUID-VkBufferCopy-size-01988", - "text": " The size must be greater than 0" + "text": "The size must be greater than 0", + "page": "vkspec" } ] }, @@ -27710,39 +34351,48 @@ "core": [ { "vuid": "VUID-vkCmdCopyBuffer2-commandBuffer-01822", - "text": " If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcBuffer must not be a protected buffer" + "text": "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcBuffer must not be a protected buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBuffer2-commandBuffer-01823", - "text": " If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstBuffer must not be a protected buffer" + "text": "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstBuffer must not be a protected buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBuffer2-commandBuffer-01824", - "text": " If commandBuffer is a protected command buffer and protectedNoFault is not supported, dstBuffer must not be an unprotected buffer" + "text": "If commandBuffer is a protected command buffer and protectedNoFault is not supported, dstBuffer must not be an unprotected buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBuffer2-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBuffer2-pCopyBufferInfo-parameter", - "text": " pCopyBufferInfo must be a valid pointer to a valid VkCopyBufferInfo2 structure" + "text": "pCopyBufferInfo must be a valid pointer to a valid VkCopyBufferInfo2 structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBuffer2-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBuffer2-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBuffer2-renderpass", - "text": " This command must only be called outside of a render pass instance" + "text": "This command must only be called outside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBuffer2-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -27750,67 +34400,83 @@ "core": [ { "vuid": "VUID-VkCopyBufferInfo2-srcOffset-00113", - "text": " The srcOffset member of each element of pRegions must be less than the size of srcBuffer" + "text": "The srcOffset member of each element of pRegions must be less than the size of srcBuffer", + "page": "vkspec" }, { "vuid": "VUID-VkCopyBufferInfo2-dstOffset-00114", - "text": " The dstOffset member of each element of pRegions must be less than the size of dstBuffer" + "text": "The dstOffset member of each element of pRegions must be less than the size of dstBuffer", + "page": "vkspec" }, { "vuid": "VUID-VkCopyBufferInfo2-size-00115", - "text": " The size member of each element of pRegions must be less than or equal to the size of srcBuffer minus srcOffset" + "text": "The size member of each element of pRegions must be less than or equal to the size of srcBuffer minus srcOffset", + "page": "vkspec" }, { "vuid": "VUID-VkCopyBufferInfo2-size-00116", - "text": " The size member of each element of pRegions must be less than or equal to the size of dstBuffer minus dstOffset" + "text": "The size member of each element of pRegions must be less than or equal to the size of dstBuffer minus dstOffset", + "page": "vkspec" }, { "vuid": "VUID-VkCopyBufferInfo2-pRegions-00117", - "text": " The union of the source regions, and the union of the destination regions, specified by the elements of pRegions, must not overlap in memory" + "text": "The union of the source regions, and the union of the destination regions, specified by the elements of pRegions, must not overlap in memory", + "page": "vkspec" }, { "vuid": "VUID-VkCopyBufferInfo2-srcBuffer-00118", - "text": " srcBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_SRC_BIT usage flag" + "text": "srcBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_SRC_BIT usage flag", + "page": "vkspec" }, { "vuid": "VUID-VkCopyBufferInfo2-srcBuffer-00119", - "text": " If srcBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If srcBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-VkCopyBufferInfo2-dstBuffer-00120", - "text": " dstBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag" + "text": "dstBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag", + "page": "vkspec" }, { "vuid": "VUID-VkCopyBufferInfo2-dstBuffer-00121", - "text": " If dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-VkCopyBufferInfo2-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2" + "text": "sType must be VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2", + "page": "vkspec" }, { "vuid": "VUID-VkCopyBufferInfo2-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkCopyBufferInfo2-srcBuffer-parameter", - "text": " srcBuffer must be a valid VkBuffer handle" + "text": "srcBuffer must be a valid VkBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-VkCopyBufferInfo2-dstBuffer-parameter", - "text": " dstBuffer must be a valid VkBuffer handle" + "text": "dstBuffer must be a valid VkBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-VkCopyBufferInfo2-pRegions-parameter", - "text": " pRegions must be a valid pointer to an array of regionCount valid VkBufferCopy2 structures" + "text": "pRegions must be a valid pointer to an array of regionCount valid VkBufferCopy2 structures", + "page": "vkspec" }, { "vuid": "VUID-VkCopyBufferInfo2-regionCount-arraylength", - "text": " regionCount must be greater than 0" + "text": "regionCount must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-VkCopyBufferInfo2-commonparent", - "text": " Both of dstBuffer, and srcBuffer must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of dstBuffer, and srcBuffer must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -27818,15 +34484,18 @@ "core": [ { "vuid": "VUID-VkBufferCopy2-size-01988", - "text": " The size must be greater than 0" + "text": "The size must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-VkBufferCopy2-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_BUFFER_COPY_2" + "text": "sType must be VK_STRUCTURE_TYPE_BUFFER_COPY_2", + "page": "vkspec" }, { "vuid": "VUID-VkBufferCopy2-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" } ] }, @@ -27834,331 +34503,418 @@ "core": [ { "vuid": "VUID-vkCmdCopyImage-commandBuffer-01825", - "text": " If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcImage must not be a protected image" + "text": "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcImage must not be a protected image", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-commandBuffer-01826", - "text": " If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstImage must not be a protected image" + "text": "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstImage must not be a protected image", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-commandBuffer-01827", - "text": " If commandBuffer is a protected command buffer and protectedNoFault is not supported, dstImage must not be an unprotected image" + "text": "If commandBuffer is a protected command buffer and protectedNoFault is not supported, dstImage must not be an unprotected image", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-pRegions-00124", - "text": " The union of all source regions, and the union of all destination regions, specified by the elements of pRegions, must not overlap in memory" + "text": "The union of all source regions, and the union of all destination regions, specified by the elements of pRegions, must not overlap in memory", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-srcImage-01995", - "text": " The format features of srcImage must contain VK_FORMAT_FEATURE_TRANSFER_SRC_BIT" + "text": "The format features of srcImage must contain VK_FORMAT_FEATURE_TRANSFER_SRC_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-srcImageLayout-00128", - "text": " srcImageLayout must specify the layout of the image subresources of srcImage specified in pRegions at the time this command is executed on a VkDevice" + "text": "srcImageLayout must specify the layout of the image subresources of srcImage specified in pRegions at the time this command is executed on a VkDevice", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-srcImageLayout-01917", - "text": " srcImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, VK_IMAGE_LAYOUT_GENERAL, or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR" + "text": "srcImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, or VK_IMAGE_LAYOUT_GENERAL", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-dstImage-01996", - "text": " The format features of dstImage must contain VK_FORMAT_FEATURE_TRANSFER_DST_BIT" + "text": "The format features of dstImage must contain VK_FORMAT_FEATURE_TRANSFER_DST_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-dstImageLayout-00133", - "text": " dstImageLayout must specify the layout of the image subresources of dstImage specified in pRegions at the time this command is executed on a VkDevice" + "text": "dstImageLayout must specify the layout of the image subresources of dstImage specified in pRegions at the time this command is executed on a VkDevice", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-dstImageLayout-01395", - "text": " dstImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_GENERAL, or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR" + "text": "dstImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, or VK_IMAGE_LAYOUT_GENERAL", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-srcImage-01548", - "text": " If the VkFormat of each of srcImage and dstImage is not a multi-planar format, the VkFormat of each of srcImage and dstImage must be size-compatible" + "text": "If the VkFormat of each of srcImage and dstImage is not a multi-planar format, the VkFormat of each of srcImage and dstImage must be size-compatible", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-None-01549", - "text": " In a copy to or from a plane of a multi-planar image, the VkFormat of the image and plane must be compatible according to the description of compatible planes for the plane being copied" + "text": "In a copy to or from a plane of a multi-planar image, the VkFormat of the image and plane must be compatible according to the description of compatible planes for the plane being copied", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdCopyImage-srcImage-09247", + "text": "If the VkFormat of each of srcImage and dstImage is a compressed image format, the formats must have the same texel block extent", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-srcImage-00136", - "text": " The sample count of srcImage and dstImage must match" + "text": "The sample count of srcImage and dstImage must match", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-srcOffset-01783", - "text": " The srcOffset and extent members of each element of pRegions must respect the image transfer granularity requirements of commandBuffer’s command pool’s queue family, as described in VkQueueFamilyProperties" + "text": "The srcOffset and extent members of each element of pRegions must respect the image transfer granularity requirements of commandBuffer’s command pool’s queue family, as described in VkQueueFamilyProperties", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-dstOffset-01784", - "text": " The dstOffset and extent members of each element of pRegions must respect the image transfer granularity requirements of commandBuffer’s command pool’s queue family, as described in VkQueueFamilyProperties" + "text": "The dstOffset and extent members of each element of pRegions must respect the image transfer granularity requirements of commandBuffer’s command pool’s queue family, as described in VkQueueFamilyProperties", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-srcImage-01551", - "text": " If neither srcImage nor dstImage has a multi-planar image format then for each element of pRegions, srcSubresource.aspectMask and dstSubresource.aspectMask must match" + "text": "If neither srcImage nor dstImage has a multi-planar image format then for each element of pRegions, srcSubresource.aspectMask and dstSubresource.aspectMask must match", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-srcImage-08713", - "text": " If srcImage has a multi-planar image format, then for each element of pRegions, srcSubresource.aspectMask must be a single valid multi-planar aspect mask" + "text": "If srcImage has a multi-planar image format, then for each element of pRegions, srcSubresource.aspectMask must be a single valid multi-planar aspect mask bit", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-dstImage-08714", - "text": " If dstImage has a multi-planar image format, then for each element of pRegions, dstSubresource.aspectMask must be a single valid multi-planar aspect mask" + "text": "If dstImage has a multi-planar image format, then for each element of pRegions, dstSubresource.aspectMask must be a single valid multi-planar aspect mask bit", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-srcImage-01556", - "text": " If srcImage has a multi-planar image format and the dstImage does not have a multi-planar image format, then for each element of pRegions, dstSubresource.aspectMask must be VK_IMAGE_ASPECT_COLOR_BIT" + "text": "If srcImage has a multi-planar image format and the dstImage does not have a multi-planar image format, then for each element of pRegions, dstSubresource.aspectMask must be VK_IMAGE_ASPECT_COLOR_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-dstImage-01557", - "text": " If dstImage has a multi-planar image format and the srcImage does not have a multi-planar image format, then for each element of pRegions, srcSubresource.aspectMask must be VK_IMAGE_ASPECT_COLOR_BIT" + "text": "If dstImage has a multi-planar image format and the srcImage does not have a multi-planar image format, then for each element of pRegions, srcSubresource.aspectMask must be VK_IMAGE_ASPECT_COLOR_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-apiVersion-07932", - "text": " If the VK_KHR_maintenance1 extension is not enabled, VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, and either srcImage or dstImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, srcSubresource.baseArrayLayer and dstSubresource.baseArrayLayer must each be 0, and srcSubresource.layerCount and dstSubresource.layerCount must each be 1" + "text": "If the VK_KHR_maintenance1 extension is not enabled, or VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, and either srcImage or dstImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, srcSubresource.baseArrayLayer and dstSubresource.baseArrayLayer must both be 0, and srcSubresource.layerCount and dstSubresource.layerCount must both be 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-srcImage-04443", - "text": " If srcImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, srcSubresource.baseArrayLayer must be 0 and srcSubresource.layerCount must be 1" + "text": "If srcImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, srcSubresource.baseArrayLayer must be 0 and srcSubresource.layerCount must be 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-dstImage-04444", - "text": " If dstImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, dstSubresource.baseArrayLayer must be 0 and dstSubresource.layerCount must be 1" + "text": "If dstImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, dstSubresource.baseArrayLayer must be 0 and dstSubresource.layerCount must be 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-aspectMask-00142", - "text": " For each element of pRegions, srcSubresource.aspectMask must specify aspects present in srcImage" + "text": "For each element of pRegions, srcSubresource.aspectMask must specify aspects present in srcImage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-aspectMask-00143", - "text": " For each element of pRegions, dstSubresource.aspectMask must specify aspects present in dstImage" + "text": "For each element of pRegions, dstSubresource.aspectMask must specify aspects present in dstImage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-srcOffset-00144", - "text": " For each element of pRegions, srcOffset.x and (extent.width + srcOffset.x) must both be greater than or equal to 0 and less than or equal to the width of the specified srcSubresource of srcImage" + "text": "For each element of pRegions, srcOffset.x and (extent.width + srcOffset.x) must both be greater than or equal to 0 and less than or equal to the width of the specified srcSubresource of srcImage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-srcOffset-00145", - "text": " For each element of pRegions, srcOffset.y and (extent.height + srcOffset.y) must both be greater than or equal to 0 and less than or equal to the height of the specified srcSubresource of srcImage" + "text": "For each element of pRegions, srcOffset.y and (extent.height + srcOffset.y) must both be greater than or equal to 0 and less than or equal to the height of the specified srcSubresource of srcImage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-srcImage-00146", - "text": " If srcImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, srcOffset.y must be 0 and extent.height must be 1" + "text": "If srcImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, srcOffset.y must be 0 and extent.height must be 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-srcOffset-00147", - "text": " If srcImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, srcOffset.z and (extent.depth + srcOffset.z) must both be greater than or equal to 0 and less than or equal to the depth of the specified srcSubresource of srcImage" + "text": "If srcImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, srcOffset.z and (extent.depth + srcOffset.z) must both be greater than or equal to 0 and less than or equal to the depth of the specified srcSubresource of srcImage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-srcImage-01785", - "text": " If srcImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, srcOffset.z must be 0 and extent.depth must be 1" + "text": "If srcImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, srcOffset.z must be 0 and extent.depth must be 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-dstImage-01786", - "text": " If dstImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, dstOffset.z must be 0 and extent.depth must be 1" + "text": "If dstImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, dstOffset.z must be 0 and extent.depth must be 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-srcImage-01787", - "text": " If srcImage is of type VK_IMAGE_TYPE_2D, then for each element of pRegions, srcOffset.z must be 0" + "text": "If srcImage is of type VK_IMAGE_TYPE_2D, then for each element of pRegions, srcOffset.z must be 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-dstImage-01788", - "text": " If dstImage is of type VK_IMAGE_TYPE_2D, then for each element of pRegions, dstOffset.z must be 0" + "text": "If dstImage is of type VK_IMAGE_TYPE_2D, then for each element of pRegions, dstOffset.z must be 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-apiVersion-07933", - "text": " If the VK_KHR_maintenance1 extension is not enabled, VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, srcImage and dstImage must have the same VkImageType" + "text": "If the VK_KHR_maintenance1 extension is not enabled, and VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, srcImage and dstImage must have the same VkImageType", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-apiVersion-08969", - "text": " If the VK_KHR_maintenance1 extension is not enabled, VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, and srcImage or dstImage is of type VK_IMAGE_TYPE_2D, then for each element of pRegions, extent.depth must be 1" + "text": "If the VK_KHR_maintenance1 extension is not enabled, and VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, srcImage or dstImage is of type VK_IMAGE_TYPE_2D, then for each element of pRegions, extent.depth must be 1", + "page": "vkspec" }, { - "vuid": "VUID-vkCmdCopyImage-maintenance5-08791", - "text": " If maintenance5 is not enabled, and srcImage and dstImage have a different VkImageType, one must be VK_IMAGE_TYPE_3D and the other must be VK_IMAGE_TYPE_2D" - }, - { - "vuid": "VUID-vkCmdCopyImage-maintenance5-08792", - "text": " If the maintenance5 feature is not enabled, the layerCount member of srcSubresource or dstSubresource must not be VK_REMAINING_ARRAY_LAYERS" + "vuid": "VUID-vkCmdCopyImage-srcImage-07743", + "text": "If srcImage and dstImage have a different VkImageType, and maintenance5 is not enabled, one must be VK_IMAGE_TYPE_3D and the other must be VK_IMAGE_TYPE_2D", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-srcImage-08793", - "text": " If srcImage and dstImage have the same VkImageType, and neither of the layerCount members of srcSubresource or dstSubresource are VK_REMAINING_ARRAY_LAYERS, the layerCount members must match" + "text": "If srcImage and dstImage have the same VkImageType, for each element of pRegions, if neither of the layerCount members of srcSubresource or dstSubresource are VK_REMAINING_ARRAY_LAYERS, the layerCount members of srcSubresource or dstSubresource must match", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdCopyImage-maintenance5-08792", + "text": "If the maintenance5 feature is not enabled, the layerCount member of srcSubresource or dstSubresource must not be VK_REMAINING_ARRAY_LAYERS", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-srcImage-08794", - "text": " If srcImage and dstImage have the same VkImageType, and one of the layerCount members of srcSubresource or dstSubresource is VK_REMAINING_ARRAY_LAYERS, the other member must be either VK_REMAINING_ARRAY_LAYERS or equal to the arrayLayers member of the VkImageCreateInfo used to create the image minus baseArrayLayer" + "text": "If srcImage and dstImage have the same VkImageType, and one of the layerCount members of srcSubresource or dstSubresource is VK_REMAINING_ARRAY_LAYERS, the other member must be either VK_REMAINING_ARRAY_LAYERS or equal to the arrayLayers member of the VkImageCreateInfo used to create the image minus baseArrayLayer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-srcImage-01790", - "text": " If srcImage and dstImage are both of type VK_IMAGE_TYPE_2D, then for each element of pRegions, extent.depth must be 1" + "text": "If srcImage and dstImage are both of type VK_IMAGE_TYPE_2D, then for each element of pRegions, extent.depth must be 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-srcImage-01791", - "text": " If srcImage is of type VK_IMAGE_TYPE_2D, and dstImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, extent.depth must equal srcSubresource.layerCount" + "text": "If srcImage is of type VK_IMAGE_TYPE_2D, and dstImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, extent.depth must equal srcSubresource.layerCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-dstImage-01792", - "text": " If dstImage is of type VK_IMAGE_TYPE_2D, and srcImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, extent.depth must equal dstSubresource.layerCount" + "text": "If dstImage is of type VK_IMAGE_TYPE_2D, and srcImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, extent.depth must equal dstSubresource.layerCount", + "page": "vkspec" }, { "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) must both be greater than or equal to 0 and less than or equal to the width of the specified dstSubresource of dstImage", + "page": "vkspec" }, { "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) must both be greater than or equal to 0 and less than or equal to the height of the specified dstSubresource of dstImage", + "page": "vkspec" }, { "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", + "page": "vkspec" }, { "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) must both be greater than or equal to 0 and less than or equal to the depth of the specified dstSubresource of dstImage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-pRegions-07278", - "text": " For each element of pRegions, srcOffset.x must be a multiple of the texel block extent width of the VkFormat of srcImage" + "text": "For each element of pRegions, srcOffset.x must be a multiple of the texel block extent width of the VkFormat of srcImage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-pRegions-07279", - "text": " For each element of pRegions, srcOffset.y must be a multiple of the texel block extent height of the VkFormat of srcImage" + "text": "For each element of pRegions, srcOffset.y must be a multiple of the texel block extent height of the VkFormat of srcImage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-pRegions-07280", - "text": " For each element of pRegions, srcOffset.z must be a multiple of the texel block extent depth of the VkFormat of srcImage" + "text": "For each element of pRegions, srcOffset.z must be a multiple of the texel block extent depth of the VkFormat of srcImage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-pRegions-07281", - "text": " For each element of pRegions, dstOffset.x must be a multiple of the texel block extent width of the VkFormat of dstImage" + "text": "For each element of pRegions, dstOffset.x must be a multiple of the texel block extent width of the VkFormat of dstImage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-pRegions-07282", - "text": " For each element of pRegions, dstOffset.y must be a multiple of the texel block extent height of the VkFormat of dstImage" + "text": "For each element of pRegions, dstOffset.y must be a multiple of the texel block extent height of the VkFormat of dstImage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-pRegions-07283", - "text": " For each element of pRegions, dstOffset.z must be a multiple of the texel block extent depth of the VkFormat of dstImage" + "text": "For each element of pRegions, dstOffset.z must be a multiple of the texel block extent depth of the VkFormat of dstImage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-srcImage-01728", - "text": " For each element of pRegions, if the sum of srcOffset.x and extent.width does not equal the width of the subresource specified by srcSubresource, extent.width must be a multiple of the texel block extent width of the VkFormat of srcImage" + "text": "For each element of pRegions, if the sum of srcOffset.x and extent.width does not equal the width of the subresource specified by srcSubresource, extent.width must be a multiple of the texel block extent width of the VkFormat of srcImage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-srcImage-01729", - "text": " For each element of pRegions, if the sum of srcOffset.y and extent.height does not equal the height of the subresource specified by srcSubresource, extent.height must be a multiple of the texel block extent height of the VkFormat of srcImage" + "text": "For each element of pRegions, if the sum of srcOffset.y and extent.height does not equal the height of the subresource specified by srcSubresource, extent.height must be a multiple of the texel block extent height of the VkFormat of srcImage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-srcImage-01730", - "text": " For each element of pRegions, if the sum of srcOffset.z and extent.depth does not equal the depth of the subresource specified by srcSubresource, extent.depth must be a multiple of the texel block extent depth of the VkFormat of srcImage" + "text": "For each element of pRegions, if the sum of srcOffset.z and extent.depth does not equal the depth of the subresource specified by srcSubresource, extent.depth must be a multiple of the texel block extent depth of the VkFormat of srcImage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-dstImage-01732", - "text": " For each element of pRegions, if the sum of dstOffset.x and extent.width does not equal the width of the subresource specified by dstSubresource, extent.width must be a multiple of the texel block extent width of the VkFormat of dstImage" + "text": "For each element of pRegions, if the sum of dstOffset.x and extent.width does not equal the width of the subresource specified by dstSubresource, extent.width must be a multiple of the texel block extent width of the VkFormat of dstImage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-dstImage-01733", - "text": " For each element of pRegions, if the sum of dstOffset.y and extent.height does not equal the height of the subresource specified by dstSubresource, extent.height must be a multiple of the texel block extent height of the VkFormat of dstImage" + "text": "For each element of pRegions, if the sum of dstOffset.y and extent.height does not equal the height of the subresource specified by dstSubresource, extent.height must be a multiple of the texel block extent height of the VkFormat of dstImage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-dstImage-01734", - "text": " For each element of pRegions, if the sum of dstOffset.z and extent.depth does not equal the depth of the subresource specified by dstSubresource, extent.depth must be a multiple of the texel block extent depth of the VkFormat of dstImage" + "text": "For each element of pRegions, if the sum of dstOffset.z and extent.depth does not equal the depth of the subresource specified by dstSubresource, extent.depth must be a multiple of the texel block extent depth of the VkFormat of dstImage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-aspect-06662", - "text": " If the aspect member of any element of pRegions includes any flag other than VK_IMAGE_ASPECT_STENCIL_BIT or srcImage was not created with separate stencil usage, VK_IMAGE_USAGE_TRANSFER_SRC_BIT must have been included in the VkImageCreateInfo::usage used to create srcImage" + "text": "If the aspect member of any element of pRegions includes any flag other than VK_IMAGE_ASPECT_STENCIL_BIT or srcImage was not created with separate stencil usage, VK_IMAGE_USAGE_TRANSFER_SRC_BIT must have been included in the VkImageCreateInfo::usage used to create srcImage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-aspect-06663", - "text": " If the aspect member of any element of pRegions includes any flag other than VK_IMAGE_ASPECT_STENCIL_BIT or dstImage was not created with separate stencil usage, VK_IMAGE_USAGE_TRANSFER_DST_BIT must have been included in the VkImageCreateInfo::usage used to create dstImage" + "text": "If the aspect member of any element of pRegions includes any flag other than VK_IMAGE_ASPECT_STENCIL_BIT or dstImage was not created with separate stencil usage, VK_IMAGE_USAGE_TRANSFER_DST_BIT must have been included in the VkImageCreateInfo::usage used to create dstImage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-aspect-06664", - "text": " If the aspect member of any element of pRegions includes VK_IMAGE_ASPECT_STENCIL_BIT, and srcImage was created with separate stencil usage, VK_IMAGE_USAGE_TRANSFER_SRC_BIT must have been included in the VkImageStencilUsageCreateInfo::stencilUsage used to create srcImage" + "text": "If the aspect member of any element of pRegions includes VK_IMAGE_ASPECT_STENCIL_BIT, and srcImage was created with separate stencil usage, VK_IMAGE_USAGE_TRANSFER_SRC_BIT must have been included in the VkImageStencilUsageCreateInfo::stencilUsage used to create srcImage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-aspect-06665", - "text": " If the aspect member of any element of pRegions includes VK_IMAGE_ASPECT_STENCIL_BIT, and dstImage was created with separate stencil usage, VK_IMAGE_USAGE_TRANSFER_DST_BIT must have been included in the VkImageStencilUsageCreateInfo::stencilUsage used to create dstImage" + "text": "If the aspect member of any element of pRegions includes VK_IMAGE_ASPECT_STENCIL_BIT, and dstImage was created with separate stencil usage, VK_IMAGE_USAGE_TRANSFER_DST_BIT must have been included in the VkImageStencilUsageCreateInfo::stencilUsage used to create dstImage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-srcImage-07966", - "text": " If pname:srcImage is non-sparse then the image or the specified disjoint plane must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If srcImage is non-sparse then the image or the specified disjoint plane must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-srcSubresource-07967", - "text": " The pname:srcSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when pname:srcImage was created" + "text": "The srcSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when srcImage was created", + "page": "vkspec" }, { - "vuid": "VUID-vkCmdCopyImage-srcSubresource-08790", - "text": " If pname:srcSubresource.layerCount is not VK_REMAINING_ARRAY_LAYERS, the pname:srcSubresource.baseArrayLayer + pname:srcSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when pname:srcImage was created" + "vuid": "VUID-vkCmdCopyImage-srcSubresource-07968", + "text": "The srcSubresource.baseArrayLayer + srcSubresource.layerCount of each element of pRegions , if srcSubresource.layerCount is not VK_REMAINING_ARRAY_LAYERS and maintenance5 is not enabled, must be less than or equal to the arrayLayers specified in VkImageCreateInfo when srcImage was created", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-srcImage-07969", - "text": " pname:srcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT" + "text": "srcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-dstImage-07966", - "text": " If pname:dstImage is non-sparse then the image or the specified disjoint plane must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If dstImage is non-sparse then the image or the specified disjoint plane must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-dstSubresource-07967", - "text": " The pname:dstSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when pname:dstImage was created" + "text": "The dstSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when dstImage was created", + "page": "vkspec" }, { - "vuid": "VUID-vkCmdCopyImage-dstSubresource-08790", - "text": " If pname:dstSubresource.layerCount is not VK_REMAINING_ARRAY_LAYERS, the pname:dstSubresource.baseArrayLayer + pname:dstSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when pname:dstImage was created" + "vuid": "VUID-vkCmdCopyImage-dstSubresource-07968", + "text": "The dstSubresource.baseArrayLayer + dstSubresource.layerCount of each element of pRegions , if dstSubresource.layerCount is not VK_REMAINING_ARRAY_LAYERS and maintenance5 is not enabled, must be less than or equal to the arrayLayers specified in VkImageCreateInfo when dstImage was created", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-dstImage-07969", - "text": " pname:dstImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT" + "text": "dstImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-srcImage-parameter", - "text": " srcImage must be a valid VkImage handle" + "text": "srcImage must be a valid VkImage handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-srcImageLayout-parameter", - "text": " srcImageLayout must be a valid VkImageLayout value" + "text": "srcImageLayout must be a valid VkImageLayout value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-dstImage-parameter", - "text": " dstImage must be a valid VkImage handle" + "text": "dstImage must be a valid VkImage handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-dstImageLayout-parameter", - "text": " dstImageLayout must be a valid VkImageLayout value" + "text": "dstImageLayout must be a valid VkImageLayout value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-pRegions-parameter", - "text": " pRegions must be a valid pointer to an array of regionCount valid VkImageCopy structures" + "text": "pRegions must be a valid pointer to an array of regionCount valid VkImageCopy structures", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-renderpass", - "text": " This command must only be called outside of a render pass instance" + "text": "This command must only be called outside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-regionCount-arraylength", - "text": " regionCount must be greater than 0" + "text": "regionCount must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage-commonparent", - "text": " Each of commandBuffer, dstImage, and srcImage must have been created, allocated, or retrieved from the same VkDevice" + "text": "Each of commandBuffer, dstImage, and srcImage must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -28166,31 +34922,38 @@ "core": [ { "vuid": "VUID-VkImageCopy-apiVersion-07940", - "text": " If the VK_KHR_sampler_ycbcr_conversion extension is not enabled and VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, the aspectMask member of srcSubresource and dstSubresource must match" + "text": "If the VK_KHR_sampler_ycbcr_conversion extension is not enabled, and VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, the aspectMask member of srcSubresource and dstSubresource must match", + "page": "vkspec" }, { "vuid": "VUID-VkImageCopy-apiVersion-07941", - "text": " If the VK_KHR_maintenance1 extension is not enabled and VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, the layerCount member of srcSubresource and dstSubresource must match" + "text": "If the VK_KHR_maintenance1 extension is not enabled, and VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, the layerCount member of srcSubresource and dstSubresource must match", + "page": "vkspec" }, { "vuid": "VUID-VkImageCopy-extent-06668", - "text": " extent.width must not be 0" + "text": "extent.width must not be 0", + "page": "vkspec" }, { "vuid": "VUID-VkImageCopy-extent-06669", - "text": " extent.height must not be 0" + "text": "extent.height must not be 0", + "page": "vkspec" }, { "vuid": "VUID-VkImageCopy-extent-06670", - "text": " extent.depth must not be 0" + "text": "extent.depth must not be 0", + "page": "vkspec" }, { "vuid": "VUID-VkImageCopy-srcSubresource-parameter", - "text": " srcSubresource must be a valid VkImageSubresourceLayers structure" + "text": "srcSubresource must be a valid VkImageSubresourceLayers structure", + "page": "vkspec" }, { "vuid": "VUID-VkImageCopy-dstSubresource-parameter", - "text": " dstSubresource must be a valid VkImageSubresourceLayers structure" + "text": "dstSubresource must be a valid VkImageSubresourceLayers structure", + "page": "vkspec" } ] }, @@ -28198,31 +34961,38 @@ "core": [ { "vuid": "VUID-VkImageSubresourceLayers-aspectMask-00167", - "text": " If aspectMask contains VK_IMAGE_ASPECT_COLOR_BIT, it must not contain either of VK_IMAGE_ASPECT_DEPTH_BIT or VK_IMAGE_ASPECT_STENCIL_BIT" + "text": "If aspectMask contains VK_IMAGE_ASPECT_COLOR_BIT, it must not contain either of VK_IMAGE_ASPECT_DEPTH_BIT or VK_IMAGE_ASPECT_STENCIL_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageSubresourceLayers-aspectMask-00168", - "text": " aspectMask must not contain VK_IMAGE_ASPECT_METADATA_BIT" + "text": "aspectMask must not contain VK_IMAGE_ASPECT_METADATA_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageSubresourceLayers-aspectMask-02247", - "text": " aspectMask must not include VK_IMAGE_ASPECT_MEMORY_PLANE{ibit}BIT_EXT for any index i" + "text": "aspectMask must not include VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT for any index i", + "page": "vkspec" }, { - "vuid": "VUID-VkImageSubresourceLayers-maintenance5-08762", - "text": " If maintenance5 is not enabled, layerCount must not be VK_REMAINING_ARRAY_LAYERS" + "vuid": "VUID-VkImageSubresourceLayers-layerCount-09243", + "text": "If the maintenance5 feature is not enabled, layerCount must not be VK_REMAINING_ARRAY_LAYERS", + "page": "vkspec" }, { - "vuid": "VUID-VkImageSubresourceLayers-layerCount-08763", - "text": " If layerCount is not VK_REMAINING_ARRAY_LAYERS, it must be greater than 0" + "vuid": "VUID-VkImageSubresourceLayers-layerCount-01700", + "text": "If layerCount is not VK_REMAINING_ARRAY_LAYERS, it must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-VkImageSubresourceLayers-aspectMask-parameter", - "text": " aspectMask must be a valid combination of VkImageAspectFlagBits values" + "text": "aspectMask must be a valid combination of VkImageAspectFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkImageSubresourceLayers-aspectMask-requiredbitmask", - "text": " aspectMask must not be 0" + "text": "aspectMask must not be 0", + "page": "vkspec" } ] }, @@ -28230,39 +35000,48 @@ "core": [ { "vuid": "VUID-vkCmdCopyImage2-commandBuffer-01825", - "text": " If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcImage must not be a protected image" + "text": "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcImage must not be a protected image", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage2-commandBuffer-01826", - "text": " If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstImage must not be a protected image" + "text": "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstImage must not be a protected image", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage2-commandBuffer-01827", - "text": " If commandBuffer is a protected command buffer and protectedNoFault is not supported, dstImage must not be an unprotected image" + "text": "If commandBuffer is a protected command buffer and protectedNoFault is not supported, dstImage must not be an unprotected image", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage2-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage2-pCopyImageInfo-parameter", - "text": " pCopyImageInfo must be a valid pointer to a valid VkCopyImageInfo2 structure" + "text": "pCopyImageInfo must be a valid pointer to a valid VkCopyImageInfo2 structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage2-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage2-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage2-renderpass", - "text": " This command must only be called outside of a render pass instance" + "text": "This command must only be called outside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImage2-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -28270,307 +35049,388 @@ "core": [ { "vuid": "VUID-VkCopyImageInfo2-pRegions-00124", - "text": " The union of all source regions, and the union of all destination regions, specified by the elements of pRegions, must not overlap in memory" + "text": "The union of all source regions, and the union of all destination regions, specified by the elements of pRegions, must not overlap in memory", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageInfo2-srcImage-01995", - "text": " The format features of srcImage must contain VK_FORMAT_FEATURE_TRANSFER_SRC_BIT" + "text": "The format features of srcImage must contain VK_FORMAT_FEATURE_TRANSFER_SRC_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageInfo2-srcImageLayout-00128", - "text": " srcImageLayout must specify the layout of the image subresources of srcImage specified in pRegions at the time this command is executed on a VkDevice" + "text": "srcImageLayout must specify the layout of the image subresources of srcImage specified in pRegions at the time this command is executed on a VkDevice", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageInfo2-srcImageLayout-01917", - "text": " srcImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, VK_IMAGE_LAYOUT_GENERAL, or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR" + "text": "srcImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, or VK_IMAGE_LAYOUT_GENERAL", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageInfo2-dstImage-01996", - "text": " The format features of dstImage must contain VK_FORMAT_FEATURE_TRANSFER_DST_BIT" + "text": "The format features of dstImage must contain VK_FORMAT_FEATURE_TRANSFER_DST_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageInfo2-dstImageLayout-00133", - "text": " dstImageLayout must specify the layout of the image subresources of dstImage specified in pRegions at the time this command is executed on a VkDevice" + "text": "dstImageLayout must specify the layout of the image subresources of dstImage specified in pRegions at the time this command is executed on a VkDevice", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageInfo2-dstImageLayout-01395", - "text": " dstImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_GENERAL, or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR" + "text": "dstImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, or VK_IMAGE_LAYOUT_GENERAL", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageInfo2-srcImage-01548", - "text": " If the VkFormat of each of srcImage and dstImage is not a multi-planar format, the VkFormat of each of srcImage and dstImage must be size-compatible" + "text": "If the VkFormat of each of srcImage and dstImage is not a multi-planar format, the VkFormat of each of srcImage and dstImage must be size-compatible", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageInfo2-None-01549", - "text": " In a copy to or from a plane of a multi-planar image, the VkFormat of the image and plane must be compatible according to the description of compatible planes for the plane being copied" + "text": "In a copy to or from a plane of a multi-planar image, the VkFormat of the image and plane must be compatible according to the description of compatible planes for the plane being copied", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageInfo2-srcImage-09247", + "text": "If the VkFormat of each of srcImage and dstImage is a compressed image format, the formats must have the same texel block extent", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageInfo2-srcImage-00136", - "text": " The sample count of srcImage and dstImage must match" + "text": "The sample count of srcImage and dstImage must match", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageInfo2-srcOffset-01783", - "text": " The srcOffset and extent members of each element of pRegions must respect the image transfer granularity requirements of commandBuffer’s command pool’s queue family, as described in VkQueueFamilyProperties" + "text": "The srcOffset and extent members of each element of pRegions must respect the image transfer granularity requirements of commandBuffer’s command pool’s queue family, as described in VkQueueFamilyProperties", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageInfo2-dstOffset-01784", - "text": " The dstOffset and extent members of each element of pRegions must respect the image transfer granularity requirements of commandBuffer’s command pool’s queue family, as described in VkQueueFamilyProperties" + "text": "The dstOffset and extent members of each element of pRegions must respect the image transfer granularity requirements of commandBuffer’s command pool’s queue family, as described in VkQueueFamilyProperties", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageInfo2-srcImage-01551", - "text": " If neither srcImage nor dstImage has a multi-planar image format then for each element of pRegions, srcSubresource.aspectMask and dstSubresource.aspectMask must match" + "text": "If neither srcImage nor dstImage has a multi-planar image format then for each element of pRegions, srcSubresource.aspectMask and dstSubresource.aspectMask must match", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageInfo2-srcImage-08713", - "text": " If srcImage has a multi-planar image format, then for each element of pRegions, srcSubresource.aspectMask must be a single valid multi-planar aspect mask" + "text": "If srcImage has a multi-planar image format, then for each element of pRegions, srcSubresource.aspectMask must be a single valid multi-planar aspect mask bit", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageInfo2-dstImage-08714", - "text": " If dstImage has a multi-planar image format, then for each element of pRegions, dstSubresource.aspectMask must be a single valid multi-planar aspect mask" + "text": "If dstImage has a multi-planar image format, then for each element of pRegions, dstSubresource.aspectMask must be a single valid multi-planar aspect mask bit", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageInfo2-srcImage-01556", - "text": " If srcImage has a multi-planar image format and the dstImage does not have a multi-planar image format, then for each element of pRegions, dstSubresource.aspectMask must be VK_IMAGE_ASPECT_COLOR_BIT" + "text": "If srcImage has a multi-planar image format and the dstImage does not have a multi-planar image format, then for each element of pRegions, dstSubresource.aspectMask must be VK_IMAGE_ASPECT_COLOR_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageInfo2-dstImage-01557", - "text": " If dstImage has a multi-planar image format and the srcImage does not have a multi-planar image format, then for each element of pRegions, srcSubresource.aspectMask must be VK_IMAGE_ASPECT_COLOR_BIT" + "text": "If dstImage has a multi-planar image format and the srcImage does not have a multi-planar image format, then for each element of pRegions, srcSubresource.aspectMask must be VK_IMAGE_ASPECT_COLOR_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageInfo2-apiVersion-07932", - "text": " If the VK_KHR_maintenance1 extension is not enabled, VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, and either srcImage or dstImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, srcSubresource.baseArrayLayer and dstSubresource.baseArrayLayer must each be 0, and srcSubresource.layerCount and dstSubresource.layerCount must each be 1" + "text": "If the VK_KHR_maintenance1 extension is not enabled, or VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, and either srcImage or dstImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, srcSubresource.baseArrayLayer and dstSubresource.baseArrayLayer must both be 0, and srcSubresource.layerCount and dstSubresource.layerCount must both be 1", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageInfo2-srcImage-04443", - "text": " If srcImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, srcSubresource.baseArrayLayer must be 0 and srcSubresource.layerCount must be 1" + "text": "If srcImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, srcSubresource.baseArrayLayer must be 0 and srcSubresource.layerCount must be 1", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageInfo2-dstImage-04444", - "text": " If dstImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, dstSubresource.baseArrayLayer must be 0 and dstSubresource.layerCount must be 1" + "text": "If dstImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, dstSubresource.baseArrayLayer must be 0 and dstSubresource.layerCount must be 1", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageInfo2-aspectMask-00142", - "text": " For each element of pRegions, srcSubresource.aspectMask must specify aspects present in srcImage" + "text": "For each element of pRegions, srcSubresource.aspectMask must specify aspects present in srcImage", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageInfo2-aspectMask-00143", - "text": " For each element of pRegions, dstSubresource.aspectMask must specify aspects present in dstImage" + "text": "For each element of pRegions, dstSubresource.aspectMask must specify aspects present in dstImage", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageInfo2-srcOffset-00144", - "text": " For each element of pRegions, srcOffset.x and (extent.width + srcOffset.x) must both be greater than or equal to 0 and less than or equal to the width of the specified srcSubresource of srcImage" + "text": "For each element of pRegions, srcOffset.x and (extent.width + srcOffset.x) must both be greater than or equal to 0 and less than or equal to the width of the specified srcSubresource of srcImage", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageInfo2-srcOffset-00145", - "text": " For each element of pRegions, srcOffset.y and (extent.height + srcOffset.y) must both be greater than or equal to 0 and less than or equal to the height of the specified srcSubresource of srcImage" + "text": "For each element of pRegions, srcOffset.y and (extent.height + srcOffset.y) must both be greater than or equal to 0 and less than or equal to the height of the specified srcSubresource of srcImage", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageInfo2-srcImage-00146", - "text": " If srcImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, srcOffset.y must be 0 and extent.height must be 1" + "text": "If srcImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, srcOffset.y must be 0 and extent.height must be 1", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageInfo2-srcOffset-00147", - "text": " If srcImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, srcOffset.z and (extent.depth + srcOffset.z) must both be greater than or equal to 0 and less than or equal to the depth of the specified srcSubresource of srcImage" + "text": "If srcImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, srcOffset.z and (extent.depth + srcOffset.z) must both be greater than or equal to 0 and less than or equal to the depth of the specified srcSubresource of srcImage", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageInfo2-srcImage-01785", - "text": " If srcImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, srcOffset.z must be 0 and extent.depth must be 1" + "text": "If srcImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, srcOffset.z must be 0 and extent.depth must be 1", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageInfo2-dstImage-01786", - "text": " If dstImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, dstOffset.z must be 0 and extent.depth must be 1" + "text": "If dstImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, dstOffset.z must be 0 and extent.depth must be 1", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageInfo2-srcImage-01787", - "text": " If srcImage is of type VK_IMAGE_TYPE_2D, then for each element of pRegions, srcOffset.z must be 0" + "text": "If srcImage is of type VK_IMAGE_TYPE_2D, then for each element of pRegions, srcOffset.z must be 0", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageInfo2-dstImage-01788", - "text": " If dstImage is of type VK_IMAGE_TYPE_2D, then for each element of pRegions, dstOffset.z must be 0" + "text": "If dstImage is of type VK_IMAGE_TYPE_2D, then for each element of pRegions, dstOffset.z must be 0", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageInfo2-apiVersion-07933", - "text": " If the VK_KHR_maintenance1 extension is not enabled, VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, srcImage and dstImage must have the same VkImageType" + "text": "If the VK_KHR_maintenance1 extension is not enabled, and VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, srcImage and dstImage must have the same VkImageType", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageInfo2-apiVersion-08969", - "text": " If the VK_KHR_maintenance1 extension is not enabled, VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, and srcImage or dstImage is of type VK_IMAGE_TYPE_2D, then for each element of pRegions, extent.depth must be 1" + "text": "If the VK_KHR_maintenance1 extension is not enabled, and VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, srcImage or dstImage is of type VK_IMAGE_TYPE_2D, then for each element of pRegions, extent.depth must be 1", + "page": "vkspec" }, { - "vuid": "VUID-VkCopyImageInfo2-maintenance5-08791", - "text": " If maintenance5 is not enabled, and srcImage and dstImage have a different VkImageType, one must be VK_IMAGE_TYPE_3D and the other must be VK_IMAGE_TYPE_2D" - }, - { - "vuid": "VUID-VkCopyImageInfo2-maintenance5-08792", - "text": " If the maintenance5 feature is not enabled, the layerCount member of srcSubresource or dstSubresource must not be VK_REMAINING_ARRAY_LAYERS" + "vuid": "VUID-VkCopyImageInfo2-srcImage-07743", + "text": "If srcImage and dstImage have a different VkImageType, and maintenance5 is not enabled, one must be VK_IMAGE_TYPE_3D and the other must be VK_IMAGE_TYPE_2D", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageInfo2-srcImage-08793", - "text": " If srcImage and dstImage have the same VkImageType, and neither of the layerCount members of srcSubresource or dstSubresource are VK_REMAINING_ARRAY_LAYERS, the layerCount members must match" + "text": "If srcImage and dstImage have the same VkImageType, for each element of pRegions, if neither of the layerCount members of srcSubresource or dstSubresource are VK_REMAINING_ARRAY_LAYERS, the layerCount members of srcSubresource or dstSubresource must match", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageInfo2-maintenance5-08792", + "text": "If the maintenance5 feature is not enabled, the layerCount member of srcSubresource or dstSubresource must not be VK_REMAINING_ARRAY_LAYERS", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageInfo2-srcImage-08794", - "text": " If srcImage and dstImage have the same VkImageType, and one of the layerCount members of srcSubresource or dstSubresource is VK_REMAINING_ARRAY_LAYERS, the other member must be either VK_REMAINING_ARRAY_LAYERS or equal to the arrayLayers member of the VkImageCreateInfo used to create the image minus baseArrayLayer" + "text": "If srcImage and dstImage have the same VkImageType, and one of the layerCount members of srcSubresource or dstSubresource is VK_REMAINING_ARRAY_LAYERS, the other member must be either VK_REMAINING_ARRAY_LAYERS or equal to the arrayLayers member of the VkImageCreateInfo used to create the image minus baseArrayLayer", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageInfo2-srcImage-01790", - "text": " If srcImage and dstImage are both of type VK_IMAGE_TYPE_2D, then for each element of pRegions, extent.depth must be 1" + "text": "If srcImage and dstImage are both of type VK_IMAGE_TYPE_2D, then for each element of pRegions, extent.depth must be 1", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageInfo2-srcImage-01791", - "text": " If srcImage is of type VK_IMAGE_TYPE_2D, and dstImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, extent.depth must equal srcSubresource.layerCount" + "text": "If srcImage is of type VK_IMAGE_TYPE_2D, and dstImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, extent.depth must equal srcSubresource.layerCount", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageInfo2-dstImage-01792", - "text": " If dstImage is of type VK_IMAGE_TYPE_2D, and srcImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, extent.depth must equal dstSubresource.layerCount" + "text": "If dstImage is of type VK_IMAGE_TYPE_2D, and srcImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, extent.depth must equal dstSubresource.layerCount", + "page": "vkspec" }, { "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) must both be greater than or equal to 0 and less than or equal to the width of the specified dstSubresource of dstImage", + "page": "vkspec" }, { "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) must both be greater than or equal to 0 and less than or equal to the height of the specified dstSubresource of dstImage", + "page": "vkspec" }, { "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", + "page": "vkspec" }, { "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) must both be greater than or equal to 0 and less than or equal to the depth of the specified dstSubresource of dstImage", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageInfo2-pRegions-07278", - "text": " For each element of pRegions, srcOffset.x must be a multiple of the texel block extent width of the VkFormat of srcImage" + "text": "For each element of pRegions, srcOffset.x must be a multiple of the texel block extent width of the VkFormat of srcImage", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageInfo2-pRegions-07279", - "text": " For each element of pRegions, srcOffset.y must be a multiple of the texel block extent height of the VkFormat of srcImage" + "text": "For each element of pRegions, srcOffset.y must be a multiple of the texel block extent height of the VkFormat of srcImage", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageInfo2-pRegions-07280", - "text": " For each element of pRegions, srcOffset.z must be a multiple of the texel block extent depth of the VkFormat of srcImage" + "text": "For each element of pRegions, srcOffset.z must be a multiple of the texel block extent depth of the VkFormat of srcImage", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageInfo2-pRegions-07281", - "text": " For each element of pRegions, dstOffset.x must be a multiple of the texel block extent width of the VkFormat of dstImage" + "text": "For each element of pRegions, dstOffset.x must be a multiple of the texel block extent width of the VkFormat of dstImage", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageInfo2-pRegions-07282", - "text": " For each element of pRegions, dstOffset.y must be a multiple of the texel block extent height of the VkFormat of dstImage" + "text": "For each element of pRegions, dstOffset.y must be a multiple of the texel block extent height of the VkFormat of dstImage", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageInfo2-pRegions-07283", - "text": " For each element of pRegions, dstOffset.z must be a multiple of the texel block extent depth of the VkFormat of dstImage" + "text": "For each element of pRegions, dstOffset.z must be a multiple of the texel block extent depth of the VkFormat of dstImage", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageInfo2-srcImage-01728", - "text": " For each element of pRegions, if the sum of srcOffset.x and extent.width does not equal the width of the subresource specified by srcSubresource, extent.width must be a multiple of the texel block extent width of the VkFormat of srcImage" + "text": "For each element of pRegions, if the sum of srcOffset.x and extent.width does not equal the width of the subresource specified by srcSubresource, extent.width must be a multiple of the texel block extent width of the VkFormat of srcImage", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageInfo2-srcImage-01729", - "text": " For each element of pRegions, if the sum of srcOffset.y and extent.height does not equal the height of the subresource specified by srcSubresource, extent.height must be a multiple of the texel block extent height of the VkFormat of srcImage" + "text": "For each element of pRegions, if the sum of srcOffset.y and extent.height does not equal the height of the subresource specified by srcSubresource, extent.height must be a multiple of the texel block extent height of the VkFormat of srcImage", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageInfo2-srcImage-01730", - "text": " For each element of pRegions, if the sum of srcOffset.z and extent.depth does not equal the depth of the subresource specified by srcSubresource, extent.depth must be a multiple of the texel block extent depth of the VkFormat of srcImage" + "text": "For each element of pRegions, if the sum of srcOffset.z and extent.depth does not equal the depth of the subresource specified by srcSubresource, extent.depth must be a multiple of the texel block extent depth of the VkFormat of srcImage", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageInfo2-dstImage-01732", - "text": " For each element of pRegions, if the sum of dstOffset.x and extent.width does not equal the width of the subresource specified by dstSubresource, extent.width must be a multiple of the texel block extent width of the VkFormat of dstImage" + "text": "For each element of pRegions, if the sum of dstOffset.x and extent.width does not equal the width of the subresource specified by dstSubresource, extent.width must be a multiple of the texel block extent width of the VkFormat of dstImage", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageInfo2-dstImage-01733", - "text": " For each element of pRegions, if the sum of dstOffset.y and extent.height does not equal the height of the subresource specified by dstSubresource, extent.height must be a multiple of the texel block extent height of the VkFormat of dstImage" + "text": "For each element of pRegions, if the sum of dstOffset.y and extent.height does not equal the height of the subresource specified by dstSubresource, extent.height must be a multiple of the texel block extent height of the VkFormat of dstImage", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageInfo2-dstImage-01734", - "text": " For each element of pRegions, if the sum of dstOffset.z and extent.depth does not equal the depth of the subresource specified by dstSubresource, extent.depth must be a multiple of the texel block extent depth of the VkFormat of dstImage" + "text": "For each element of pRegions, if the sum of dstOffset.z and extent.depth does not equal the depth of the subresource specified by dstSubresource, extent.depth must be a multiple of the texel block extent depth of the VkFormat of dstImage", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageInfo2-aspect-06662", - "text": " If the aspect member of any element of pRegions includes any flag other than VK_IMAGE_ASPECT_STENCIL_BIT or srcImage was not created with separate stencil usage, VK_IMAGE_USAGE_TRANSFER_SRC_BIT must have been included in the VkImageCreateInfo::usage used to create srcImage" + "text": "If the aspect member of any element of pRegions includes any flag other than VK_IMAGE_ASPECT_STENCIL_BIT or srcImage was not created with separate stencil usage, VK_IMAGE_USAGE_TRANSFER_SRC_BIT must have been included in the VkImageCreateInfo::usage used to create srcImage", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageInfo2-aspect-06663", - "text": " If the aspect member of any element of pRegions includes any flag other than VK_IMAGE_ASPECT_STENCIL_BIT or dstImage was not created with separate stencil usage, VK_IMAGE_USAGE_TRANSFER_DST_BIT must have been included in the VkImageCreateInfo::usage used to create dstImage" + "text": "If the aspect member of any element of pRegions includes any flag other than VK_IMAGE_ASPECT_STENCIL_BIT or dstImage was not created with separate stencil usage, VK_IMAGE_USAGE_TRANSFER_DST_BIT must have been included in the VkImageCreateInfo::usage used to create dstImage", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageInfo2-aspect-06664", - "text": " If the aspect member of any element of pRegions includes VK_IMAGE_ASPECT_STENCIL_BIT, and srcImage was created with separate stencil usage, VK_IMAGE_USAGE_TRANSFER_SRC_BIT must have been included in the VkImageStencilUsageCreateInfo::stencilUsage used to create srcImage" + "text": "If the aspect member of any element of pRegions includes VK_IMAGE_ASPECT_STENCIL_BIT, and srcImage was created with separate stencil usage, VK_IMAGE_USAGE_TRANSFER_SRC_BIT must have been included in the VkImageStencilUsageCreateInfo::stencilUsage used to create srcImage", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageInfo2-aspect-06665", - "text": " If the aspect member of any element of pRegions includes VK_IMAGE_ASPECT_STENCIL_BIT, and dstImage was created with separate stencil usage, VK_IMAGE_USAGE_TRANSFER_DST_BIT must have been included in the VkImageStencilUsageCreateInfo::stencilUsage used to create dstImage" + "text": "If the aspect member of any element of pRegions includes VK_IMAGE_ASPECT_STENCIL_BIT, and dstImage was created with separate stencil usage, VK_IMAGE_USAGE_TRANSFER_DST_BIT must have been included in the VkImageStencilUsageCreateInfo::stencilUsage used to create dstImage", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageInfo2-srcImage-07966", - "text": " If pname:srcImage is non-sparse then the image or the specified disjoint plane must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If srcImage is non-sparse then the image or the specified disjoint plane must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageInfo2-srcSubresource-07967", - "text": " The pname:srcSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when pname:srcImage was created" + "text": "The srcSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when srcImage was created", + "page": "vkspec" }, { - "vuid": "VUID-VkCopyImageInfo2-srcSubresource-08790", - "text": " If pname:srcSubresource.layerCount is not VK_REMAINING_ARRAY_LAYERS, the pname:srcSubresource.baseArrayLayer + pname:srcSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when pname:srcImage was created" + "vuid": "VUID-VkCopyImageInfo2-srcSubresource-07968", + "text": "The srcSubresource.baseArrayLayer + srcSubresource.layerCount of each element of pRegions , if srcSubresource.layerCount is not VK_REMAINING_ARRAY_LAYERS and maintenance5 is not enabled, must be less than or equal to the arrayLayers specified in VkImageCreateInfo when srcImage was created", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageInfo2-srcImage-07969", - "text": " pname:srcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT" + "text": "srcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageInfo2-dstImage-07966", - "text": " If pname:dstImage is non-sparse then the image or the specified disjoint plane must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If dstImage is non-sparse then the image or the specified disjoint plane must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageInfo2-dstSubresource-07967", - "text": " The pname:dstSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when pname:dstImage was created" + "text": "The dstSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when dstImage was created", + "page": "vkspec" }, { - "vuid": "VUID-VkCopyImageInfo2-dstSubresource-08790", - "text": " If pname:dstSubresource.layerCount is not VK_REMAINING_ARRAY_LAYERS, the pname:dstSubresource.baseArrayLayer + pname:dstSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when pname:dstImage was created" + "vuid": "VUID-VkCopyImageInfo2-dstSubresource-07968", + "text": "The dstSubresource.baseArrayLayer + dstSubresource.layerCount of each element of pRegions , if dstSubresource.layerCount is not VK_REMAINING_ARRAY_LAYERS and maintenance5 is not enabled, must be less than or equal to the arrayLayers specified in VkImageCreateInfo when dstImage was created", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageInfo2-dstImage-07969", - "text": " pname:dstImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT" + "text": "dstImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageInfo2-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2" + "text": "sType must be VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageInfo2-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageInfo2-srcImage-parameter", - "text": " srcImage must be a valid VkImage handle" + "text": "srcImage must be a valid VkImage handle", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageInfo2-srcImageLayout-parameter", - "text": " srcImageLayout must be a valid VkImageLayout value" + "text": "srcImageLayout must be a valid VkImageLayout value", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageInfo2-dstImage-parameter", - "text": " dstImage must be a valid VkImage handle" + "text": "dstImage must be a valid VkImage handle", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageInfo2-dstImageLayout-parameter", - "text": " dstImageLayout must be a valid VkImageLayout value" + "text": "dstImageLayout must be a valid VkImageLayout value", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageInfo2-pRegions-parameter", - "text": " pRegions must be a valid pointer to an array of regionCount valid VkImageCopy2 structures" + "text": "pRegions must be a valid pointer to an array of regionCount valid VkImageCopy2 structures", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageInfo2-regionCount-arraylength", - "text": " regionCount must be greater than 0" + "text": "regionCount must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageInfo2-commonparent", - "text": " Both of dstImage, and srcImage must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of dstImage, and srcImage must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -28578,39 +35438,48 @@ "core": [ { "vuid": "VUID-VkImageCopy2-apiVersion-07940", - "text": " If the VK_KHR_sampler_ycbcr_conversion extension is not enabled and VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, the aspectMask member of srcSubresource and dstSubresource must match" + "text": "If the VK_KHR_sampler_ycbcr_conversion extension is not enabled, and VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, the aspectMask member of srcSubresource and dstSubresource must match", + "page": "vkspec" }, { "vuid": "VUID-VkImageCopy2-apiVersion-07941", - "text": " If the VK_KHR_maintenance1 extension is not enabled and VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, the layerCount member of srcSubresource and dstSubresource must match" + "text": "If the VK_KHR_maintenance1 extension is not enabled, and VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, the layerCount member of srcSubresource and dstSubresource must match", + "page": "vkspec" }, { "vuid": "VUID-VkImageCopy2-extent-06668", - "text": " extent.width must not be 0" + "text": "extent.width must not be 0", + "page": "vkspec" }, { "vuid": "VUID-VkImageCopy2-extent-06669", - "text": " extent.height must not be 0" + "text": "extent.height must not be 0", + "page": "vkspec" }, { "vuid": "VUID-VkImageCopy2-extent-06670", - "text": " extent.depth must not be 0" + "text": "extent.depth must not be 0", + "page": "vkspec" }, { "vuid": "VUID-VkImageCopy2-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_COPY_2" + "text": "sType must be VK_STRUCTURE_TYPE_IMAGE_COPY_2", + "page": "vkspec" }, { "vuid": "VUID-VkImageCopy2-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkImageCopy2-srcSubresource-parameter", - "text": " srcSubresource must be a valid VkImageSubresourceLayers structure" + "text": "srcSubresource must be a valid VkImageSubresourceLayers structure", + "page": "vkspec" }, { "vuid": "VUID-VkImageCopy2-dstSubresource-parameter", - "text": " dstSubresource must be a valid VkImageSubresourceLayers structure" + "text": "dstSubresource must be a valid VkImageSubresourceLayers structure", + "page": "vkspec" } ] }, @@ -28618,215 +35487,263 @@ "core": [ { "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-07966", - "text": " If pname:dstImage is non-sparse then the image or the specified disjoint plane must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If dstImage is non-sparse then the image or the specified disjoint plane must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBufferToImage-imageSubresource-07967", - "text": " The pname:imageSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when pname:dstImage was created" + "text": "The imageSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when dstImage was created", + "page": "vkspec" }, { - "vuid": "VUID-vkCmdCopyBufferToImage-imageSubresource-08790", - "text": " If pname:imageSubresource.layerCount is not VK_REMAINING_ARRAY_LAYERS, the pname:imageSubresource.baseArrayLayer + pname:imageSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when pname:dstImage was created" + "vuid": "VUID-vkCmdCopyBufferToImage-imageSubresource-07968", + "text": "The imageSubresource.baseArrayLayer + imageSubresource.layerCount of each element of pRegions , if imageSubresource.layerCount is not VK_REMAINING_ARRAY_LAYERS and maintenance5 is not enabled, must be less than or equal to the arrayLayers specified in VkImageCreateInfo when dstImage was created", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-07969", - "text": " pname:dstImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT" + "text": "dstImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBufferToImage-imageSubresource-07970", - "text": " The image region specified by each element of pRegions must be contained within the specified pname:imageSubresource of pname:dstImage" + "text": "The image region specified by each element of pRegions must be contained within the specified imageSubresource of dstImage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBufferToImage-imageSubresource-07971", - "text": " For each element of pRegions, pname:imageOffset.x and (pname:imageExtent.width + pname:imageOffset.x) must both be greater than or equal to 0 and less than or equal to the width of the specified pname:imageSubresource of pname:dstImage" + "text": "For each element of pRegions, imageOffset.x and (imageExtent.width + imageOffset.x) must both be greater than or equal to 0 and less than or equal to the width of the specified imageSubresource of dstImage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBufferToImage-imageSubresource-07972", - "text": " For each element of pRegions, pname:imageOffset.y and (pname:imageExtent.height + pname:imageOffset.y) must both be greater than or equal to 0 and less than or equal to the height of the specified pname:imageSubresource of pname:dstImage" + "text": "For each element of pRegions, imageOffset.y and (imageExtent.height + imageOffset.y) must both be greater than or equal to 0 and less than or equal to the height of the specified imageSubresource of dstImage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-07973", - "text": " pname:dstImage must have a sample count equal to VK_SAMPLE_COUNT_1_BIT" + "text": "dstImage must have a sample count equal to VK_SAMPLE_COUNT_1_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBufferToImage-commandBuffer-01828", - "text": " If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcBuffer must not be a protected buffer" + "text": "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcBuffer must not be a protected buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBufferToImage-commandBuffer-01829", - "text": " If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstImage must not be a protected image" + "text": "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstImage must not be a protected image", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBufferToImage-commandBuffer-01830", - "text": " If commandBuffer is a protected command buffer and protectedNoFault is not supported, dstImage must not be an unprotected image" + "text": "If commandBuffer is a protected command buffer and protectedNoFault is not supported, dstImage must not be an unprotected image", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBufferToImage-commandBuffer-07737", - "text": " If the queue family used to create the VkCommandPool which commandBuffer was allocated from does not support VK_QUEUE_GRAPHICS_BIT or VK_QUEUE_COMPUTE_BIT, the bufferOffset member of any element of pname:pRegions must be a multiple of 4" + "text": "If the queue family used to create the VkCommandPool which commandBuffer was allocated from does not support VK_QUEUE_GRAPHICS_BIT or VK_QUEUE_COMPUTE_BIT, the bufferOffset member of any element of pRegions must be a multiple of 4", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBufferToImage-imageOffset-07738", - "text": " The imageOffset and imageExtent members of each element of pname:pRegions must respect the image transfer granularity requirements of commandBuffer’s command pool’s queue family, as described in VkQueueFamilyProperties" + "text": "The imageOffset and imageExtent members of each element of pRegions must respect the image transfer granularity requirements of commandBuffer’s command pool’s queue family, as described in VkQueueFamilyProperties", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBufferToImage-commandBuffer-07739", - "text": " If the queue family used to create the VkCommandPool which commandBuffer was allocated from does not support VK_QUEUE_GRAPHICS_BIT, for each element of pname:pRegions, the aspectMask member of imageSubresource must not be VK_IMAGE_ASPECT_DEPTH_BIT or VK_IMAGE_ASPECT_STENCIL_BIT" + "text": "If the queue family used to create the VkCommandPool which commandBuffer was allocated from does not support VK_QUEUE_GRAPHICS_BIT, for each element of pRegions, the aspectMask member of imageSubresource must not be VK_IMAGE_ASPECT_DEPTH_BIT or VK_IMAGE_ASPECT_STENCIL_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBufferToImage-pRegions-00171", - "text": " srcBuffer must be large enough to contain all buffer locations that are accessed according to Buffer and Image Addressing, for each element of pRegions" + "text": "srcBuffer must be large enough to contain all buffer locations that are accessed according to Buffer and Image Addressing, for each element of pRegions", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBufferToImage-pRegions-00173", - "text": " The union of all source regions, and the union of all destination regions, specified by the elements of pRegions, must not overlap in memory" + "text": "The union of all source regions, and the union of all destination regions, specified by the elements of pRegions, must not overlap in memory", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBufferToImage-srcBuffer-00174", - "text": " srcBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_SRC_BIT usage flag" + "text": "srcBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_SRC_BIT usage flag", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-01997", - "text": " The format features of dstImage must contain VK_FORMAT_FEATURE_TRANSFER_DST_BIT" + "text": "The format features of dstImage must contain VK_FORMAT_FEATURE_TRANSFER_DST_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBufferToImage-srcBuffer-00176", - "text": " If srcBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If srcBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-00177", - "text": " dstImage must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag" + "text": "dstImage must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBufferToImage-dstImageLayout-00180", - "text": " dstImageLayout must specify the layout of the image subresources of dstImage specified in pRegions at the time this command is executed on a VkDevice" + "text": "dstImageLayout must specify the layout of the image subresources of dstImage specified in pRegions at the time this command is executed on a VkDevice", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBufferToImage-dstImageLayout-01396", - "text": " dstImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_GENERAL, or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR" + "text": "dstImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, or VK_IMAGE_LAYOUT_GENERAL", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBufferToImage-pRegions-07931", - "text": " If VK_EXT_depth_range_unrestricted is not enabled, for each element of pRegions whose imageSubresource contains a depth aspect, the data in srcBuffer must be in the range [0,1]" + "text": "If VK_EXT_depth_range_unrestricted is not enabled, for each element of pRegions whose imageSubresource contains a depth aspect, the data in srcBuffer must be in the range [0,1]", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-07979", - "text": " If pname:dstImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, pname:imageOffset.y must be 0 and pname:imageExtent.height must be 1" + "text": "If dstImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, imageOffset.y must be 0 and imageExtent.height must be 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBufferToImage-imageOffset-09104", - "text": " For each element of pRegions, pname:imageOffset.z and (pname:imageExtent.depth + pname:imageOffset.z) must both be greater than or equal to 0 and less than or equal to the depth of the specified pname:imageSubresource of pname:dstImage" + "text": "For each element of pRegions, imageOffset.z and (imageExtent.depth + imageOffset.z) must both be greater than or equal to 0 and less than or equal to the depth of the specified imageSubresource of dstImage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-07980", - "text": " If pname:dstImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, pname:imageOffset.z must be 0 and pname:imageExtent.depth must be 1" + "text": "If dstImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, imageOffset.z must be 0 and imageExtent.depth must be 1", + "page": "vkspec" }, { - "vuid": "VUID-vkCmdCopyBufferToImage-pRegions-07274", - "text": " For each element of pRegions, pname:imageOffset.x must be a multiple of the texel block extent width of the VkFormat of pname:dstImage" + "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-07274", + "text": "For each element of pRegions, imageOffset.x must be a multiple of the texel block extent width of the VkFormat of dstImage", + "page": "vkspec" }, { - "vuid": "VUID-vkCmdCopyBufferToImage-pRegions-07275", - "text": " For each element of pRegions, pname:imageOffset.y must be a multiple of the texel block extent height of the VkFormat of pname:dstImage" + "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-07275", + "text": "For each element of pRegions, imageOffset.y must be a multiple of the texel block extent height of the VkFormat of dstImage", + "page": "vkspec" }, { - "vuid": "VUID-vkCmdCopyBufferToImage-pRegions-07276", - "text": " For each element of pRegions, pname:imageOffset.z must be a multiple of the texel block extent depth of the VkFormat of pname:dstImage" + "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-07276", + "text": "For each element of pRegions, imageOffset.z must be a multiple of the texel block extent depth of the VkFormat of dstImage", + "page": "vkspec" }, { - "vuid": "VUID-vkCmdCopyBufferToImage-imageExtent-00207", - "text": " For each element of pRegions, if the sum of pname:imageOffset.x and extent.width does not equal the width of the subresource specified by srcSubresource, extent.width must be a multiple of the texel block extent width of the VkFormat of pname:dstImage" + "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-00207", + "text": "For each element of pRegions, if the sum of imageOffset.x and extent.width does not equal the width of the subresource specified by srcSubresource, extent.width must be a multiple of the texel block extent width of the VkFormat of dstImage", + "page": "vkspec" }, { - "vuid": "VUID-vkCmdCopyBufferToImage-imageExtent-00208", - "text": " For each element of pRegions, if the sum of pname:imageOffset.y and extent.height does not equal the height of the subresource specified by srcSubresource, extent.height must be a multiple of the texel block extent height of the VkFormat of pname:dstImage" + "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-00208", + "text": "For each element of pRegions, if the sum of imageOffset.y and extent.height does not equal the height of the subresource specified by srcSubresource, extent.height must be a multiple of the texel block extent height of the VkFormat of dstImage", + "page": "vkspec" }, { - "vuid": "VUID-vkCmdCopyBufferToImage-imageExtent-00209", - "text": " For each element of pRegions, if the sum of pname:imageOffset.z and extent.depth does not equal the depth of the subresource specified by srcSubresource, extent.depth must be a multiple of the texel block extent depth of the VkFormat of pname:dstImage" + "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-00209", + "text": "For each element of pRegions, if the sum of imageOffset.z and extent.depth does not equal the depth of the subresource specified by srcSubresource, extent.depth must be a multiple of the texel block extent depth of the VkFormat of dstImage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBufferToImage-imageSubresource-09105", - "text": " For each element of pRegions, pname:imageSubresource.aspectMask must specify aspects present in pname:dstImage" + "text": "For each element of pRegions, imageSubresource.aspectMask must specify aspects present in dstImage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-07981", - "text": " If pname:dstImage has a VkFormat with two planes then for each element of pRegions, pname:imageSubresource.aspectMask must be VK_IMAGE_ASPECT_PLANE_0_BIT or VK_IMAGE_ASPECT_PLANE_1_BIT" - }, - { - "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-07982", - "text": " If pname:dstImage has a VkFormat with three planes then for each element of pRegions, pname:imageSubresource.aspectMask must be VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT, or VK_IMAGE_ASPECT_PLANE_2_BIT" + "text": "If dstImage has a multi-planar image format, then for each element of pRegions, imageSubresource.aspectMask must be a single valid multi-planar aspect mask bit", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-07983", - "text": " If pname:dstImage is of type VK_IMAGE_TYPE_3D, for each element of pRegions, pname:imageSubresource.baseArrayLayer must be 0 and pname:imageSubresource.layerCount must be 1" + "text": "If dstImage is of type VK_IMAGE_TYPE_3D, for each element of pRegions, imageSubresource.baseArrayLayer must be 0 and imageSubresource.layerCount must be 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBufferToImage-bufferRowLength-09106", - "text": " For each element of pRegions, pname:bufferRowLength must be a multiple of the texel block extent width of the VkFormat of pname:dstImage" + "text": "For each element of pRegions, bufferRowLength must be a multiple of the texel block extent width of the VkFormat of dstImage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBufferToImage-bufferImageHeight-09107", - "text": " For each element of pRegions, pname:bufferImageHeight must be a multiple of the texel block extent height of the VkFormat of pname:dstImage" + "text": "For each element of pRegions, bufferImageHeight must be a multiple of the texel block extent height of the VkFormat of dstImage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBufferToImage-bufferRowLength-09108", - "text": " For each element of pRegions, pname:bufferRowLength divided by the texel block extent width and then multiplied by the texel block size of pname:dstImage must be less than or equal to 231-1" + "text": "For each element of pRegions, bufferRowLength divided by the texel block extent width and then multiplied by the texel block size of dstImage must be less than or equal to 231-1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-07975", - "text": " If pname:dstImage does not have either a depth/stencil or a multi-planar format, then for each element of pRegions, bufferOffset must be a multiple of the texel block size" + "text": "If dstImage does not have either a depth/stencil format or a multi-planar format, then for each element of pRegions, bufferOffset must be a multiple of the texel block size", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-07976", - "text": " If pname:dstImage has a multi-planar format, then for each element of pRegions, bufferOffset must be a multiple of the element size of the compatible format for the format and the aspectMask of the imageSubresource as defined in Compatible formats of planes of multi-planar formats" + "text": "If dstImage has a multi-planar format, then for each element of pRegions, bufferOffset must be a multiple of the element size of the compatible format for the format and the aspectMask of the imageSubresource as defined in Compatible Formats of Planes of Multi-Planar Formats", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-07978", - "text": " If pname:dstImage has a depth/stencil format, the bufferOffset member of any element of pRegions must be a multiple of 4" + "text": "If dstImage has a depth/stencil format, the bufferOffset member of any element of pRegions must be a multiple of 4", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBufferToImage-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBufferToImage-srcBuffer-parameter", - "text": " srcBuffer must be a valid VkBuffer handle" + "text": "srcBuffer must be a valid VkBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-parameter", - "text": " dstImage must be a valid VkImage handle" + "text": "dstImage must be a valid VkImage handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBufferToImage-dstImageLayout-parameter", - "text": " dstImageLayout must be a valid VkImageLayout value" + "text": "dstImageLayout must be a valid VkImageLayout value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBufferToImage-pRegions-parameter", - "text": " pRegions must be a valid pointer to an array of regionCount valid VkBufferImageCopy structures" + "text": "pRegions must be a valid pointer to an array of regionCount valid VkBufferImageCopy structures", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBufferToImage-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBufferToImage-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBufferToImage-renderpass", - "text": " This command must only be called outside of a render pass instance" + "text": "This command must only be called outside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBufferToImage-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBufferToImage-regionCount-arraylength", - "text": " regionCount must be greater than 0" + "text": "regionCount must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBufferToImage-commonparent", - "text": " Each of commandBuffer, dstImage, and srcBuffer must have been created, allocated, or retrieved from the same VkDevice" + "text": "Each of commandBuffer, dstImage, and srcBuffer must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -28834,207 +35751,253 @@ "core": [ { "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-07966", - "text": " If pname:srcImage is non-sparse then the image or the specified disjoint plane must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If srcImage is non-sparse then the image or the specified disjoint plane must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImageToBuffer-imageSubresource-07967", - "text": " The pname:imageSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when pname:srcImage was created" + "text": "The imageSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when srcImage was created", + "page": "vkspec" }, { - "vuid": "VUID-vkCmdCopyImageToBuffer-imageSubresource-08790", - "text": " If pname:imageSubresource.layerCount is not VK_REMAINING_ARRAY_LAYERS, the pname:imageSubresource.baseArrayLayer + pname:imageSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when pname:srcImage was created" + "vuid": "VUID-vkCmdCopyImageToBuffer-imageSubresource-07968", + "text": "The imageSubresource.baseArrayLayer + imageSubresource.layerCount of each element of pRegions , if imageSubresource.layerCount is not VK_REMAINING_ARRAY_LAYERS and maintenance5 is not enabled, must be less than or equal to the arrayLayers specified in VkImageCreateInfo when srcImage was created", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-07969", - "text": " pname:srcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT" + "text": "srcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImageToBuffer-imageSubresource-07970", - "text": " The image region specified by each element of pRegions must be contained within the specified pname:imageSubresource of pname:srcImage" + "text": "The image region specified by each element of pRegions must be contained within the specified imageSubresource of srcImage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImageToBuffer-imageSubresource-07971", - "text": " For each element of pRegions, pname:imageOffset.x and (pname:imageExtent.width + pname:imageOffset.x) must both be greater than or equal to 0 and less than or equal to the width of the specified pname:imageSubresource of pname:srcImage" + "text": "For each element of pRegions, imageOffset.x and (imageExtent.width + imageOffset.x) must both be greater than or equal to 0 and less than or equal to the width of the specified imageSubresource of srcImage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImageToBuffer-imageSubresource-07972", - "text": " For each element of pRegions, pname:imageOffset.y and (pname:imageExtent.height + pname:imageOffset.y) must both be greater than or equal to 0 and less than or equal to the height of the specified pname:imageSubresource of pname:srcImage" + "text": "For each element of pRegions, imageOffset.y and (imageExtent.height + imageOffset.y) must both be greater than or equal to 0 and less than or equal to the height of the specified imageSubresource of srcImage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-07973", - "text": " pname:srcImage must have a sample count equal to VK_SAMPLE_COUNT_1_BIT" + "text": "srcImage must have a sample count equal to VK_SAMPLE_COUNT_1_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImageToBuffer-commandBuffer-01831", - "text": " If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcImage must not be a protected image" + "text": "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcImage must not be a protected image", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImageToBuffer-commandBuffer-01832", - "text": " If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstBuffer must not be a protected buffer" + "text": "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstBuffer must not be a protected buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImageToBuffer-commandBuffer-01833", - "text": " If commandBuffer is a protected command buffer and protectedNoFault is not supported, dstBuffer must not be an unprotected buffer" + "text": "If commandBuffer is a protected command buffer and protectedNoFault is not supported, dstBuffer must not be an unprotected buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImageToBuffer-commandBuffer-07746", - "text": " If the queue family used to create the VkCommandPool which commandBuffer was allocated from does not support VK_QUEUE_GRAPHICS_BIT or VK_QUEUE_COMPUTE_BIT, the bufferOffset member of any element of pname:pRegions must be a multiple of 4" + "text": "If the queue family used to create the VkCommandPool which commandBuffer was allocated from does not support VK_QUEUE_GRAPHICS_BIT or VK_QUEUE_COMPUTE_BIT, the bufferOffset member of any element of pRegions must be a multiple of 4", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImageToBuffer-imageOffset-07747", - "text": " The imageOffset and imageExtent members of each element of pname:pRegions must respect the image transfer granularity requirements of commandBuffer’s command pool’s queue family, as described in VkQueueFamilyProperties" + "text": "The imageOffset and imageExtent members of each element of pRegions must respect the image transfer granularity requirements of commandBuffer’s command pool’s queue family, as described in VkQueueFamilyProperties", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImageToBuffer-pRegions-00183", - "text": " dstBuffer must be large enough to contain all buffer locations that are accessed according to Buffer and Image Addressing, for each element of pRegions" + "text": "dstBuffer must be large enough to contain all buffer locations that are accessed according to Buffer and Image Addressing, for each element of pRegions", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImageToBuffer-pRegions-00184", - "text": " The union of all source regions, and the union of all destination regions, specified by the elements of pRegions, must not overlap in memory" + "text": "The union of all source regions, and the union of all destination regions, specified by the elements of pRegions, must not overlap in memory", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-00186", - "text": " srcImage must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag" + "text": "srcImage must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-01998", - "text": " The format features of srcImage must contain VK_FORMAT_FEATURE_TRANSFER_SRC_BIT" + "text": "The format features of srcImage must contain VK_FORMAT_FEATURE_TRANSFER_SRC_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImageToBuffer-dstBuffer-00191", - "text": " dstBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag" + "text": "dstBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImageToBuffer-dstBuffer-00192", - "text": " If dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImageToBuffer-srcImageLayout-00189", - "text": " srcImageLayout must specify the layout of the image subresources of srcImage specified in pRegions at the time this command is executed on a VkDevice" + "text": "srcImageLayout must specify the layout of the image subresources of srcImage specified in pRegions at the time this command is executed on a VkDevice", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImageToBuffer-srcImageLayout-01397", - "text": " srcImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, VK_IMAGE_LAYOUT_GENERAL, or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR" + "text": "srcImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, or VK_IMAGE_LAYOUT_GENERAL", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-07979", - "text": " If pname:srcImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, pname:imageOffset.y must be 0 and pname:imageExtent.height must be 1" + "text": "If srcImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, imageOffset.y must be 0 and imageExtent.height must be 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImageToBuffer-imageOffset-09104", - "text": " For each element of pRegions, pname:imageOffset.z and (pname:imageExtent.depth + pname:imageOffset.z) must both be greater than or equal to 0 and less than or equal to the depth of the specified pname:imageSubresource of pname:srcImage" + "text": "For each element of pRegions, imageOffset.z and (imageExtent.depth + imageOffset.z) must both be greater than or equal to 0 and less than or equal to the depth of the specified imageSubresource of srcImage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-07980", - "text": " If pname:srcImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, pname:imageOffset.z must be 0 and pname:imageExtent.depth must be 1" + "text": "If srcImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, imageOffset.z must be 0 and imageExtent.depth must be 1", + "page": "vkspec" }, { - "vuid": "VUID-vkCmdCopyImageToBuffer-pRegions-07274", - "text": " For each element of pRegions, pname:imageOffset.x must be a multiple of the texel block extent width of the VkFormat of pname:srcImage" + "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-07274", + "text": "For each element of pRegions, imageOffset.x must be a multiple of the texel block extent width of the VkFormat of srcImage", + "page": "vkspec" }, { - "vuid": "VUID-vkCmdCopyImageToBuffer-pRegions-07275", - "text": " For each element of pRegions, pname:imageOffset.y must be a multiple of the texel block extent height of the VkFormat of pname:srcImage" + "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-07275", + "text": "For each element of pRegions, imageOffset.y must be a multiple of the texel block extent height of the VkFormat of srcImage", + "page": "vkspec" }, { - "vuid": "VUID-vkCmdCopyImageToBuffer-pRegions-07276", - "text": " For each element of pRegions, pname:imageOffset.z must be a multiple of the texel block extent depth of the VkFormat of pname:srcImage" + "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-07276", + "text": "For each element of pRegions, imageOffset.z must be a multiple of the texel block extent depth of the VkFormat of srcImage", + "page": "vkspec" }, { - "vuid": "VUID-vkCmdCopyImageToBuffer-imageExtent-00207", - "text": " For each element of pRegions, if the sum of pname:imageOffset.x and extent.width does not equal the width of the subresource specified by srcSubresource, extent.width must be a multiple of the texel block extent width of the VkFormat of pname:srcImage" + "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-00207", + "text": "For each element of pRegions, if the sum of imageOffset.x and extent.width does not equal the width of the subresource specified by srcSubresource, extent.width must be a multiple of the texel block extent width of the VkFormat of srcImage", + "page": "vkspec" }, { - "vuid": "VUID-vkCmdCopyImageToBuffer-imageExtent-00208", - "text": " For each element of pRegions, if the sum of pname:imageOffset.y and extent.height does not equal the height of the subresource specified by srcSubresource, extent.height must be a multiple of the texel block extent height of the VkFormat of pname:srcImage" + "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-00208", + "text": "For each element of pRegions, if the sum of imageOffset.y and extent.height does not equal the height of the subresource specified by srcSubresource, extent.height must be a multiple of the texel block extent height of the VkFormat of srcImage", + "page": "vkspec" }, { - "vuid": "VUID-vkCmdCopyImageToBuffer-imageExtent-00209", - "text": " For each element of pRegions, if the sum of pname:imageOffset.z and extent.depth does not equal the depth of the subresource specified by srcSubresource, extent.depth must be a multiple of the texel block extent depth of the VkFormat of pname:srcImage" + "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-00209", + "text": "For each element of pRegions, if the sum of imageOffset.z and extent.depth does not equal the depth of the subresource specified by srcSubresource, extent.depth must be a multiple of the texel block extent depth of the VkFormat of srcImage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImageToBuffer-imageSubresource-09105", - "text": " For each element of pRegions, pname:imageSubresource.aspectMask must specify aspects present in pname:srcImage" + "text": "For each element of pRegions, imageSubresource.aspectMask must specify aspects present in srcImage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-07981", - "text": " If pname:srcImage has a VkFormat with two planes then for each element of pRegions, pname:imageSubresource.aspectMask must be VK_IMAGE_ASPECT_PLANE_0_BIT or VK_IMAGE_ASPECT_PLANE_1_BIT" - }, - { - "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-07982", - "text": " If pname:srcImage has a VkFormat with three planes then for each element of pRegions, pname:imageSubresource.aspectMask must be VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT, or VK_IMAGE_ASPECT_PLANE_2_BIT" + "text": "If srcImage has a multi-planar image format, then for each element of pRegions, imageSubresource.aspectMask must be a single valid multi-planar aspect mask bit", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-07983", - "text": " If pname:srcImage is of type VK_IMAGE_TYPE_3D, for each element of pRegions, pname:imageSubresource.baseArrayLayer must be 0 and pname:imageSubresource.layerCount must be 1" + "text": "If srcImage is of type VK_IMAGE_TYPE_3D, for each element of pRegions, imageSubresource.baseArrayLayer must be 0 and imageSubresource.layerCount must be 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImageToBuffer-bufferRowLength-09106", - "text": " For each element of pRegions, pname:bufferRowLength must be a multiple of the texel block extent width of the VkFormat of pname:srcImage" + "text": "For each element of pRegions, bufferRowLength must be a multiple of the texel block extent width of the VkFormat of srcImage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImageToBuffer-bufferImageHeight-09107", - "text": " For each element of pRegions, pname:bufferImageHeight must be a multiple of the texel block extent height of the VkFormat of pname:srcImage" + "text": "For each element of pRegions, bufferImageHeight must be a multiple of the texel block extent height of the VkFormat of srcImage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImageToBuffer-bufferRowLength-09108", - "text": " For each element of pRegions, pname:bufferRowLength divided by the texel block extent width and then multiplied by the texel block size of pname:srcImage must be less than or equal to 231-1" + "text": "For each element of pRegions, bufferRowLength divided by the texel block extent width and then multiplied by the texel block size of srcImage must be less than or equal to 231-1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-07975", - "text": " If pname:srcImage does not have either a depth/stencil or a multi-planar format, then for each element of pRegions, bufferOffset must be a multiple of the texel block size" + "text": "If srcImage does not have either a depth/stencil format or a multi-planar format, then for each element of pRegions, bufferOffset must be a multiple of the texel block size", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-07976", - "text": " If pname:srcImage has a multi-planar format, then for each element of pRegions, bufferOffset must be a multiple of the element size of the compatible format for the format and the aspectMask of the imageSubresource as defined in Compatible formats of planes of multi-planar formats" + "text": "If srcImage has a multi-planar format, then for each element of pRegions, bufferOffset must be a multiple of the element size of the compatible format for the format and the aspectMask of the imageSubresource as defined in Compatible Formats of Planes of Multi-Planar Formats", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-07978", - "text": " If pname:srcImage has a depth/stencil format, the bufferOffset member of any element of pRegions must be a multiple of 4" + "text": "If srcImage has a depth/stencil format, the bufferOffset member of any element of pRegions must be a multiple of 4", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImageToBuffer-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-parameter", - "text": " srcImage must be a valid VkImage handle" + "text": "srcImage must be a valid VkImage handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImageToBuffer-srcImageLayout-parameter", - "text": " srcImageLayout must be a valid VkImageLayout value" + "text": "srcImageLayout must be a valid VkImageLayout value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImageToBuffer-dstBuffer-parameter", - "text": " dstBuffer must be a valid VkBuffer handle" + "text": "dstBuffer must be a valid VkBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImageToBuffer-pRegions-parameter", - "text": " pRegions must be a valid pointer to an array of regionCount valid VkBufferImageCopy structures" + "text": "pRegions must be a valid pointer to an array of regionCount valid VkBufferImageCopy structures", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImageToBuffer-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImageToBuffer-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImageToBuffer-renderpass", - "text": " This command must only be called outside of a render pass instance" + "text": "This command must only be called outside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImageToBuffer-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImageToBuffer-regionCount-arraylength", - "text": " regionCount must be greater than 0" + "text": "regionCount must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImageToBuffer-commonparent", - "text": " Each of commandBuffer, dstBuffer, and srcImage must have been created, allocated, or retrieved from the same VkDevice" + "text": "Each of commandBuffer, dstBuffer, and srcImage must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -29042,31 +36005,38 @@ "core": [ { "vuid": "VUID-VkBufferImageCopy-bufferRowLength-09101", - "text": " pname:bufferRowLength must be 0, or greater than or equal to the width member of imageExtent" + "text": "bufferRowLength must be 0, or greater than or equal to the width member of imageExtent", + "page": "vkspec" }, { "vuid": "VUID-VkBufferImageCopy-bufferImageHeight-09102", - "text": " pname:bufferImageHeight must be 0, or greater than or equal to the height member of imageExtent" + "text": "bufferImageHeight must be 0, or greater than or equal to the height member of imageExtent", + "page": "vkspec" }, { "vuid": "VUID-VkBufferImageCopy-aspectMask-09103", - "text": " The aspectMask member of imageSubresource must only have a single bit set" + "text": "The aspectMask member of imageSubresource must only have a single bit set", + "page": "vkspec" }, { "vuid": "VUID-VkBufferImageCopy-imageExtent-06659", - "text": " imageExtent.width must not be 0" + "text": "imageExtent.width must not be 0", + "page": "vkspec" }, { "vuid": "VUID-VkBufferImageCopy-imageExtent-06660", - "text": " imageExtent.height must not be 0" + "text": "imageExtent.height must not be 0", + "page": "vkspec" }, { "vuid": "VUID-VkBufferImageCopy-imageExtent-06661", - "text": " imageExtent.depth must not be 0" + "text": "imageExtent.depth must not be 0", + "page": "vkspec" }, { "vuid": "VUID-VkBufferImageCopy-imageSubresource-parameter", - "text": " imageSubresource must be a valid VkImageSubresourceLayers structure" + "text": "imageSubresource must be a valid VkImageSubresourceLayers structure", + "page": "vkspec" } ] }, @@ -29074,51 +36044,63 @@ "core": [ { "vuid": "VUID-vkCmdCopyBufferToImage2-commandBuffer-01828", - "text": " If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcBuffer must not be a protected buffer" + "text": "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcBuffer must not be a protected buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBufferToImage2-commandBuffer-01829", - "text": " If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstImage must not be a protected image" + "text": "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstImage must not be a protected image", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBufferToImage2-commandBuffer-01830", - "text": " If commandBuffer is a protected command buffer and protectedNoFault is not supported, dstImage must not be an unprotected image" + "text": "If commandBuffer is a protected command buffer and protectedNoFault is not supported, dstImage must not be an unprotected image", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBufferToImage2-commandBuffer-07737", - "text": " If the queue family used to create the VkCommandPool which commandBuffer was allocated from does not support VK_QUEUE_GRAPHICS_BIT or VK_QUEUE_COMPUTE_BIT, the bufferOffset member of any element of pname:pCopyBufferToImageInfo->pRegions must be a multiple of 4" + "text": "If the queue family used to create the VkCommandPool which commandBuffer was allocated from does not support VK_QUEUE_GRAPHICS_BIT or VK_QUEUE_COMPUTE_BIT, the bufferOffset member of any element of pCopyBufferToImageInfo->pRegions must be a multiple of 4", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBufferToImage2-imageOffset-07738", - "text": " The imageOffset and imageExtent members of each element of pname:pCopyBufferToImageInfo->pRegions must respect the image transfer granularity requirements of commandBuffer’s command pool’s queue family, as described in VkQueueFamilyProperties" + "text": "The imageOffset and imageExtent members of each element of pCopyBufferToImageInfo->pRegions must respect the image transfer granularity requirements of commandBuffer’s command pool’s queue family, as described in VkQueueFamilyProperties", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBufferToImage2-commandBuffer-07739", - "text": " If the queue family used to create the VkCommandPool which commandBuffer was allocated from does not support VK_QUEUE_GRAPHICS_BIT, for each element of pname:pCopyBufferToImageInfo->pRegions, the aspectMask member of imageSubresource must not be VK_IMAGE_ASPECT_DEPTH_BIT or VK_IMAGE_ASPECT_STENCIL_BIT" + "text": "If the queue family used to create the VkCommandPool which commandBuffer was allocated from does not support VK_QUEUE_GRAPHICS_BIT, for each element of pCopyBufferToImageInfo->pRegions, the aspectMask member of imageSubresource must not be VK_IMAGE_ASPECT_DEPTH_BIT or VK_IMAGE_ASPECT_STENCIL_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBufferToImage2-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBufferToImage2-pCopyBufferToImageInfo-parameter", - "text": " pCopyBufferToImageInfo must be a valid pointer to a valid VkCopyBufferToImageInfo2 structure" + "text": "pCopyBufferToImageInfo must be a valid pointer to a valid VkCopyBufferToImageInfo2 structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBufferToImage2-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBufferToImage2-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBufferToImage2-renderpass", - "text": " This command must only be called outside of a render pass instance" + "text": "This command must only be called outside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyBufferToImage2-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -29126,195 +36108,238 @@ "core": [ { "vuid": "VUID-VkCopyBufferToImageInfo2-pRegions-04565", - "text": " If the image region specified by each element of pRegions does not contain VkCopyCommandTransformInfoQCOM in its pNext chain, it must be a region that is contained within the specified imageSubresource of dstImage" + "text": "The image region specified by each element of pRegions that does not contain VkCopyCommandTransformInfoQCOM in its pNext chain must be contained within the specified imageSubresource of dstImage", + "page": "vkspec" }, { "vuid": "VUID-VkCopyBufferToImageInfo2KHR-pRegions-04554", - "text": " If the image region specified by each element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, the rotated destination region as described in [copies-buffers-images-rotation-addressing] must be contained within dstImage" + "text": "If the image region specified by each element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, the rotated destination region as described in [copies-buffers-images-rotation-addressing] must be contained within dstImage", + "page": "vkspec" }, { "vuid": "VUID-VkCopyBufferToImageInfo2KHR-pRegions-04555", - "text": " If any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then dstImage must have a 1x1x1 texel block extent" + "text": "If any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then dstImage must have a 1x1x1 texel block extent", + "page": "vkspec" }, { "vuid": "VUID-VkCopyBufferToImageInfo2KHR-pRegions-06203", - "text": " If any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then dstImage must be of type VK_IMAGE_TYPE_2D" + "text": "If any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then dstImage must be of type VK_IMAGE_TYPE_2D", + "page": "vkspec" }, { "vuid": "VUID-VkCopyBufferToImageInfo2KHR-pRegions-06204", - "text": " If any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then dstImage must not have a multi-planar format" + "text": "If any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then dstImage must not have a multi-planar format", + "page": "vkspec" }, { "vuid": "VUID-VkCopyBufferToImageInfo2-pRegions-00171", - "text": " srcBuffer must be large enough to contain all buffer locations that are accessed according to Buffer and Image Addressing, for each element of pRegions" + "text": "srcBuffer must be large enough to contain all buffer locations that are accessed according to Buffer and Image Addressing, for each element of pRegions", + "page": "vkspec" }, { "vuid": "VUID-VkCopyBufferToImageInfo2-pRegions-00173", - "text": " The union of all source regions, and the union of all destination regions, specified by the elements of pRegions, must not overlap in memory" + "text": "The union of all source regions, and the union of all destination regions, specified by the elements of pRegions, must not overlap in memory", + "page": "vkspec" }, { "vuid": "VUID-VkCopyBufferToImageInfo2-srcBuffer-00174", - "text": " srcBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_SRC_BIT usage flag" + "text": "srcBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_SRC_BIT usage flag", + "page": "vkspec" }, { "vuid": "VUID-VkCopyBufferToImageInfo2-dstImage-01997", - "text": " The format features of dstImage must contain VK_FORMAT_FEATURE_TRANSFER_DST_BIT" + "text": "The format features of dstImage must contain VK_FORMAT_FEATURE_TRANSFER_DST_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkCopyBufferToImageInfo2-srcBuffer-00176", - "text": " If srcBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If srcBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-VkCopyBufferToImageInfo2-dstImage-00177", - "text": " dstImage must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag" + "text": "dstImage must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag", + "page": "vkspec" }, { "vuid": "VUID-VkCopyBufferToImageInfo2-dstImageLayout-00180", - "text": " dstImageLayout must specify the layout of the image subresources of dstImage specified in pRegions at the time this command is executed on a VkDevice" + "text": "dstImageLayout must specify the layout of the image subresources of dstImage specified in pRegions at the time this command is executed on a VkDevice", + "page": "vkspec" }, { "vuid": "VUID-VkCopyBufferToImageInfo2-dstImageLayout-01396", - "text": " dstImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_GENERAL, or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR" + "text": "dstImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, or VK_IMAGE_LAYOUT_GENERAL", + "page": "vkspec" }, { "vuid": "VUID-VkCopyBufferToImageInfo2-pRegions-07931", - "text": " If VK_EXT_depth_range_unrestricted is not enabled, for each element of pRegions whose imageSubresource contains a depth aspect, the data in srcBuffer must be in the range [0,1]" + "text": "If VK_EXT_depth_range_unrestricted is not enabled, for each element of pRegions whose imageSubresource contains a depth aspect, the data in srcBuffer must be in the range [0,1]", + "page": "vkspec" }, { "vuid": "VUID-VkCopyBufferToImageInfo2-dstImage-07966", - "text": " If pname:dstImage is non-sparse then the image or the specified disjoint plane must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If dstImage is non-sparse then the image or the specified disjoint plane must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-VkCopyBufferToImageInfo2-imageSubresource-07967", - "text": " The pname:imageSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when pname:dstImage was created" + "text": "The imageSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when dstImage was created", + "page": "vkspec" }, { - "vuid": "VUID-VkCopyBufferToImageInfo2-imageSubresource-08790", - "text": " If pname:imageSubresource.layerCount is not VK_REMAINING_ARRAY_LAYERS, the pname:imageSubresource.baseArrayLayer + pname:imageSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when pname:dstImage was created" + "vuid": "VUID-VkCopyBufferToImageInfo2-imageSubresource-07968", + "text": "The imageSubresource.baseArrayLayer + imageSubresource.layerCount of each element of pRegions , if imageSubresource.layerCount is not VK_REMAINING_ARRAY_LAYERS and maintenance5 is not enabled, must be less than or equal to the arrayLayers specified in VkImageCreateInfo when dstImage was created", + "page": "vkspec" }, { "vuid": "VUID-VkCopyBufferToImageInfo2-dstImage-07969", - "text": " pname:dstImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT" + "text": "dstImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkCopyBufferToImageInfo2-dstImage-07973", - "text": " pname:dstImage must have a sample count equal to VK_SAMPLE_COUNT_1_BIT" + "text": "dstImage must have a sample count equal to VK_SAMPLE_COUNT_1_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkCopyBufferToImageInfo2-dstImage-07979", - "text": " If pname:dstImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, pname:imageOffset.y must be 0 and pname:imageExtent.height must be 1" + "text": "If dstImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, imageOffset.y must be 0 and imageExtent.height must be 1", + "page": "vkspec" }, { "vuid": "VUID-VkCopyBufferToImageInfo2-imageOffset-09104", - "text": " For each element of pRegions, pname:imageOffset.z and (pname:imageExtent.depth + pname:imageOffset.z) must both be greater than or equal to 0 and less than or equal to the depth of the specified pname:imageSubresource of pname:dstImage" + "text": "For each element of pRegions, imageOffset.z and (imageExtent.depth + imageOffset.z) must both be greater than or equal to 0 and less than or equal to the depth of the specified imageSubresource of dstImage", + "page": "vkspec" }, { "vuid": "VUID-VkCopyBufferToImageInfo2-dstImage-07980", - "text": " If pname:dstImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, pname:imageOffset.z must be 0 and pname:imageExtent.depth must be 1" + "text": "If dstImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, imageOffset.z must be 0 and imageExtent.depth must be 1", + "page": "vkspec" }, { - "vuid": "VUID-VkCopyBufferToImageInfo2-pRegions-07274", - "text": " For each element of pRegions, pname:imageOffset.x must be a multiple of the texel block extent width of the VkFormat of pname:dstImage" + "vuid": "VUID-VkCopyBufferToImageInfo2-dstImage-07274", + "text": "For each element of pRegions, imageOffset.x must be a multiple of the texel block extent width of the VkFormat of dstImage", + "page": "vkspec" }, { - "vuid": "VUID-VkCopyBufferToImageInfo2-pRegions-07275", - "text": " For each element of pRegions, pname:imageOffset.y must be a multiple of the texel block extent height of the VkFormat of pname:dstImage" + "vuid": "VUID-VkCopyBufferToImageInfo2-dstImage-07275", + "text": "For each element of pRegions, imageOffset.y must be a multiple of the texel block extent height of the VkFormat of dstImage", + "page": "vkspec" }, { - "vuid": "VUID-VkCopyBufferToImageInfo2-pRegions-07276", - "text": " For each element of pRegions, pname:imageOffset.z must be a multiple of the texel block extent depth of the VkFormat of pname:dstImage" + "vuid": "VUID-VkCopyBufferToImageInfo2-dstImage-07276", + "text": "For each element of pRegions, imageOffset.z must be a multiple of the texel block extent depth of the VkFormat of dstImage", + "page": "vkspec" }, { - "vuid": "VUID-VkCopyBufferToImageInfo2-imageExtent-00207", - "text": " For each element of pRegions, if the sum of pname:imageOffset.x and extent.width does not equal the width of the subresource specified by srcSubresource, extent.width must be a multiple of the texel block extent width of the VkFormat of pname:dstImage" + "vuid": "VUID-VkCopyBufferToImageInfo2-dstImage-00207", + "text": "For each element of pRegions, if the sum of imageOffset.x and extent.width does not equal the width of the subresource specified by srcSubresource, extent.width must be a multiple of the texel block extent width of the VkFormat of dstImage", + "page": "vkspec" }, { - "vuid": "VUID-VkCopyBufferToImageInfo2-imageExtent-00208", - "text": " For each element of pRegions, if the sum of pname:imageOffset.y and extent.height does not equal the height of the subresource specified by srcSubresource, extent.height must be a multiple of the texel block extent height of the VkFormat of pname:dstImage" + "vuid": "VUID-VkCopyBufferToImageInfo2-dstImage-00208", + "text": "For each element of pRegions, if the sum of imageOffset.y and extent.height does not equal the height of the subresource specified by srcSubresource, extent.height must be a multiple of the texel block extent height of the VkFormat of dstImage", + "page": "vkspec" }, { - "vuid": "VUID-VkCopyBufferToImageInfo2-imageExtent-00209", - "text": " For each element of pRegions, if the sum of pname:imageOffset.z and extent.depth does not equal the depth of the subresource specified by srcSubresource, extent.depth must be a multiple of the texel block extent depth of the VkFormat of pname:dstImage" + "vuid": "VUID-VkCopyBufferToImageInfo2-dstImage-00209", + "text": "For each element of pRegions, if the sum of imageOffset.z and extent.depth does not equal the depth of the subresource specified by srcSubresource, extent.depth must be a multiple of the texel block extent depth of the VkFormat of dstImage", + "page": "vkspec" }, { "vuid": "VUID-VkCopyBufferToImageInfo2-imageSubresource-09105", - "text": " For each element of pRegions, pname:imageSubresource.aspectMask must specify aspects present in pname:dstImage" + "text": "For each element of pRegions, imageSubresource.aspectMask must specify aspects present in dstImage", + "page": "vkspec" }, { "vuid": "VUID-VkCopyBufferToImageInfo2-dstImage-07981", - "text": " If pname:dstImage has a VkFormat with two planes then for each element of pRegions, pname:imageSubresource.aspectMask must be VK_IMAGE_ASPECT_PLANE_0_BIT or VK_IMAGE_ASPECT_PLANE_1_BIT" - }, - { - "vuid": "VUID-VkCopyBufferToImageInfo2-dstImage-07982", - "text": " If pname:dstImage has a VkFormat with three planes then for each element of pRegions, pname:imageSubresource.aspectMask must be VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT, or VK_IMAGE_ASPECT_PLANE_2_BIT" + "text": "If dstImage has a multi-planar image format, then for each element of pRegions, imageSubresource.aspectMask must be a single valid multi-planar aspect mask bit", + "page": "vkspec" }, { "vuid": "VUID-VkCopyBufferToImageInfo2-dstImage-07983", - "text": " If pname:dstImage is of type VK_IMAGE_TYPE_3D, for each element of pRegions, pname:imageSubresource.baseArrayLayer must be 0 and pname:imageSubresource.layerCount must be 1" + "text": "If dstImage is of type VK_IMAGE_TYPE_3D, for each element of pRegions, imageSubresource.baseArrayLayer must be 0 and imageSubresource.layerCount must be 1", + "page": "vkspec" }, { "vuid": "VUID-VkCopyBufferToImageInfo2-bufferRowLength-09106", - "text": " For each element of pRegions, pname:bufferRowLength must be a multiple of the texel block extent width of the VkFormat of pname:dstImage" + "text": "For each element of pRegions, bufferRowLength must be a multiple of the texel block extent width of the VkFormat of dstImage", + "page": "vkspec" }, { "vuid": "VUID-VkCopyBufferToImageInfo2-bufferImageHeight-09107", - "text": " For each element of pRegions, pname:bufferImageHeight must be a multiple of the texel block extent height of the VkFormat of pname:dstImage" + "text": "For each element of pRegions, bufferImageHeight must be a multiple of the texel block extent height of the VkFormat of dstImage", + "page": "vkspec" }, { "vuid": "VUID-VkCopyBufferToImageInfo2-bufferRowLength-09108", - "text": " For each element of pRegions, pname:bufferRowLength divided by the texel block extent width and then multiplied by the texel block size of pname:dstImage must be less than or equal to 231-1" + "text": "For each element of pRegions, bufferRowLength divided by the texel block extent width and then multiplied by the texel block size of dstImage must be less than or equal to 231-1", + "page": "vkspec" }, { "vuid": "VUID-VkCopyBufferToImageInfo2-dstImage-07975", - "text": " If pname:dstImage does not have either a depth/stencil or a multi-planar format, then for each element of pRegions, bufferOffset must be a multiple of the texel block size" + "text": "If dstImage does not have either a depth/stencil format or a multi-planar format, then for each element of pRegions, bufferOffset must be a multiple of the texel block size", + "page": "vkspec" }, { "vuid": "VUID-VkCopyBufferToImageInfo2-dstImage-07976", - "text": " If pname:dstImage has a multi-planar format, then for each element of pRegions, bufferOffset must be a multiple of the element size of the compatible format for the format and the aspectMask of the imageSubresource as defined in Compatible formats of planes of multi-planar formats" + "text": "If dstImage has a multi-planar format, then for each element of pRegions, bufferOffset must be a multiple of the element size of the compatible format for the format and the aspectMask of the imageSubresource as defined in Compatible Formats of Planes of Multi-Planar Formats", + "page": "vkspec" }, { "vuid": "VUID-VkCopyBufferToImageInfo2-dstImage-07978", - "text": " If pname:dstImage has a depth/stencil format, the bufferOffset member of any element of pRegions must be a multiple of 4" + "text": "If dstImage has a depth/stencil format, the bufferOffset member of any element of pRegions must be a multiple of 4", + "page": "vkspec" }, { "vuid": "VUID-VkCopyBufferToImageInfo2-pRegions-06223", - "text": " For each element of pRegions not containing VkCopyCommandTransformInfoQCOM in its pNext chain, imageOffset.x and (imageExtent.width + imageOffset.x) must both be greater than or equal to 0 and less than or equal to the width of the specified imageSubresource of dstImage" + "text": "For each element of pRegions not containing VkCopyCommandTransformInfoQCOM in its pNext chain, imageOffset.x and (imageExtent.width + imageOffset.x) must both be greater than or equal to 0 and less than or equal to the width of the specified imageSubresource of dstImage", + "page": "vkspec" }, { "vuid": "VUID-VkCopyBufferToImageInfo2-pRegions-06224", - "text": " For each element of pRegions not containing VkCopyCommandTransformInfoQCOM in its pNext chain, imageOffset.y and (imageExtent.height + imageOffset.y) must both be greater than or equal to 0 and less than or equal to the height of the specified imageSubresource of dstImage" + "text": "For each element of pRegions not containing VkCopyCommandTransformInfoQCOM in its pNext chain, imageOffset.y and (imageExtent.height + imageOffset.y) must both be greater than or equal to 0 and less than or equal to the height of the specified imageSubresource of dstImage", + "page": "vkspec" }, { "vuid": "VUID-VkCopyBufferToImageInfo2-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2" + "text": "sType must be VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2", + "page": "vkspec" }, { "vuid": "VUID-VkCopyBufferToImageInfo2-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkCopyBufferToImageInfo2-srcBuffer-parameter", - "text": " srcBuffer must be a valid VkBuffer handle" + "text": "srcBuffer must be a valid VkBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-VkCopyBufferToImageInfo2-dstImage-parameter", - "text": " dstImage must be a valid VkImage handle" + "text": "dstImage must be a valid VkImage handle", + "page": "vkspec" }, { "vuid": "VUID-VkCopyBufferToImageInfo2-dstImageLayout-parameter", - "text": " dstImageLayout must be a valid VkImageLayout value" + "text": "dstImageLayout must be a valid VkImageLayout value", + "page": "vkspec" }, { "vuid": "VUID-VkCopyBufferToImageInfo2-pRegions-parameter", - "text": " pRegions must be a valid pointer to an array of regionCount valid VkBufferImageCopy2 structures" + "text": "pRegions must be a valid pointer to an array of regionCount valid VkBufferImageCopy2 structures", + "page": "vkspec" }, { "vuid": "VUID-VkCopyBufferToImageInfo2-regionCount-arraylength", - "text": " regionCount must be greater than 0" + "text": "regionCount must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-VkCopyBufferToImageInfo2-commonparent", - "text": " Both of dstImage, and srcBuffer must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of dstImage, and srcBuffer must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -29322,47 +36347,58 @@ "core": [ { "vuid": "VUID-vkCmdCopyImageToBuffer2-commandBuffer-01831", - "text": " If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcImage must not be a protected image" + "text": "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcImage must not be a protected image", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImageToBuffer2-commandBuffer-01832", - "text": " If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstBuffer must not be a protected buffer" + "text": "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstBuffer must not be a protected buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImageToBuffer2-commandBuffer-01833", - "text": " If commandBuffer is a protected command buffer and protectedNoFault is not supported, dstBuffer must not be an unprotected buffer" + "text": "If commandBuffer is a protected command buffer and protectedNoFault is not supported, dstBuffer must not be an unprotected buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImageToBuffer2-commandBuffer-07746", - "text": " If the queue family used to create the VkCommandPool which commandBuffer was allocated from does not support VK_QUEUE_GRAPHICS_BIT or VK_QUEUE_COMPUTE_BIT, the bufferOffset member of any element of pname:pCopyImageToBufferInfo->pRegions must be a multiple of 4" + "text": "If the queue family used to create the VkCommandPool which commandBuffer was allocated from does not support VK_QUEUE_GRAPHICS_BIT or VK_QUEUE_COMPUTE_BIT, the bufferOffset member of any element of pCopyImageToBufferInfo->pRegions must be a multiple of 4", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImageToBuffer2-imageOffset-07747", - "text": " The imageOffset and imageExtent members of each element of pname:pCopyImageToBufferInfo->pRegions must respect the image transfer granularity requirements of commandBuffer’s command pool’s queue family, as described in VkQueueFamilyProperties" + "text": "The imageOffset and imageExtent members of each element of pCopyImageToBufferInfo->pRegions must respect the image transfer granularity requirements of commandBuffer’s command pool’s queue family, as described in VkQueueFamilyProperties", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImageToBuffer2-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImageToBuffer2-pCopyImageToBufferInfo-parameter", - "text": " pCopyImageToBufferInfo must be a valid pointer to a valid VkCopyImageToBufferInfo2 structure" + "text": "pCopyImageToBufferInfo must be a valid pointer to a valid VkCopyImageToBufferInfo2 structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImageToBuffer2-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImageToBuffer2-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImageToBuffer2-renderpass", - "text": " This command must only be called outside of a render pass instance" + "text": "This command must only be called outside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyImageToBuffer2-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -29370,191 +36406,233 @@ "core": [ { "vuid": "VUID-VkCopyImageToBufferInfo2-pRegions-04566", - "text": " If the image region specified by each element of pRegions does not contain VkCopyCommandTransformInfoQCOM in its pNext chain, it must be contained within the specified imageSubresource of srcImage" + "text": "The image region specified by each element of pRegions that does not contain VkCopyCommandTransformInfoQCOM in its pNext chain must be contained within the specified imageSubresource of srcImage", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageToBufferInfo2KHR-pRegions-04557", - "text": " If the image region specified by each element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, the rotated source region as described in [copies-buffers-images-rotation-addressing] must be contained within srcImage" + "text": "If the image region specified by each element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, the rotated source region as described in [copies-buffers-images-rotation-addressing] must be contained within srcImage", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageToBufferInfo2KHR-pRegions-04558", - "text": " If any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then srcImage must have a 1x1x1 texel block extent" + "text": "If any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then srcImage must have a 1x1x1 texel block extent", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageToBufferInfo2KHR-pRegions-06205", - "text": " If any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then srcImage must be of type VK_IMAGE_TYPE_2D" + "text": "If any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then srcImage must be of type VK_IMAGE_TYPE_2D", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageToBufferInfo2KHR-pRegions-06206", - "text": " If any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then srcImage must not have a multi-planar format" + "text": "If any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then srcImage must not have a multi-planar format", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageToBufferInfo2-pRegions-00183", - "text": " dstBuffer must be large enough to contain all buffer locations that are accessed according to Buffer and Image Addressing, for each element of pRegions" + "text": "dstBuffer must be large enough to contain all buffer locations that are accessed according to Buffer and Image Addressing, for each element of pRegions", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageToBufferInfo2-pRegions-00184", - "text": " The union of all source regions, and the union of all destination regions, specified by the elements of pRegions, must not overlap in memory" + "text": "The union of all source regions, and the union of all destination regions, specified by the elements of pRegions, must not overlap in memory", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageToBufferInfo2-srcImage-00186", - "text": " srcImage must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag" + "text": "srcImage must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageToBufferInfo2-srcImage-01998", - "text": " The format features of srcImage must contain VK_FORMAT_FEATURE_TRANSFER_SRC_BIT" + "text": "The format features of srcImage must contain VK_FORMAT_FEATURE_TRANSFER_SRC_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageToBufferInfo2-dstBuffer-00191", - "text": " dstBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag" + "text": "dstBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageToBufferInfo2-dstBuffer-00192", - "text": " If dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageToBufferInfo2-srcImageLayout-00189", - "text": " srcImageLayout must specify the layout of the image subresources of srcImage specified in pRegions at the time this command is executed on a VkDevice" + "text": "srcImageLayout must specify the layout of the image subresources of srcImage specified in pRegions at the time this command is executed on a VkDevice", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageToBufferInfo2-srcImageLayout-01397", - "text": " srcImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, VK_IMAGE_LAYOUT_GENERAL, or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR" + "text": "srcImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, or VK_IMAGE_LAYOUT_GENERAL", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageToBufferInfo2-srcImage-07966", - "text": " If pname:srcImage is non-sparse then the image or the specified disjoint plane must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If srcImage is non-sparse then the image or the specified disjoint plane must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageToBufferInfo2-imageSubresource-07967", - "text": " The pname:imageSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when pname:srcImage was created" + "text": "The imageSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when srcImage was created", + "page": "vkspec" }, { - "vuid": "VUID-VkCopyImageToBufferInfo2-imageSubresource-08790", - "text": " If pname:imageSubresource.layerCount is not VK_REMAINING_ARRAY_LAYERS, the pname:imageSubresource.baseArrayLayer + pname:imageSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when pname:srcImage was created" + "vuid": "VUID-VkCopyImageToBufferInfo2-imageSubresource-07968", + "text": "The imageSubresource.baseArrayLayer + imageSubresource.layerCount of each element of pRegions , if imageSubresource.layerCount is not VK_REMAINING_ARRAY_LAYERS and maintenance5 is not enabled, must be less than or equal to the arrayLayers specified in VkImageCreateInfo when srcImage was created", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageToBufferInfo2-srcImage-07969", - "text": " pname:srcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT" + "text": "srcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageToBufferInfo2-srcImage-07973", - "text": " pname:srcImage must have a sample count equal to VK_SAMPLE_COUNT_1_BIT" + "text": "srcImage must have a sample count equal to VK_SAMPLE_COUNT_1_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageToBufferInfo2-srcImage-07979", - "text": " If pname:srcImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, pname:imageOffset.y must be 0 and pname:imageExtent.height must be 1" + "text": "If srcImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, imageOffset.y must be 0 and imageExtent.height must be 1", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageToBufferInfo2-imageOffset-09104", - "text": " For each element of pRegions, pname:imageOffset.z and (pname:imageExtent.depth + pname:imageOffset.z) must both be greater than or equal to 0 and less than or equal to the depth of the specified pname:imageSubresource of pname:srcImage" + "text": "For each element of pRegions, imageOffset.z and (imageExtent.depth + imageOffset.z) must both be greater than or equal to 0 and less than or equal to the depth of the specified imageSubresource of srcImage", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageToBufferInfo2-srcImage-07980", - "text": " If pname:srcImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, pname:imageOffset.z must be 0 and pname:imageExtent.depth must be 1" + "text": "If srcImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, imageOffset.z must be 0 and imageExtent.depth must be 1", + "page": "vkspec" }, { - "vuid": "VUID-VkCopyImageToBufferInfo2-pRegions-07274", - "text": " For each element of pRegions, pname:imageOffset.x must be a multiple of the texel block extent width of the VkFormat of pname:srcImage" + "vuid": "VUID-VkCopyImageToBufferInfo2-srcImage-07274", + "text": "For each element of pRegions, imageOffset.x must be a multiple of the texel block extent width of the VkFormat of srcImage", + "page": "vkspec" }, { - "vuid": "VUID-VkCopyImageToBufferInfo2-pRegions-07275", - "text": " For each element of pRegions, pname:imageOffset.y must be a multiple of the texel block extent height of the VkFormat of pname:srcImage" + "vuid": "VUID-VkCopyImageToBufferInfo2-srcImage-07275", + "text": "For each element of pRegions, imageOffset.y must be a multiple of the texel block extent height of the VkFormat of srcImage", + "page": "vkspec" }, { - "vuid": "VUID-VkCopyImageToBufferInfo2-pRegions-07276", - "text": " For each element of pRegions, pname:imageOffset.z must be a multiple of the texel block extent depth of the VkFormat of pname:srcImage" + "vuid": "VUID-VkCopyImageToBufferInfo2-srcImage-07276", + "text": "For each element of pRegions, imageOffset.z must be a multiple of the texel block extent depth of the VkFormat of srcImage", + "page": "vkspec" }, { - "vuid": "VUID-VkCopyImageToBufferInfo2-imageExtent-00207", - "text": " For each element of pRegions, if the sum of pname:imageOffset.x and extent.width does not equal the width of the subresource specified by srcSubresource, extent.width must be a multiple of the texel block extent width of the VkFormat of pname:srcImage" + "vuid": "VUID-VkCopyImageToBufferInfo2-srcImage-00207", + "text": "For each element of pRegions, if the sum of imageOffset.x and extent.width does not equal the width of the subresource specified by srcSubresource, extent.width must be a multiple of the texel block extent width of the VkFormat of srcImage", + "page": "vkspec" }, { - "vuid": "VUID-VkCopyImageToBufferInfo2-imageExtent-00208", - "text": " For each element of pRegions, if the sum of pname:imageOffset.y and extent.height does not equal the height of the subresource specified by srcSubresource, extent.height must be a multiple of the texel block extent height of the VkFormat of pname:srcImage" + "vuid": "VUID-VkCopyImageToBufferInfo2-srcImage-00208", + "text": "For each element of pRegions, if the sum of imageOffset.y and extent.height does not equal the height of the subresource specified by srcSubresource, extent.height must be a multiple of the texel block extent height of the VkFormat of srcImage", + "page": "vkspec" }, { - "vuid": "VUID-VkCopyImageToBufferInfo2-imageExtent-00209", - "text": " For each element of pRegions, if the sum of pname:imageOffset.z and extent.depth does not equal the depth of the subresource specified by srcSubresource, extent.depth must be a multiple of the texel block extent depth of the VkFormat of pname:srcImage" + "vuid": "VUID-VkCopyImageToBufferInfo2-srcImage-00209", + "text": "For each element of pRegions, if the sum of imageOffset.z and extent.depth does not equal the depth of the subresource specified by srcSubresource, extent.depth must be a multiple of the texel block extent depth of the VkFormat of srcImage", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageToBufferInfo2-imageSubresource-09105", - "text": " For each element of pRegions, pname:imageSubresource.aspectMask must specify aspects present in pname:srcImage" + "text": "For each element of pRegions, imageSubresource.aspectMask must specify aspects present in srcImage", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageToBufferInfo2-srcImage-07981", - "text": " If pname:srcImage has a VkFormat with two planes then for each element of pRegions, pname:imageSubresource.aspectMask must be VK_IMAGE_ASPECT_PLANE_0_BIT or VK_IMAGE_ASPECT_PLANE_1_BIT" - }, - { - "vuid": "VUID-VkCopyImageToBufferInfo2-srcImage-07982", - "text": " If pname:srcImage has a VkFormat with three planes then for each element of pRegions, pname:imageSubresource.aspectMask must be VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT, or VK_IMAGE_ASPECT_PLANE_2_BIT" + "text": "If srcImage has a multi-planar image format, then for each element of pRegions, imageSubresource.aspectMask must be a single valid multi-planar aspect mask bit", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageToBufferInfo2-srcImage-07983", - "text": " If pname:srcImage is of type VK_IMAGE_TYPE_3D, for each element of pRegions, pname:imageSubresource.baseArrayLayer must be 0 and pname:imageSubresource.layerCount must be 1" + "text": "If srcImage is of type VK_IMAGE_TYPE_3D, for each element of pRegions, imageSubresource.baseArrayLayer must be 0 and imageSubresource.layerCount must be 1", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageToBufferInfo2-bufferRowLength-09106", - "text": " For each element of pRegions, pname:bufferRowLength must be a multiple of the texel block extent width of the VkFormat of pname:srcImage" + "text": "For each element of pRegions, bufferRowLength must be a multiple of the texel block extent width of the VkFormat of srcImage", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageToBufferInfo2-bufferImageHeight-09107", - "text": " For each element of pRegions, pname:bufferImageHeight must be a multiple of the texel block extent height of the VkFormat of pname:srcImage" + "text": "For each element of pRegions, bufferImageHeight must be a multiple of the texel block extent height of the VkFormat of srcImage", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageToBufferInfo2-bufferRowLength-09108", - "text": " For each element of pRegions, pname:bufferRowLength divided by the texel block extent width and then multiplied by the texel block size of pname:srcImage must be less than or equal to 231-1" + "text": "For each element of pRegions, bufferRowLength divided by the texel block extent width and then multiplied by the texel block size of srcImage must be less than or equal to 231-1", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageToBufferInfo2-srcImage-07975", - "text": " If pname:srcImage does not have either a depth/stencil or a multi-planar format, then for each element of pRegions, bufferOffset must be a multiple of the texel block size" + "text": "If srcImage does not have either a depth/stencil format or a multi-planar format, then for each element of pRegions, bufferOffset must be a multiple of the texel block size", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageToBufferInfo2-srcImage-07976", - "text": " If pname:srcImage has a multi-planar format, then for each element of pRegions, bufferOffset must be a multiple of the element size of the compatible format for the format and the aspectMask of the imageSubresource as defined in Compatible formats of planes of multi-planar formats" + "text": "If srcImage has a multi-planar format, then for each element of pRegions, bufferOffset must be a multiple of the element size of the compatible format for the format and the aspectMask of the imageSubresource as defined in Compatible Formats of Planes of Multi-Planar Formats", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageToBufferInfo2-srcImage-07978", - "text": " If pname:srcImage has a depth/stencil format, the bufferOffset member of any element of pRegions must be a multiple of 4" + "text": "If srcImage has a depth/stencil format, the bufferOffset member of any element of pRegions must be a multiple of 4", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageToBufferInfo2-imageOffset-00197", - "text": " For each element of pRegions not containing VkCopyCommandTransformInfoQCOM in its pNext chain, imageOffset.x and (imageExtent.width + imageOffset.x) must both be greater than or equal to 0 and less than or equal to the width of the specified imageSubresource of srcImage" + "text": "For each element of pRegions not containing VkCopyCommandTransformInfoQCOM in its pNext chain, imageOffset.x and (imageExtent.width + imageOffset.x) must both be greater than or equal to 0 and less than or equal to the width of the specified imageSubresource of srcImage", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageToBufferInfo2-imageOffset-00198", - "text": " For each element of pRegions not containing VkCopyCommandTransformInfoQCOM in its pNext chain, imageOffset.y and (imageExtent.height + imageOffset.y) must both be greater than or equal to 0 and less than or equal to the height of the specified imageSubresource of srcImage" + "text": "For each element of pRegions not containing VkCopyCommandTransformInfoQCOM in its pNext chain, imageOffset.y and (imageExtent.height + imageOffset.y) must both be greater than or equal to 0 and less than or equal to the height of the specified imageSubresource of srcImage", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageToBufferInfo2-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2" + "text": "sType must be VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageToBufferInfo2-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageToBufferInfo2-srcImage-parameter", - "text": " srcImage must be a valid VkImage handle" + "text": "srcImage must be a valid VkImage handle", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageToBufferInfo2-srcImageLayout-parameter", - "text": " srcImageLayout must be a valid VkImageLayout value" + "text": "srcImageLayout must be a valid VkImageLayout value", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageToBufferInfo2-dstBuffer-parameter", - "text": " dstBuffer must be a valid VkBuffer handle" + "text": "dstBuffer must be a valid VkBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageToBufferInfo2-pRegions-parameter", - "text": " pRegions must be a valid pointer to an array of regionCount valid VkBufferImageCopy2 structures" + "text": "pRegions must be a valid pointer to an array of regionCount valid VkBufferImageCopy2 structures", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageToBufferInfo2-regionCount-arraylength", - "text": " regionCount must be greater than 0" + "text": "regionCount must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-VkCopyImageToBufferInfo2-commonparent", - "text": " Both of dstBuffer, and srcImage must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of dstBuffer, and srcImage must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -29562,43 +36640,53 @@ "core": [ { "vuid": "VUID-VkBufferImageCopy2-bufferRowLength-09101", - "text": " pname:bufferRowLength must be 0, or greater than or equal to the width member of imageExtent" + "text": "bufferRowLength must be 0, or greater than or equal to the width member of imageExtent", + "page": "vkspec" }, { "vuid": "VUID-VkBufferImageCopy2-bufferImageHeight-09102", - "text": " pname:bufferImageHeight must be 0, or greater than or equal to the height member of imageExtent" + "text": "bufferImageHeight must be 0, or greater than or equal to the height member of imageExtent", + "page": "vkspec" }, { "vuid": "VUID-VkBufferImageCopy2-aspectMask-09103", - "text": " The aspectMask member of imageSubresource must only have a single bit set" + "text": "The aspectMask member of imageSubresource must only have a single bit set", + "page": "vkspec" }, { "vuid": "VUID-VkBufferImageCopy2-imageExtent-06659", - "text": " imageExtent.width must not be 0" + "text": "imageExtent.width must not be 0", + "page": "vkspec" }, { "vuid": "VUID-VkBufferImageCopy2-imageExtent-06660", - "text": " imageExtent.height must not be 0" + "text": "imageExtent.height must not be 0", + "page": "vkspec" }, { "vuid": "VUID-VkBufferImageCopy2-imageExtent-06661", - "text": " imageExtent.depth must not be 0" + "text": "imageExtent.depth must not be 0", + "page": "vkspec" }, { "vuid": "VUID-VkBufferImageCopy2-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2" + "text": "sType must be VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2", + "page": "vkspec" }, { "vuid": "VUID-VkBufferImageCopy2-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkCopyCommandTransformInfoQCOM" + "text": "pNext must be NULL or a pointer to a valid instance of VkCopyCommandTransformInfoQCOM", + "page": "vkspec" }, { "vuid": "VUID-VkBufferImageCopy2-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" }, { "vuid": "VUID-VkBufferImageCopy2-imageSubresource-parameter", - "text": " imageSubresource must be a valid VkImageSubresourceLayers structure" + "text": "imageSubresource must be a valid VkImageSubresourceLayers structure", + "page": "vkspec" } ] }, @@ -29606,11 +36694,925 @@ "core": [ { "vuid": "VUID-VkCopyCommandTransformInfoQCOM-transform-04560", - "text": " transform must be VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR, VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR, VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR, or VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR" + "text": "transform must be VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR, VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR, VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR, or VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkCopyCommandTransformInfoQCOM-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM" + "text": "sType must be VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM", + "page": "vkspec" + } + ] + }, + "vkCopyMemoryToImageEXT": { + "core": [ + { + "vuid": "VUID-vkCopyMemoryToImageEXT-hostImageCopy-09058", + "text": "The hostImageCopy feature must be enabled", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCopyMemoryToImageEXT-device-parameter", + "text": "device must be a valid VkDevice handle", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCopyMemoryToImageEXT-pCopyMemoryToImageInfo-parameter", + "text": "pCopyMemoryToImageInfo must be a valid pointer to a valid VkCopyMemoryToImageInfoEXT structure", + "page": "vkspec" + } + ] + }, + "VkCopyMemoryToImageInfoEXT": { + "core": [ + { + "vuid": "VUID-VkCopyMemoryToImageInfoEXT-dstImage-09109", + "text": "If dstImage is sparse then all memory ranges accessed by the copy command must be bound as described in Binding Resource Memory", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyMemoryToImageInfoEXT-dstImage-09111", + "text": "If the stencil aspect of dstImage is accessed, and dstImage was not created with separate stencil usage, dstImage must have been created with VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT set in VkImageCreateInfo::usage", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyMemoryToImageInfoEXT-dstImage-09112", + "text": "If the stencil aspect of dstImage is accessed, and dstImage was created with separate stencil usage, dstImage must have been created with VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT set in VkImageStencilUsageCreateInfo::stencilUsage", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyMemoryToImageInfoEXT-dstImage-09113", + "text": "If non-stencil aspects of dstImage are accessed, dstImage must have been created with VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT set in VkImageCreateInfo::usage", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyMemoryToImageInfoEXT-imageOffset-09114", + "text": "If flags contains VK_HOST_IMAGE_COPY_MEMCPY_EXT, the x, y, and z members of the imageOffset member of each element of pRegions must be 0", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyMemoryToImageInfoEXT-dstImage-09115", + "text": "If flags contains VK_HOST_IMAGE_COPY_MEMCPY_EXT, the imageExtent member of each element of pRegions must equal the extents of dstImage identified by imageSubresource", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyMemoryToImageInfoEXT-dstImage-07966", + "text": "If dstImage is non-sparse then the image or the specified disjoint plane must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyMemoryToImageInfoEXT-imageSubresource-07967", + "text": "The imageSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when dstImage was created", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyMemoryToImageInfoEXT-imageSubresource-07968", + "text": "The imageSubresource.baseArrayLayer + imageSubresource.layerCount of each element of pRegions , if imageSubresource.layerCount is not VK_REMAINING_ARRAY_LAYERS and maintenance5 is not enabled, must be less than or equal to the arrayLayers specified in VkImageCreateInfo when dstImage was created", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyMemoryToImageInfoEXT-dstImage-07969", + "text": "dstImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyMemoryToImageInfoEXT-imageSubresource-07970", + "text": "The image region specified by each element of pRegions must be contained within the specified imageSubresource of dstImage", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyMemoryToImageInfoEXT-imageSubresource-07971", + "text": "For each element of pRegions, imageOffset.x and (imageExtent.width + imageOffset.x) must both be greater than or equal to 0 and less than or equal to the width of the specified imageSubresource of dstImage", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyMemoryToImageInfoEXT-imageSubresource-07972", + "text": "For each element of pRegions, imageOffset.y and (imageExtent.height + imageOffset.y) must both be greater than or equal to 0 and less than or equal to the height of the specified imageSubresource of dstImage", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyMemoryToImageInfoEXT-dstImage-07973", + "text": "dstImage must have a sample count equal to VK_SAMPLE_COUNT_1_BIT", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyMemoryToImageInfoEXT-dstImage-07979", + "text": "If dstImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, imageOffset.y must be 0 and imageExtent.height must be 1", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyMemoryToImageInfoEXT-imageOffset-09104", + "text": "For each element of pRegions, imageOffset.z and (imageExtent.depth + imageOffset.z) must both be greater than or equal to 0 and less than or equal to the depth of the specified imageSubresource of dstImage", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyMemoryToImageInfoEXT-dstImage-07980", + "text": "If dstImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, imageOffset.z must be 0 and imageExtent.depth must be 1", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyMemoryToImageInfoEXT-dstImage-07274", + "text": "For each element of pRegions, imageOffset.x must be a multiple of the texel block extent width of the VkFormat of dstImage", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyMemoryToImageInfoEXT-dstImage-07275", + "text": "For each element of pRegions, imageOffset.y must be a multiple of the texel block extent height of the VkFormat of dstImage", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyMemoryToImageInfoEXT-dstImage-07276", + "text": "For each element of pRegions, imageOffset.z must be a multiple of the texel block extent depth of the VkFormat of dstImage", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyMemoryToImageInfoEXT-dstImage-00207", + "text": "For each element of pRegions, if the sum of imageOffset.x and extent.width does not equal the width of the subresource specified by srcSubresource, extent.width must be a multiple of the texel block extent width of the VkFormat of dstImage", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyMemoryToImageInfoEXT-dstImage-00208", + "text": "For each element of pRegions, if the sum of imageOffset.y and extent.height does not equal the height of the subresource specified by srcSubresource, extent.height must be a multiple of the texel block extent height of the VkFormat of dstImage", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyMemoryToImageInfoEXT-dstImage-00209", + "text": "For each element of pRegions, if the sum of imageOffset.z and extent.depth does not equal the depth of the subresource specified by srcSubresource, extent.depth must be a multiple of the texel block extent depth of the VkFormat of dstImage", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyMemoryToImageInfoEXT-imageSubresource-09105", + "text": "For each element of pRegions, imageSubresource.aspectMask must specify aspects present in dstImage", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyMemoryToImageInfoEXT-dstImage-07981", + "text": "If dstImage has a multi-planar image format, then for each element of pRegions, imageSubresource.aspectMask must be a single valid multi-planar aspect mask bit", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyMemoryToImageInfoEXT-dstImage-07983", + "text": "If dstImage is of type VK_IMAGE_TYPE_3D, for each element of pRegions, imageSubresource.baseArrayLayer must be 0 and imageSubresource.layerCount must be 1", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyMemoryToImageInfoEXT-memoryRowLength-09106", + "text": "For each element of pRegions, memoryRowLength must be a multiple of the texel block extent width of the VkFormat of dstImage", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyMemoryToImageInfoEXT-memoryImageHeight-09107", + "text": "For each element of pRegions, memoryImageHeight must be a multiple of the texel block extent height of the VkFormat of dstImage", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyMemoryToImageInfoEXT-memoryRowLength-09108", + "text": "For each element of pRegions, memoryRowLength divided by the texel block extent width and then multiplied by the texel block size of dstImage must be less than or equal to 231-1", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyMemoryToImageInfoEXT-dstImageLayout-09059", + "text": "dstImageLayout must specify the current layout of the image subresources of dstImage specified in pRegions", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyMemoryToImageInfoEXT-dstImageLayout-09060", + "text": "dstImageLayout must be one of the image layouts returned in VkPhysicalDeviceHostImageCopyPropertiesEXT::pCopyDstLayouts", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyMemoryToImageInfoEXT-flags-09393", + "text": "If flags includes VK_HOST_IMAGE_COPY_MEMCPY_EXT, for each region in pRegions, memoryRowLength and memoryImageHeight must both be 0", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyMemoryToImageInfoEXT-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO_EXT", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyMemoryToImageInfoEXT-pNext-pNext", + "text": "pNext must be NULL", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyMemoryToImageInfoEXT-flags-parameter", + "text": "flags must be a valid combination of VkHostImageCopyFlagBitsEXT values", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyMemoryToImageInfoEXT-dstImage-parameter", + "text": "dstImage must be a valid VkImage handle", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyMemoryToImageInfoEXT-dstImageLayout-parameter", + "text": "dstImageLayout must be a valid VkImageLayout value", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyMemoryToImageInfoEXT-pRegions-parameter", + "text": "pRegions must be a valid pointer to an array of regionCount valid VkMemoryToImageCopyEXT structures", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyMemoryToImageInfoEXT-regionCount-arraylength", + "text": "regionCount must be greater than 0", + "page": "vkspec" + } + ] + }, + "VkMemoryToImageCopyEXT": { + "core": [ + { + "vuid": "VUID-VkMemoryToImageCopyEXT-pHostPointer-09061", + "text": "pHostPointer must point to memory that is large enough to contain all memory locations that are accessed according to Buffer and Image Addressing, for each element of pRegions", + "page": "vkspec" + }, + { + "vuid": "VUID-VkMemoryToImageCopyEXT-pRegions-09062", + "text": "The union of all source regions, and the union of all destination regions, specified by the elements of pRegions, must not overlap in memory", + "page": "vkspec" + }, + { + "vuid": "VUID-VkMemoryToImageCopyEXT-memoryRowLength-09101", + "text": "memoryRowLength must be 0, or greater than or equal to the width member of imageExtent", + "page": "vkspec" + }, + { + "vuid": "VUID-VkMemoryToImageCopyEXT-memoryImageHeight-09102", + "text": "memoryImageHeight must be 0, or greater than or equal to the height member of imageExtent", + "page": "vkspec" + }, + { + "vuid": "VUID-VkMemoryToImageCopyEXT-aspectMask-09103", + "text": "The aspectMask member of imageSubresource must only have a single bit set", + "page": "vkspec" + }, + { + "vuid": "VUID-VkMemoryToImageCopyEXT-imageExtent-06659", + "text": "imageExtent.width must not be 0", + "page": "vkspec" + }, + { + "vuid": "VUID-VkMemoryToImageCopyEXT-imageExtent-06660", + "text": "imageExtent.height must not be 0", + "page": "vkspec" + }, + { + "vuid": "VUID-VkMemoryToImageCopyEXT-imageExtent-06661", + "text": "imageExtent.depth must not be 0", + "page": "vkspec" + }, + { + "vuid": "VUID-VkMemoryToImageCopyEXT-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY_EXT", + "page": "vkspec" + }, + { + "vuid": "VUID-VkMemoryToImageCopyEXT-pNext-pNext", + "text": "pNext must be NULL", + "page": "vkspec" + }, + { + "vuid": "VUID-VkMemoryToImageCopyEXT-pHostPointer-parameter", + "text": "pHostPointer must be a pointer value", + "page": "vkspec" + }, + { + "vuid": "VUID-VkMemoryToImageCopyEXT-imageSubresource-parameter", + "text": "imageSubresource must be a valid VkImageSubresourceLayers structure", + "page": "vkspec" + } + ] + }, + "vkCopyImageToMemoryEXT": { + "core": [ + { + "vuid": "VUID-vkCopyImageToMemoryEXT-hostImageCopy-09063", + "text": "The hostImageCopy feature must be enabled", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCopyImageToMemoryEXT-device-parameter", + "text": "device must be a valid VkDevice handle", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCopyImageToMemoryEXT-pCopyImageToMemoryInfo-parameter", + "text": "pCopyImageToMemoryInfo must be a valid pointer to a valid VkCopyImageToMemoryInfoEXT structure", + "page": "vkspec" + } + ] + }, + "VkCopyImageToMemoryInfoEXT": { + "core": [ + { + "vuid": "VUID-VkCopyImageToMemoryInfoEXT-srcImage-09109", + "text": "If srcImage is sparse then all memory ranges accessed by the copy command must be bound as described in Binding Resource Memory", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToMemoryInfoEXT-srcImage-09111", + "text": "If the stencil aspect of srcImage is accessed, and srcImage was not created with separate stencil usage, srcImage must have been created with VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT set in VkImageCreateInfo::usage", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToMemoryInfoEXT-srcImage-09112", + "text": "If the stencil aspect of srcImage is accessed, and srcImage was created with separate stencil usage, srcImage must have been created with VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT set in VkImageStencilUsageCreateInfo::stencilUsage", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToMemoryInfoEXT-srcImage-09113", + "text": "If non-stencil aspects of srcImage are accessed, srcImage must have been created with VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT set in VkImageCreateInfo::usage", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToMemoryInfoEXT-imageOffset-09114", + "text": "If flags contains VK_HOST_IMAGE_COPY_MEMCPY_EXT, the x, y, and z members of the imageOffset member of each element of pRegions must be 0", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToMemoryInfoEXT-srcImage-09115", + "text": "If flags contains VK_HOST_IMAGE_COPY_MEMCPY_EXT, the imageExtent member of each element of pRegions must equal the extents of srcImage identified by imageSubresource", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToMemoryInfoEXT-srcImage-07966", + "text": "If srcImage is non-sparse then the image or the specified disjoint plane must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToMemoryInfoEXT-imageSubresource-07967", + "text": "The imageSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when srcImage was created", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToMemoryInfoEXT-imageSubresource-07968", + "text": "The imageSubresource.baseArrayLayer + imageSubresource.layerCount of each element of pRegions , if imageSubresource.layerCount is not VK_REMAINING_ARRAY_LAYERS and maintenance5 is not enabled, must be less than or equal to the arrayLayers specified in VkImageCreateInfo when srcImage was created", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToMemoryInfoEXT-srcImage-07969", + "text": "srcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToMemoryInfoEXT-imageSubresource-07970", + "text": "The image region specified by each element of pRegions must be contained within the specified imageSubresource of srcImage", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToMemoryInfoEXT-imageSubresource-07971", + "text": "For each element of pRegions, imageOffset.x and (imageExtent.width + imageOffset.x) must both be greater than or equal to 0 and less than or equal to the width of the specified imageSubresource of srcImage", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToMemoryInfoEXT-imageSubresource-07972", + "text": "For each element of pRegions, imageOffset.y and (imageExtent.height + imageOffset.y) must both be greater than or equal to 0 and less than or equal to the height of the specified imageSubresource of srcImage", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToMemoryInfoEXT-srcImage-07973", + "text": "srcImage must have a sample count equal to VK_SAMPLE_COUNT_1_BIT", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToMemoryInfoEXT-srcImage-07979", + "text": "If srcImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, imageOffset.y must be 0 and imageExtent.height must be 1", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToMemoryInfoEXT-imageOffset-09104", + "text": "For each element of pRegions, imageOffset.z and (imageExtent.depth + imageOffset.z) must both be greater than or equal to 0 and less than or equal to the depth of the specified imageSubresource of srcImage", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToMemoryInfoEXT-srcImage-07980", + "text": "If srcImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, imageOffset.z must be 0 and imageExtent.depth must be 1", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToMemoryInfoEXT-srcImage-07274", + "text": "For each element of pRegions, imageOffset.x must be a multiple of the texel block extent width of the VkFormat of srcImage", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToMemoryInfoEXT-srcImage-07275", + "text": "For each element of pRegions, imageOffset.y must be a multiple of the texel block extent height of the VkFormat of srcImage", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToMemoryInfoEXT-srcImage-07276", + "text": "For each element of pRegions, imageOffset.z must be a multiple of the texel block extent depth of the VkFormat of srcImage", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToMemoryInfoEXT-srcImage-00207", + "text": "For each element of pRegions, if the sum of imageOffset.x and extent.width does not equal the width of the subresource specified by srcSubresource, extent.width must be a multiple of the texel block extent width of the VkFormat of srcImage", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToMemoryInfoEXT-srcImage-00208", + "text": "For each element of pRegions, if the sum of imageOffset.y and extent.height does not equal the height of the subresource specified by srcSubresource, extent.height must be a multiple of the texel block extent height of the VkFormat of srcImage", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToMemoryInfoEXT-srcImage-00209", + "text": "For each element of pRegions, if the sum of imageOffset.z and extent.depth does not equal the depth of the subresource specified by srcSubresource, extent.depth must be a multiple of the texel block extent depth of the VkFormat of srcImage", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToMemoryInfoEXT-imageSubresource-09105", + "text": "For each element of pRegions, imageSubresource.aspectMask must specify aspects present in srcImage", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToMemoryInfoEXT-srcImage-07981", + "text": "If srcImage has a multi-planar image format, then for each element of pRegions, imageSubresource.aspectMask must be a single valid multi-planar aspect mask bit", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToMemoryInfoEXT-srcImage-07983", + "text": "If srcImage is of type VK_IMAGE_TYPE_3D, for each element of pRegions, imageSubresource.baseArrayLayer must be 0 and imageSubresource.layerCount must be 1", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToMemoryInfoEXT-memoryRowLength-09106", + "text": "For each element of pRegions, memoryRowLength must be a multiple of the texel block extent width of the VkFormat of srcImage", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToMemoryInfoEXT-memoryImageHeight-09107", + "text": "For each element of pRegions, memoryImageHeight must be a multiple of the texel block extent height of the VkFormat of srcImage", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToMemoryInfoEXT-memoryRowLength-09108", + "text": "For each element of pRegions, memoryRowLength divided by the texel block extent width and then multiplied by the texel block size of srcImage must be less than or equal to 231-1", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToMemoryInfoEXT-srcImageLayout-09064", + "text": "srcImageLayout must specify the current layout of the image subresources of srcImage specified in pRegions", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToMemoryInfoEXT-srcImageLayout-09065", + "text": "srcImageLayout must be one of the image layouts returned in VkPhysicalDeviceHostImageCopyPropertiesEXT::pCopySrcLayouts", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToMemoryInfoEXT-flags-09394", + "text": "If flags includes VK_HOST_IMAGE_COPY_MEMCPY_EXT, for each region in pRegions, memoryRowLength and memoryImageHeight must both be 0", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToMemoryInfoEXT-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO_EXT", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToMemoryInfoEXT-pNext-pNext", + "text": "pNext must be NULL", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToMemoryInfoEXT-flags-parameter", + "text": "flags must be a valid combination of VkHostImageCopyFlagBitsEXT values", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToMemoryInfoEXT-srcImage-parameter", + "text": "srcImage must be a valid VkImage handle", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToMemoryInfoEXT-srcImageLayout-parameter", + "text": "srcImageLayout must be a valid VkImageLayout value", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToMemoryInfoEXT-pRegions-parameter", + "text": "pRegions must be a valid pointer to an array of regionCount valid VkImageToMemoryCopyEXT structures", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToMemoryInfoEXT-regionCount-arraylength", + "text": "regionCount must be greater than 0", + "page": "vkspec" + } + ] + }, + "VkImageToMemoryCopyEXT": { + "core": [ + { + "vuid": "VUID-VkImageToMemoryCopyEXT-pHostPointer-09066", + "text": "pHostPointer must point to memory that is large enough to contain all memory locations that are accessed according to Buffer and Image Addressing, for each element of pRegions", + "page": "vkspec" + }, + { + "vuid": "VUID-VkImageToMemoryCopyEXT-pRegions-09067", + "text": "The union of all source regions, and the union of all destination regions, specified by the elements of pRegions, must not overlap in memory", + "page": "vkspec" + }, + { + "vuid": "VUID-VkImageToMemoryCopyEXT-memoryRowLength-09101", + "text": "memoryRowLength must be 0, or greater than or equal to the width member of imageExtent", + "page": "vkspec" + }, + { + "vuid": "VUID-VkImageToMemoryCopyEXT-memoryImageHeight-09102", + "text": "memoryImageHeight must be 0, or greater than or equal to the height member of imageExtent", + "page": "vkspec" + }, + { + "vuid": "VUID-VkImageToMemoryCopyEXT-aspectMask-09103", + "text": "The aspectMask member of imageSubresource must only have a single bit set", + "page": "vkspec" + }, + { + "vuid": "VUID-VkImageToMemoryCopyEXT-imageExtent-06659", + "text": "imageExtent.width must not be 0", + "page": "vkspec" + }, + { + "vuid": "VUID-VkImageToMemoryCopyEXT-imageExtent-06660", + "text": "imageExtent.height must not be 0", + "page": "vkspec" + }, + { + "vuid": "VUID-VkImageToMemoryCopyEXT-imageExtent-06661", + "text": "imageExtent.depth must not be 0", + "page": "vkspec" + }, + { + "vuid": "VUID-VkImageToMemoryCopyEXT-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY_EXT", + "page": "vkspec" + }, + { + "vuid": "VUID-VkImageToMemoryCopyEXT-pNext-pNext", + "text": "pNext must be NULL", + "page": "vkspec" + }, + { + "vuid": "VUID-VkImageToMemoryCopyEXT-pHostPointer-parameter", + "text": "pHostPointer must be a pointer value", + "page": "vkspec" + }, + { + "vuid": "VUID-VkImageToMemoryCopyEXT-imageSubresource-parameter", + "text": "imageSubresource must be a valid VkImageSubresourceLayers structure", + "page": "vkspec" + } + ] + }, + "vkCopyImageToImageEXT": { + "core": [ + { + "vuid": "VUID-vkCopyImageToImageEXT-hostImageCopy-09068", + "text": "The hostImageCopy feature must be enabled", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCopyImageToImageEXT-device-parameter", + "text": "device must be a valid VkDevice handle", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCopyImageToImageEXT-pCopyImageToImageInfo-parameter", + "text": "pCopyImageToImageInfo must be a valid pointer to a valid VkCopyImageToImageInfoEXT structure", + "page": "vkspec" + } + ] + }, + "VkCopyImageToImageInfoEXT": { + "core": [ + { + "vuid": "VUID-VkCopyImageToImageInfoEXT-srcImage-09069", + "text": "srcImage and dstImage must have been created with identical image creation parameters", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToImageInfoEXT-srcImage-09109", + "text": "If srcImage is sparse then all memory ranges accessed by the copy command must be bound as described in Binding Resource Memory", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToImageInfoEXT-srcImage-09111", + "text": "If the stencil aspect of srcImage is accessed, and srcImage was not created with separate stencil usage, srcImage must have been created with VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT set in VkImageCreateInfo::usage", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToImageInfoEXT-srcImage-09112", + "text": "If the stencil aspect of srcImage is accessed, and srcImage was created with separate stencil usage, srcImage must have been created with VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT set in VkImageStencilUsageCreateInfo::stencilUsage", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToImageInfoEXT-srcImage-09113", + "text": "If non-stencil aspects of srcImage are accessed, srcImage must have been created with VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT set in VkImageCreateInfo::usage", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToImageInfoEXT-srcOffset-09114", + "text": "If flags contains VK_HOST_IMAGE_COPY_MEMCPY_EXT, the x, y, and z members of the srcOffset member of each element of pRegions must be 0", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToImageInfoEXT-srcImage-09115", + "text": "If flags contains VK_HOST_IMAGE_COPY_MEMCPY_EXT, the extent member of each element of pRegions must equal the extents of srcImage identified by srcSubresource", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToImageInfoEXT-srcImage-07966", + "text": "If srcImage is non-sparse then the image or the specified disjoint plane must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToImageInfoEXT-srcSubresource-07967", + "text": "The srcSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when srcImage was created", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToImageInfoEXT-srcSubresource-07968", + "text": "The srcSubresource.baseArrayLayer + srcSubresource.layerCount of each element of pRegions , if srcSubresource.layerCount is not VK_REMAINING_ARRAY_LAYERS and maintenance5 is not enabled, must be less than or equal to the arrayLayers specified in VkImageCreateInfo when srcImage was created", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToImageInfoEXT-srcImage-07969", + "text": "srcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToImageInfoEXT-srcSubresource-07970", + "text": "The image region specified by each element of pRegions must be contained within the specified srcSubresource of srcImage", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToImageInfoEXT-srcSubresource-07971", + "text": "For each element of pRegions, srcOffset.x and (extent.width + srcOffset.x) must both be greater than or equal to 0 and less than or equal to the width of the specified srcSubresource of srcImage", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToImageInfoEXT-srcSubresource-07972", + "text": "For each element of pRegions, srcOffset.y and (extent.height + srcOffset.y) must both be greater than or equal to 0 and less than or equal to the height of the specified srcSubresource of srcImage", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToImageInfoEXT-srcImage-07979", + "text": "If srcImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, srcOffset.y must be 0 and extent.height must be 1", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToImageInfoEXT-srcOffset-09104", + "text": "For each element of pRegions, srcOffset.z and (extent.depth + srcOffset.z) must both be greater than or equal to 0 and less than or equal to the depth of the specified srcSubresource of srcImage", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToImageInfoEXT-srcImage-07980", + "text": "If srcImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, srcOffset.z must be 0 and extent.depth must be 1", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToImageInfoEXT-srcImage-07274", + "text": "For each element of pRegions, srcOffset.x must be a multiple of the texel block extent width of the VkFormat of srcImage", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToImageInfoEXT-srcImage-07275", + "text": "For each element of pRegions, srcOffset.y must be a multiple of the texel block extent height of the VkFormat of srcImage", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToImageInfoEXT-srcImage-07276", + "text": "For each element of pRegions, srcOffset.z must be a multiple of the texel block extent depth of the VkFormat of srcImage", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToImageInfoEXT-srcImage-00207", + "text": "For each element of pRegions, if the sum of srcOffset.x and extent.width does not equal the width of the subresource specified by srcSubresource, extent.width must be a multiple of the texel block extent width of the VkFormat of srcImage", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToImageInfoEXT-srcImage-00208", + "text": "For each element of pRegions, if the sum of srcOffset.y and extent.height does not equal the height of the subresource specified by srcSubresource, extent.height must be a multiple of the texel block extent height of the VkFormat of srcImage", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToImageInfoEXT-srcImage-00209", + "text": "For each element of pRegions, if the sum of srcOffset.z and extent.depth does not equal the depth of the subresource specified by srcSubresource, extent.depth must be a multiple of the texel block extent depth of the VkFormat of srcImage", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToImageInfoEXT-srcSubresource-09105", + "text": "For each element of pRegions, srcSubresource.aspectMask must specify aspects present in srcImage", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToImageInfoEXT-srcImage-07981", + "text": "If srcImage has a multi-planar image format, then for each element of pRegions, srcSubresource.aspectMask must be a single valid multi-planar aspect mask bit", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToImageInfoEXT-srcImage-07983", + "text": "If srcImage is of type VK_IMAGE_TYPE_3D, for each element of pRegions, srcSubresource.baseArrayLayer must be 0 and srcSubresource.layerCount must be 1", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToImageInfoEXT-dstImage-09109", + "text": "If dstImage is sparse then all memory ranges accessed by the copy command must be bound as described in Binding Resource Memory", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToImageInfoEXT-dstImage-09111", + "text": "If the stencil aspect of dstImage is accessed, and dstImage was not created with separate stencil usage, dstImage must have been created with VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT set in VkImageCreateInfo::usage", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToImageInfoEXT-dstImage-09112", + "text": "If the stencil aspect of dstImage is accessed, and dstImage was created with separate stencil usage, dstImage must have been created with VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT set in VkImageStencilUsageCreateInfo::stencilUsage", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToImageInfoEXT-dstImage-09113", + "text": "If non-stencil aspects of dstImage are accessed, dstImage must have been created with VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT set in VkImageCreateInfo::usage", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToImageInfoEXT-dstOffset-09114", + "text": "If flags contains VK_HOST_IMAGE_COPY_MEMCPY_EXT, the x, y, and z members of the dstOffset member of each element of pRegions must be 0", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToImageInfoEXT-dstImage-09115", + "text": "If flags contains VK_HOST_IMAGE_COPY_MEMCPY_EXT, the extent member of each element of pRegions must equal the extents of dstImage identified by dstSubresource", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToImageInfoEXT-dstImage-07966", + "text": "If dstImage is non-sparse then the image or the specified disjoint plane must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToImageInfoEXT-dstSubresource-07967", + "text": "The dstSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when dstImage was created", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToImageInfoEXT-dstSubresource-07968", + "text": "The dstSubresource.baseArrayLayer + dstSubresource.layerCount of each element of pRegions , if dstSubresource.layerCount is not VK_REMAINING_ARRAY_LAYERS and maintenance5 is not enabled, must be less than or equal to the arrayLayers specified in VkImageCreateInfo when dstImage was created", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToImageInfoEXT-dstImage-07969", + "text": "dstImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToImageInfoEXT-dstSubresource-07970", + "text": "The image region specified by each element of pRegions must be contained within the specified dstSubresource of dstImage", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToImageInfoEXT-dstSubresource-07971", + "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", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToImageInfoEXT-dstSubresource-07972", + "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", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToImageInfoEXT-dstImage-07979", + "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", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToImageInfoEXT-dstOffset-09104", + "text": "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", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToImageInfoEXT-dstImage-07980", + "text": "If dstImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, dstOffset.z must be 0 and extent.depth must be 1", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToImageInfoEXT-dstImage-07274", + "text": "For each element of pRegions, dstOffset.x must be a multiple of the texel block extent width of the VkFormat of dstImage", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToImageInfoEXT-dstImage-07275", + "text": "For each element of pRegions, dstOffset.y must be a multiple of the texel block extent height of the VkFormat of dstImage", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToImageInfoEXT-dstImage-07276", + "text": "For each element of pRegions, dstOffset.z must be a multiple of the texel block extent depth of the VkFormat of dstImage", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToImageInfoEXT-dstImage-00207", + "text": "For each element of pRegions, if the sum of dstOffset.x and extent.width does not equal the width of the subresource specified by srcSubresource, extent.width must be a multiple of the texel block extent width of the VkFormat of dstImage", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToImageInfoEXT-dstImage-00208", + "text": "For each element of pRegions, if the sum of dstOffset.y and extent.height does not equal the height of the subresource specified by srcSubresource, extent.height must be a multiple of the texel block extent height of the VkFormat of dstImage", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToImageInfoEXT-dstImage-00209", + "text": "For each element of pRegions, if the sum of dstOffset.z and extent.depth does not equal the depth of the subresource specified by srcSubresource, extent.depth must be a multiple of the texel block extent depth of the VkFormat of dstImage", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToImageInfoEXT-dstSubresource-09105", + "text": "For each element of pRegions, dstSubresource.aspectMask must specify aspects present in dstImage", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToImageInfoEXT-dstImage-07981", + "text": "If dstImage has a multi-planar image format, then for each element of pRegions, dstSubresource.aspectMask must be a single valid multi-planar aspect mask bit", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToImageInfoEXT-dstImage-07983", + "text": "If dstImage is of type VK_IMAGE_TYPE_3D, for each element of pRegions, dstSubresource.baseArrayLayer must be 0 and dstSubresource.layerCount must be 1", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToImageInfoEXT-srcImageLayout-09070", + "text": "srcImageLayout must specify the current layout of the image subresources of srcImage specified in pRegions", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToImageInfoEXT-dstImageLayout-09071", + "text": "dstImageLayout must specify the current layout of the image subresources of dstImage specified in pRegions", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToImageInfoEXT-srcImageLayout-09072", + "text": "srcImageLayout must be one of the image layouts returned in VkPhysicalDeviceHostImageCopyPropertiesEXT::pCopySrcLayouts", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToImageInfoEXT-dstImageLayout-09073", + "text": "dstImageLayout must be one of the image layouts returned in VkPhysicalDeviceHostImageCopyPropertiesEXT::pCopyDstLayouts", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToImageInfoEXT-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO_EXT", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToImageInfoEXT-pNext-pNext", + "text": "pNext must be NULL", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToImageInfoEXT-flags-parameter", + "text": "flags must be a valid combination of VkHostImageCopyFlagBitsEXT values", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToImageInfoEXT-srcImage-parameter", + "text": "srcImage must be a valid VkImage handle", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToImageInfoEXT-srcImageLayout-parameter", + "text": "srcImageLayout must be a valid VkImageLayout value", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToImageInfoEXT-dstImage-parameter", + "text": "dstImage must be a valid VkImage handle", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToImageInfoEXT-dstImageLayout-parameter", + "text": "dstImageLayout must be a valid VkImageLayout value", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToImageInfoEXT-pRegions-parameter", + "text": "pRegions must be a valid pointer to an array of regionCount valid VkImageCopy2 structures", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToImageInfoEXT-regionCount-arraylength", + "text": "regionCount must be greater than 0", + "page": "vkspec" + }, + { + "vuid": "VUID-VkCopyImageToImageInfoEXT-commonparent", + "text": "Both of dstImage, and srcImage must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -29618,39 +37620,48 @@ "core": [ { "vuid": "VUID-vkCmdCopyMemoryIndirectNV-None-07653", - "text": " The indirectCopy feature must be enabled" + "text": "The indirectCopy feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyMemoryIndirectNV-copyBufferAddress-07654", - "text": " copyBufferAddress must be 4 byte aligned" + "text": "copyBufferAddress must be 4 byte aligned", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyMemoryIndirectNV-stride-07655", - "text": " stride must be a multiple of 4 and must be greater than or equal to sizeof(VkCopyMemoryIndirectCommandNV)" + "text": "stride must be a multiple of 4 and must be greater than or equal to sizeof(VkCopyMemoryIndirectCommandNV)", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyMemoryIndirectNV-commandBuffer-07656", - "text": " The VkCommandPool that commandBuffer was allocated from must support at least one of the VkPhysicalDeviceCopyMemoryIndirectPropertiesNV::supportedQueues" + "text": "The VkCommandPool that commandBuffer was allocated from must support at least one of the VkPhysicalDeviceCopyMemoryIndirectPropertiesNV::supportedQueues", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyMemoryIndirectNV-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyMemoryIndirectNV-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyMemoryIndirectNV-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyMemoryIndirectNV-renderpass", - "text": " This command must only be called outside of a render pass instance" + "text": "This command must only be called outside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyMemoryIndirectNV-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -29658,15 +37669,18 @@ "core": [ { "vuid": "VUID-VkCopyMemoryIndirectCommandNV-srcAddress-07657", - "text": " The srcAddress must be 4 byte aligned" + "text": "The srcAddress must be 4 byte aligned", + "page": "vkspec" }, { "vuid": "VUID-VkCopyMemoryIndirectCommandNV-dstAddress-07658", - "text": " The dstAddress must be 4 byte aligned" + "text": "The dstAddress must be 4 byte aligned", + "page": "vkspec" }, { "vuid": "VUID-VkCopyMemoryIndirectCommandNV-size-07659", - "text": " The size must be 4 byte aligned" + "text": "The size must be 4 byte aligned", + "page": "vkspec" } ] }, @@ -29674,111 +37688,143 @@ "core": [ { "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-None-07660", - "text": " The indirectCopy feature must be enabled" + "text": "The indirectCopy feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-dstImage-07661", - "text": " dstImage must not be a protected image" + "text": "dstImage must not be a protected image", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-aspectMask-07662", - "text": " The aspectMask member for every subresource in pImageSubresources must only have a single bit set" + "text": "The aspectMask member for every subresource in pImageSubresources must only have a single bit set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-dstImage-07663", - "text": " The image region specified by each element in copyBufferAddress must be a region that is contained within dstImage" + "text": "The image region specified by each element in copyBufferAddress must be a region that is contained within dstImage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-dstImage-07664", - "text": " dstImage must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag" + "text": "dstImage must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-dstImage-07665", - "text": " If dstImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If dstImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-dstImage-07973", - "text": " pname:dstImage must have a sample count equal to VK_SAMPLE_COUNT_1_BIT" + "text": "dstImage must have a sample count equal to VK_SAMPLE_COUNT_1_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-dstImageLayout-07667", - "text": " dstImageLayout must specify the layout of the image subresources of dstImage at the time this command is executed on a VkDevice" + "text": "dstImageLayout must specify the layout of the image subresources of dstImage at the time this command is executed on a VkDevice", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-dstImageLayout-07669", - "text": " dstImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_GENERAL, or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR" + "text": "dstImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, or VK_IMAGE_LAYOUT_GENERAL", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-mipLevel-07670", - "text": " The specified mipLevel of each region must be less than the mipLevels specified in VkImageCreateInfo when dstImage was created" + "text": "The specified mipLevel of each region must be less than the mipLevels specified in VkImageCreateInfo when dstImage was created", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-layerCount-09244", + "text": "If the maintenance5 feature is not enabled, layerCount must not be VK_REMAINING_ARRAY_LAYERS", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-layerCount-08764", - "text": " If layerCount is not VK_REMAINING_ARRAY_LAYERS, the specified baseArrayLayer + layerCount of each region must be less than or equal to the arrayLayers specified in VkImageCreateInfo when dstImage was created" + "text": "If layerCount is not VK_REMAINING_ARRAY_LAYERS, the specified baseArrayLayer + layerCount of each region must be less than or equal to the arrayLayers specified in VkImageCreateInfo when dstImage was created", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-imageOffset-07672", - "text": " The imageOffset and imageExtent members of each region must respect the image transfer granularity requirements of commandBuffer’s command pool’s queue family, as described in VkQueueFamilyProperties" + "text": "The imageOffset and imageExtent members of each region must respect the image transfer granularity requirements of commandBuffer’s command pool’s queue family, as described in VkQueueFamilyProperties", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-dstImage-07673", - "text": " dstImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT" + "text": "dstImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-commandBuffer-07674", - "text": " If the queue family used to create the VkCommandPool which commandBuffer was allocated from does not support VK_QUEUE_GRAPHICS_BIT, for each region, the aspectMask member of pImageSubresources must not be VK_IMAGE_ASPECT_DEPTH_BIT or VK_IMAGE_ASPECT_STENCIL_BIT" + "text": "If the queue family used to create the VkCommandPool which commandBuffer was allocated from does not support VK_QUEUE_GRAPHICS_BIT, for each region, the aspectMask member of pImageSubresources must not be VK_IMAGE_ASPECT_DEPTH_BIT or VK_IMAGE_ASPECT_STENCIL_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-imageOffset-07675", - "text": " For each region in copyBufferAddress, imageOffset.y and (imageExtent.height + imageOffset.y) must both be greater than or equal to 0 and less than or equal to the height of the specified subresource" + "text": "For each region in copyBufferAddress, imageOffset.y and (imageExtent.height + imageOffset.y) must both be greater than or equal to 0 and less than or equal to the height of the specified subresource", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-offset-07676", - "text": " offset must be 4 byte aligned" + "text": "offset must be 4 byte aligned", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-stride-07677", - "text": " stride must be a multiple of 4 and must be greater than or equal to sizeof(VkCopyMemoryToImageIndirectCommandNV)" + "text": "stride must be a multiple of 4 and must be greater than or equal to sizeof(VkCopyMemoryToImageIndirectCommandNV)", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-dstImage-parameter", - "text": " dstImage must be a valid VkImage handle" + "text": "dstImage must be a valid VkImage handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-dstImageLayout-parameter", - "text": " dstImageLayout must be a valid VkImageLayout value" + "text": "dstImageLayout must be a valid VkImageLayout value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-pImageSubresources-parameter", - "text": " pImageSubresources must be a valid pointer to an array of copyCount valid VkImageSubresourceLayers structures" + "text": "pImageSubresources must be a valid pointer to an array of copyCount valid VkImageSubresourceLayers structures", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-renderpass", - "text": " This command must only be called outside of a render pass instance" + "text": "This command must only be called outside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-copyCount-arraylength", - "text": " copyCount must be greater than 0" + "text": "copyCount must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-commonparent", - "text": " Both of commandBuffer, and dstImage must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of commandBuffer, and dstImage must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -29786,27 +37832,33 @@ "core": [ { "vuid": "VUID-VkCopyMemoryToImageIndirectCommandNV-srcAddress-07678", - "text": " The srcAddress must be 4 byte aligned" + "text": "The srcAddress must be 4 byte aligned", + "page": "vkspec" }, { "vuid": "VUID-VkCopyMemoryToImageIndirectCommandNV-bufferRowLength-07679", - "text": " bufferRowLength must be 0, or greater than or equal to the width member of imageExtent" + "text": "bufferRowLength must be 0, or greater than or equal to the width member of imageExtent", + "page": "vkspec" }, { "vuid": "VUID-VkCopyMemoryToImageIndirectCommandNV-bufferImageHeight-07680", - "text": " bufferImageHeight must be 0, or greater than or equal to the height member of imageExtent" + "text": "bufferImageHeight must be 0, or greater than or equal to the height member of imageExtent", + "page": "vkspec" }, { "vuid": "VUID-VkCopyMemoryToImageIndirectCommandNV-imageOffset-07681", - "text": " imageOffset must specify a valid offset in the destination image" + "text": "imageOffset must specify a valid offset in the destination image", + "page": "vkspec" }, { "vuid": "VUID-VkCopyMemoryToImageIndirectCommandNV-imageExtent-07682", - "text": " imageExtent must specify a valid region in the destination image and can be 0" + "text": "imageExtent must specify a valid region in the destination image and can be 0", + "page": "vkspec" }, { "vuid": "VUID-VkCopyMemoryToImageIndirectCommandNV-imageSubresource-parameter", - "text": " imageSubresource must be a valid VkImageSubresourceLayers structure" + "text": "imageSubresource must be a valid VkImageSubresourceLayers structure", + "page": "vkspec" } ] }, @@ -29814,235 +37866,293 @@ "core": [ { "vuid": "VUID-vkCmdBlitImage-commandBuffer-01834", - "text": " If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcImage must not be a protected image" + "text": "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcImage must not be a protected image", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBlitImage-commandBuffer-01835", - "text": " If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstImage must not be a protected image" + "text": "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstImage must not be a protected image", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBlitImage-commandBuffer-01836", - "text": " If commandBuffer is a protected command buffer and protectedNoFault is not supported, dstImage must not be an unprotected image" + "text": "If commandBuffer is a protected command buffer and protectedNoFault is not supported, dstImage must not be an unprotected image", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBlitImage-pRegions-00215", - "text": " The source region specified by each element of pRegions must be a region that is contained within srcImage" + "text": "The source region specified by each element of pRegions must be a region that is contained within srcImage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBlitImage-pRegions-00216", - "text": " The destination region specified by each element of pRegions must be a region that is contained within dstImage" + "text": "The destination region specified by each element of pRegions must be a region that is contained within dstImage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBlitImage-pRegions-00217", - "text": " The union of all destination regions, specified by the elements of pRegions, must not overlap in memory with any texel that may be sampled during the blit operation" + "text": "The union of all destination regions, specified by the elements of pRegions, must not overlap in memory with any texel that may be sampled during the blit operation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBlitImage-srcImage-01999", - "text": " The format features of srcImage must contain VK_FORMAT_FEATURE_BLIT_SRC_BIT" + "text": "The format features of srcImage must contain VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBlitImage-srcImage-06421", - "text": " srcImage must not use a format that requires a sampler {YCbCr} conversion" + "text": "srcImage must not use a format that requires a sampler Y′CBCR conversion", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBlitImage-srcImage-00219", - "text": " srcImage must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag" + "text": "srcImage must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBlitImage-srcImage-00220", - "text": " If srcImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If srcImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBlitImage-srcImageLayout-00221", - "text": " srcImageLayout must specify the layout of the image subresources of srcImage specified in pRegions at the time this command is executed on a VkDevice" + "text": "srcImageLayout must specify the layout of the image subresources of srcImage specified in pRegions at the time this command is executed on a VkDevice", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBlitImage-srcImageLayout-01398", - "text": " srcImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL" + "text": "srcImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBlitImage-dstImage-02000", - "text": " The format features of dstImage must contain VK_FORMAT_FEATURE_BLIT_DST_BIT" + "text": "The format features of dstImage must contain VK_FORMAT_FEATURE_BLIT_DST_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBlitImage-dstImage-06422", - "text": " dstImage must not use a format that requires a sampler {YCbCr} conversion" + "text": "dstImage must not use a format that requires a sampler Y′CBCR conversion", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBlitImage-dstImage-00224", - "text": " dstImage must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag" + "text": "dstImage must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBlitImage-dstImage-00225", - "text": " If dstImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If dstImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBlitImage-dstImageLayout-00226", - "text": " dstImageLayout must specify the layout of the image subresources of dstImage specified in pRegions at the time this command is executed on a VkDevice" + "text": "dstImageLayout must specify the layout of the image subresources of dstImage specified in pRegions at the time this command is executed on a VkDevice", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBlitImage-dstImageLayout-01399", - "text": " dstImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL" + "text": "dstImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBlitImage-srcImage-00229", - "text": " If either of srcImage or dstImage was created with a signed integer VkFormat, the other must also have been created with a signed integer VkFormat" + "text": "If either of srcImage or dstImage was created with a signed integer VkFormat, the other must also have been created with a signed integer VkFormat", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBlitImage-srcImage-00230", - "text": " If either of srcImage or dstImage was created with an unsigned integer VkFormat, the other must also have been created with an unsigned integer VkFormat" + "text": "If either of srcImage or dstImage was created with an unsigned integer VkFormat, the other must also have been created with an unsigned integer VkFormat", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBlitImage-srcImage-00231", - "text": " If either of srcImage or dstImage was created with a depth/stencil format, the other must have exactly the same format" + "text": "If either of srcImage or dstImage was created with a depth/stencil format, the other must have exactly the same format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBlitImage-srcImage-00232", - "text": " If srcImage was created with a depth/stencil format, filter must be VK_FILTER_NEAREST" + "text": "If srcImage was created with a depth/stencil format, filter must be VK_FILTER_NEAREST", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBlitImage-srcImage-00233", - "text": " srcImage must have been created with a samples value of VK_SAMPLE_COUNT_1_BIT" + "text": "srcImage must have been created with a samples value of VK_SAMPLE_COUNT_1_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBlitImage-dstImage-00234", - "text": " dstImage must have been created with a samples value of VK_SAMPLE_COUNT_1_BIT" + "text": "dstImage must have been created with a samples value of VK_SAMPLE_COUNT_1_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBlitImage-filter-02001", - "text": " If filter is VK_FILTER_LINEAR, then the format features of srcImage must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + "text": "If filter is VK_FILTER_LINEAR, then the format features of srcImage must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBlitImage-filter-02002", - "text": " If filter is VK_FILTER_CUBIC_EXT, then the format features of srcImage must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" + "text": "If filter is VK_FILTER_CUBIC_EXT, then the format features of srcImage must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBlitImage-filter-00237", - "text": " If filter is VK_FILTER_CUBIC_EXT, srcImage must be of type VK_IMAGE_TYPE_2D" + "text": "If filter is VK_FILTER_CUBIC_EXT, srcImage must be of type VK_IMAGE_TYPE_2D", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBlitImage-srcSubresource-01705", - "text": " The srcSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when srcImage was created" + "text": "The srcSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when srcImage was created", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBlitImage-dstSubresource-01706", - "text": " The dstSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when dstImage was created" + "text": "The dstSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when dstImage was created", + "page": "vkspec" }, { - "vuid": "VUID-vkCmdBlitImage-srcSubresource-08788", - "text": " If srcSubresource.layerCount is not VK_REMAINING_ARRAY_LAYERS, the srcSubresource.baseArrayLayer + srcSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when srcImage was created" + "vuid": "VUID-vkCmdBlitImage-srcSubresource-01707", + "text": "The srcSubresource.baseArrayLayer + srcSubresource.layerCount of each element of pRegions , if srcSubresource.layerCount is not VK_REMAINING_ARRAY_LAYERS and maintenance5 is not enabled, must be less than or equal to the arrayLayers specified in VkImageCreateInfo when srcImage was created", + "page": "vkspec" }, { - "vuid": "VUID-vkCmdBlitImage-dstSubresource-08789", - "text": " If dstSubresource.layerCount is not VK_REMAINING_ARRAY_LAYERS, the dstSubresource.baseArrayLayer + dstSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when dstImage was created" + "vuid": "VUID-vkCmdBlitImage-dstSubresource-01708", + "text": "The dstSubresource.baseArrayLayer + dstSubresource.layerCount of each element of pRegions , if srcSubresource.layerCount is not VK_REMAINING_ARRAY_LAYERS and maintenance5 is not enabled, must be less than or equal to the arrayLayers specified in VkImageCreateInfo when dstImage was created", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBlitImage-dstImage-02545", - "text": " dstImage and srcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT" + "text": "dstImage and srcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBlitImage-srcImage-00240", - "text": " If either srcImage or dstImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, srcSubresource.baseArrayLayer and dstSubresource.baseArrayLayer must each be 0, and srcSubresource.layerCount and dstSubresource.layerCount must each be 1" + "text": "If either srcImage or dstImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, srcSubresource.baseArrayLayer and dstSubresource.baseArrayLayer must each be 0, and srcSubresource.layerCount and dstSubresource.layerCount must each be 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBlitImage-aspectMask-00241", - "text": " For each element of pRegions, srcSubresource.aspectMask must specify aspects present in srcImage" + "text": "For each element of pRegions, srcSubresource.aspectMask must specify aspects present in srcImage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBlitImage-aspectMask-00242", - "text": " For each element of pRegions, dstSubresource.aspectMask must specify aspects present in dstImage" + "text": "For each element of pRegions, dstSubresource.aspectMask must specify aspects present in dstImage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBlitImage-srcOffset-00243", - "text": " For each element of pRegions, srcOffsets[0].x and srcOffsets[1].x must both be greater than or equal to 0 and less than or equal to the width of the specified srcSubresource of srcImage" + "text": "For each element of pRegions, srcOffsets[0].x and srcOffsets[1].x must both be greater than or equal to 0 and less than or equal to the width of the specified srcSubresource of srcImage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBlitImage-srcOffset-00244", - "text": " For each element of pRegions, srcOffsets[0].y and srcOffsets[1].y must both be greater than or equal to 0 and less than or equal to the height of the specified srcSubresource of srcImage" + "text": "For each element of pRegions, srcOffsets[0].y and srcOffsets[1].y must both be greater than or equal to 0 and less than or equal to the height of the specified srcSubresource of srcImage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBlitImage-srcImage-00245", - "text": " If srcImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, srcOffsets[0].y must be 0 and srcOffsets[1].y must be 1" + "text": "If srcImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, srcOffsets[0].y must be 0 and srcOffsets[1].y must be 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBlitImage-srcOffset-00246", - "text": " For each element of pRegions, srcOffsets[0].z and srcOffsets[1].z must both be greater than or equal to 0 and less than or equal to the depth of the specified srcSubresource of srcImage" + "text": "For each element of pRegions, srcOffsets[0].z and srcOffsets[1].z must both be greater than or equal to 0 and less than or equal to the depth of the specified srcSubresource of srcImage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBlitImage-srcImage-00247", - "text": " If srcImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, srcOffsets[0].z must be 0 and srcOffsets[1].z must be 1" + "text": "If srcImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, srcOffsets[0].z must be 0 and srcOffsets[1].z must be 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBlitImage-dstOffset-00248", - "text": " For each element of pRegions, dstOffsets[0].x and dstOffsets[1].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, dstOffsets[0].x and dstOffsets[1].x must both be greater than or equal to 0 and less than or equal to the width of the specified dstSubresource of dstImage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBlitImage-dstOffset-00249", - "text": " For each element of pRegions, dstOffsets[0].y and dstOffsets[1].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, dstOffsets[0].y and dstOffsets[1].y must both be greater than or equal to 0 and less than or equal to the height of the specified dstSubresource of dstImage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBlitImage-dstImage-00250", - "text": " If dstImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, dstOffsets[0].y must be 0 and dstOffsets[1].y must be 1" + "text": "If dstImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, dstOffsets[0].y must be 0 and dstOffsets[1].y must be 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBlitImage-dstOffset-00251", - "text": " For each element of pRegions, dstOffsets[0].z and dstOffsets[1].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": "For each element of pRegions, dstOffsets[0].z and dstOffsets[1].z must both be greater than or equal to 0 and less than or equal to the depth of the specified dstSubresource of dstImage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBlitImage-dstImage-00252", - "text": " If dstImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, dstOffsets[0].z must be 0 and dstOffsets[1].z must be 1" + "text": "If dstImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, dstOffsets[0].z must be 0 and dstOffsets[1].z must be 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBlitImage-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBlitImage-srcImage-parameter", - "text": " srcImage must be a valid VkImage handle" + "text": "srcImage must be a valid VkImage handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBlitImage-srcImageLayout-parameter", - "text": " srcImageLayout must be a valid VkImageLayout value" + "text": "srcImageLayout must be a valid VkImageLayout value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBlitImage-dstImage-parameter", - "text": " dstImage must be a valid VkImage handle" + "text": "dstImage must be a valid VkImage handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBlitImage-dstImageLayout-parameter", - "text": " dstImageLayout must be a valid VkImageLayout value" + "text": "dstImageLayout must be a valid VkImageLayout value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBlitImage-pRegions-parameter", - "text": " pRegions must be a valid pointer to an array of regionCount valid VkImageBlit structures" + "text": "pRegions must be a valid pointer to an array of regionCount valid VkImageBlit structures", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBlitImage-filter-parameter", - "text": " filter must be a valid VkFilter value" + "text": "filter must be a valid VkFilter value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBlitImage-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBlitImage-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBlitImage-renderpass", - "text": " This command must only be called outside of a render pass instance" + "text": "This command must only be called outside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBlitImage-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBlitImage-regionCount-arraylength", - "text": " regionCount must be greater than 0" + "text": "regionCount must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBlitImage-commonparent", - "text": " Each of commandBuffer, dstImage, and srcImage must have been created, allocated, or retrieved from the same VkDevice" + "text": "Each of commandBuffer, dstImage, and srcImage must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -30050,27 +38160,33 @@ "core": [ { "vuid": "VUID-VkImageBlit-aspectMask-00238", - "text": " The aspectMask member of srcSubresource and dstSubresource must match" - }, - { - "vuid": "VUID-VkImageBlit-maintenance5-08799", - "text": " If the maintenance5 feature is not enabled, the layerCount member of srcSubresource or dstSubresource must not be VK_REMAINING_ARRAY_LAYERS" + "text": "The aspectMask member of srcSubresource and dstSubresource must match", + "page": "vkspec" }, { "vuid": "VUID-VkImageBlit-layerCount-08800", - "text": " If neither of the layerCount members of srcSubresource or dstSubresource are VK_REMAINING_ARRAY_LAYERS, the layerCount members must match" + "text": "If neither of the layerCount members of srcSubresource or dstSubresource are VK_REMAINING_ARRAY_LAYERS, the layerCount members of srcSubresource or dstSubresource must match", + "page": "vkspec" + }, + { + "vuid": "VUID-VkImageBlit-maintenance5-08799", + "text": "If the maintenance5 feature is not enabled, the layerCount member of srcSubresource or dstSubresource must not be VK_REMAINING_ARRAY_LAYERS", + "page": "vkspec" }, { "vuid": "VUID-VkImageBlit-layerCount-08801", - "text": " If one of the layerCount members of srcSubresource or dstSubresource is VK_REMAINING_ARRAY_LAYERS, the other member must be either VK_REMAINING_ARRAY_LAYERS or equal to the arrayLayers member of the VkImageCreateInfo used to create the image minus baseArrayLayer" + "text": "If one of the layerCount members of srcSubresource or dstSubresource is VK_REMAINING_ARRAY_LAYERS, the other member must be either VK_REMAINING_ARRAY_LAYERS or equal to the arrayLayers member of the VkImageCreateInfo used to create the image minus baseArrayLayer", + "page": "vkspec" }, { "vuid": "VUID-VkImageBlit-srcSubresource-parameter", - "text": " srcSubresource must be a valid VkImageSubresourceLayers structure" + "text": "srcSubresource must be a valid VkImageSubresourceLayers structure", + "page": "vkspec" }, { "vuid": "VUID-VkImageBlit-dstSubresource-parameter", - "text": " dstSubresource must be a valid VkImageSubresourceLayers structure" + "text": "dstSubresource must be a valid VkImageSubresourceLayers structure", + "page": "vkspec" } ] }, @@ -30078,39 +38194,48 @@ "core": [ { "vuid": "VUID-vkCmdBlitImage2-commandBuffer-01834", - "text": " If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcImage must not be a protected image" + "text": "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcImage must not be a protected image", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBlitImage2-commandBuffer-01835", - "text": " If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstImage must not be a protected image" + "text": "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstImage must not be a protected image", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBlitImage2-commandBuffer-01836", - "text": " If commandBuffer is a protected command buffer and protectedNoFault is not supported, dstImage must not be an unprotected image" + "text": "If commandBuffer is a protected command buffer and protectedNoFault is not supported, dstImage must not be an unprotected image", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBlitImage2-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBlitImage2-pBlitImageInfo-parameter", - "text": " pBlitImageInfo must be a valid pointer to a valid VkBlitImageInfo2 structure" + "text": "pBlitImageInfo must be a valid pointer to a valid VkBlitImageInfo2 structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBlitImage2-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBlitImage2-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBlitImage2-renderpass", - "text": " This command must only be called outside of a render pass instance" + "text": "This command must only be called outside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBlitImage2-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -30118,223 +38243,302 @@ "core": [ { "vuid": "VUID-VkBlitImageInfo2-pRegions-00215", - "text": " The source region specified by each element of pRegions must be a region that is contained within srcImage" + "text": "The source region specified by each element of pRegions must be a region that is contained within srcImage", + "page": "vkspec" }, { "vuid": "VUID-VkBlitImageInfo2-pRegions-00216", - "text": " The destination region specified by each element of pRegions must be a region that is contained within dstImage" + "text": "The destination region specified by each element of pRegions must be a region that is contained within dstImage", + "page": "vkspec" }, { "vuid": "VUID-VkBlitImageInfo2-pRegions-00217", - "text": " The union of all destination regions, specified by the elements of pRegions, must not overlap in memory with any texel that may be sampled during the blit operation" + "text": "The union of all destination regions, specified by the elements of pRegions, must not overlap in memory with any texel that may be sampled during the blit operation", + "page": "vkspec" }, { "vuid": "VUID-VkBlitImageInfo2-srcImage-01999", - "text": " The format features of srcImage must contain VK_FORMAT_FEATURE_BLIT_SRC_BIT" + "text": "The format features of srcImage must contain VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkBlitImageInfo2-srcImage-06421", - "text": " srcImage must not use a format that requires a sampler {YCbCr} conversion" + "text": "srcImage must not use a format that requires a sampler Y′CBCR conversion", + "page": "vkspec" }, { "vuid": "VUID-VkBlitImageInfo2-srcImage-00219", - "text": " srcImage must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag" + "text": "srcImage must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag", + "page": "vkspec" }, { "vuid": "VUID-VkBlitImageInfo2-srcImage-00220", - "text": " If srcImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If srcImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-VkBlitImageInfo2-srcImageLayout-00221", - "text": " srcImageLayout must specify the layout of the image subresources of srcImage specified in pRegions at the time this command is executed on a VkDevice" + "text": "srcImageLayout must specify the layout of the image subresources of srcImage specified in pRegions at the time this command is executed on a VkDevice", + "page": "vkspec" }, { "vuid": "VUID-VkBlitImageInfo2-srcImageLayout-01398", - "text": " srcImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL" + "text": "srcImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL", + "page": "vkspec" }, { "vuid": "VUID-VkBlitImageInfo2-dstImage-02000", - "text": " The format features of dstImage must contain VK_FORMAT_FEATURE_BLIT_DST_BIT" + "text": "The format features of dstImage must contain VK_FORMAT_FEATURE_BLIT_DST_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkBlitImageInfo2-dstImage-06422", - "text": " dstImage must not use a format that requires a sampler {YCbCr} conversion" + "text": "dstImage must not use a format that requires a sampler Y′CBCR conversion", + "page": "vkspec" }, { "vuid": "VUID-VkBlitImageInfo2-dstImage-00224", - "text": " dstImage must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag" + "text": "dstImage must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag", + "page": "vkspec" }, { "vuid": "VUID-VkBlitImageInfo2-dstImage-00225", - "text": " If dstImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If dstImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-VkBlitImageInfo2-dstImageLayout-00226", - "text": " dstImageLayout must specify the layout of the image subresources of dstImage specified in pRegions at the time this command is executed on a VkDevice" + "text": "dstImageLayout must specify the layout of the image subresources of dstImage specified in pRegions at the time this command is executed on a VkDevice", + "page": "vkspec" }, { "vuid": "VUID-VkBlitImageInfo2-dstImageLayout-01399", - "text": " dstImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL" + "text": "dstImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL", + "page": "vkspec" }, { "vuid": "VUID-VkBlitImageInfo2-srcImage-00229", - "text": " If either of srcImage or dstImage was created with a signed integer VkFormat, the other must also have been created with a signed integer VkFormat" + "text": "If either of srcImage or dstImage was created with a signed integer VkFormat, the other must also have been created with a signed integer VkFormat", + "page": "vkspec" }, { "vuid": "VUID-VkBlitImageInfo2-srcImage-00230", - "text": " If either of srcImage or dstImage was created with an unsigned integer VkFormat, the other must also have been created with an unsigned integer VkFormat" + "text": "If either of srcImage or dstImage was created with an unsigned integer VkFormat, the other must also have been created with an unsigned integer VkFormat", + "page": "vkspec" }, { "vuid": "VUID-VkBlitImageInfo2-srcImage-00231", - "text": " If either of srcImage or dstImage was created with a depth/stencil format, the other must have exactly the same format" + "text": "If either of srcImage or dstImage was created with a depth/stencil format, the other must have exactly the same format", + "page": "vkspec" }, { "vuid": "VUID-VkBlitImageInfo2-srcImage-00232", - "text": " If srcImage was created with a depth/stencil format, filter must be VK_FILTER_NEAREST" + "text": "If srcImage was created with a depth/stencil format, filter must be VK_FILTER_NEAREST", + "page": "vkspec" }, { "vuid": "VUID-VkBlitImageInfo2-srcImage-00233", - "text": " srcImage must have been created with a samples value of VK_SAMPLE_COUNT_1_BIT" + "text": "srcImage must have been created with a samples value of VK_SAMPLE_COUNT_1_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkBlitImageInfo2-dstImage-00234", - "text": " dstImage must have been created with a samples value of VK_SAMPLE_COUNT_1_BIT" + "text": "dstImage must have been created with a samples value of VK_SAMPLE_COUNT_1_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkBlitImageInfo2-filter-02001", - "text": " If filter is VK_FILTER_LINEAR, then the format features of srcImage must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + "text": "If filter is VK_FILTER_LINEAR, then the format features of srcImage must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkBlitImageInfo2-filter-02002", - "text": " If filter is VK_FILTER_CUBIC_EXT, then the format features of srcImage must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" + "text": "If filter is VK_FILTER_CUBIC_EXT, then the format features of srcImage must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkBlitImageInfo2-filter-00237", - "text": " If filter is VK_FILTER_CUBIC_EXT, srcImage must be of type VK_IMAGE_TYPE_2D" + "text": "If filter is VK_FILTER_CUBIC_EXT, srcImage must be of type VK_IMAGE_TYPE_2D", + "page": "vkspec" }, { "vuid": "VUID-VkBlitImageInfo2-srcSubresource-01705", - "text": " The srcSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when srcImage was created" + "text": "The srcSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when srcImage was created", + "page": "vkspec" }, { "vuid": "VUID-VkBlitImageInfo2-dstSubresource-01706", - "text": " The dstSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when dstImage was created" + "text": "The dstSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when dstImage was created", + "page": "vkspec" }, { - "vuid": "VUID-VkBlitImageInfo2-srcSubresource-08788", - "text": " If srcSubresource.layerCount is not VK_REMAINING_ARRAY_LAYERS, the srcSubresource.baseArrayLayer + srcSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when srcImage was created" + "vuid": "VUID-VkBlitImageInfo2-srcSubresource-01707", + "text": "The srcSubresource.baseArrayLayer + srcSubresource.layerCount of each element of pRegions , if srcSubresource.layerCount is not VK_REMAINING_ARRAY_LAYERS and maintenance5 is not enabled, must be less than or equal to the arrayLayers specified in VkImageCreateInfo when srcImage was created", + "page": "vkspec" }, { - "vuid": "VUID-VkBlitImageInfo2-dstSubresource-08789", - "text": " If dstSubresource.layerCount is not VK_REMAINING_ARRAY_LAYERS, the dstSubresource.baseArrayLayer + dstSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when dstImage was created" + "vuid": "VUID-VkBlitImageInfo2-dstSubresource-01708", + "text": "The dstSubresource.baseArrayLayer + dstSubresource.layerCount of each element of pRegions , if srcSubresource.layerCount is not VK_REMAINING_ARRAY_LAYERS and maintenance5 is not enabled, must be less than or equal to the arrayLayers specified in VkImageCreateInfo when dstImage was created", + "page": "vkspec" }, { "vuid": "VUID-VkBlitImageInfo2-dstImage-02545", - "text": " dstImage and srcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT" + "text": "dstImage and srcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkBlitImageInfo2-srcImage-00240", - "text": " If either srcImage or dstImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, srcSubresource.baseArrayLayer and dstSubresource.baseArrayLayer must each be 0, and srcSubresource.layerCount and dstSubresource.layerCount must each be 1" + "text": "If either srcImage or dstImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, srcSubresource.baseArrayLayer and dstSubresource.baseArrayLayer must each be 0, and srcSubresource.layerCount and dstSubresource.layerCount must each be 1", + "page": "vkspec" }, { "vuid": "VUID-VkBlitImageInfo2-aspectMask-00241", - "text": " For each element of pRegions, srcSubresource.aspectMask must specify aspects present in srcImage" + "text": "For each element of pRegions, srcSubresource.aspectMask must specify aspects present in srcImage", + "page": "vkspec" }, { "vuid": "VUID-VkBlitImageInfo2-aspectMask-00242", - "text": " For each element of pRegions, dstSubresource.aspectMask must specify aspects present in dstImage" + "text": "For each element of pRegions, dstSubresource.aspectMask must specify aspects present in dstImage", + "page": "vkspec" }, { "vuid": "VUID-VkBlitImageInfo2-srcOffset-00243", - "text": " For each element of pRegions, srcOffsets[0].x and srcOffsets[1].x must both be greater than or equal to 0 and less than or equal to the width of the specified srcSubresource of srcImage" + "text": "For each element of pRegions, srcOffsets[0].x and srcOffsets[1].x must both be greater than or equal to 0 and less than or equal to the width of the specified srcSubresource of srcImage", + "page": "vkspec" }, { "vuid": "VUID-VkBlitImageInfo2-srcOffset-00244", - "text": " For each element of pRegions, srcOffsets[0].y and srcOffsets[1].y must both be greater than or equal to 0 and less than or equal to the height of the specified srcSubresource of srcImage" + "text": "For each element of pRegions, srcOffsets[0].y and srcOffsets[1].y must both be greater than or equal to 0 and less than or equal to the height of the specified srcSubresource of srcImage", + "page": "vkspec" }, { "vuid": "VUID-VkBlitImageInfo2-srcImage-00245", - "text": " If srcImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, srcOffsets[0].y must be 0 and srcOffsets[1].y must be 1" + "text": "If srcImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, srcOffsets[0].y must be 0 and srcOffsets[1].y must be 1", + "page": "vkspec" }, { "vuid": "VUID-VkBlitImageInfo2-srcOffset-00246", - "text": " For each element of pRegions, srcOffsets[0].z and srcOffsets[1].z must both be greater than or equal to 0 and less than or equal to the depth of the specified srcSubresource of srcImage" + "text": "For each element of pRegions, srcOffsets[0].z and srcOffsets[1].z must both be greater than or equal to 0 and less than or equal to the depth of the specified srcSubresource of srcImage", + "page": "vkspec" }, { "vuid": "VUID-VkBlitImageInfo2-srcImage-00247", - "text": " If srcImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, srcOffsets[0].z must be 0 and srcOffsets[1].z must be 1" + "text": "If srcImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, srcOffsets[0].z must be 0 and srcOffsets[1].z must be 1", + "page": "vkspec" }, { "vuid": "VUID-VkBlitImageInfo2-dstOffset-00248", - "text": " For each element of pRegions, dstOffsets[0].x and dstOffsets[1].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, dstOffsets[0].x and dstOffsets[1].x must both be greater than or equal to 0 and less than or equal to the width of the specified dstSubresource of dstImage", + "page": "vkspec" }, { "vuid": "VUID-VkBlitImageInfo2-dstOffset-00249", - "text": " For each element of pRegions, dstOffsets[0].y and dstOffsets[1].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, dstOffsets[0].y and dstOffsets[1].y must both be greater than or equal to 0 and less than or equal to the height of the specified dstSubresource of dstImage", + "page": "vkspec" }, { "vuid": "VUID-VkBlitImageInfo2-dstImage-00250", - "text": " If dstImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, dstOffsets[0].y must be 0 and dstOffsets[1].y must be 1" + "text": "If dstImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, dstOffsets[0].y must be 0 and dstOffsets[1].y must be 1", + "page": "vkspec" }, { "vuid": "VUID-VkBlitImageInfo2-dstOffset-00251", - "text": " For each element of pRegions, dstOffsets[0].z and dstOffsets[1].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": "For each element of pRegions, dstOffsets[0].z and dstOffsets[1].z must both be greater than or equal to 0 and less than or equal to the depth of the specified dstSubresource of dstImage", + "page": "vkspec" }, { "vuid": "VUID-VkBlitImageInfo2-dstImage-00252", - "text": " If dstImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, dstOffsets[0].z must be 0 and dstOffsets[1].z must be 1" + "text": "If dstImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, dstOffsets[0].z must be 0 and dstOffsets[1].z must be 1", + "page": "vkspec" }, { "vuid": "VUID-VkBlitImageInfo2-pRegions-04561", - "text": " If any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then srcImage and dstImage must not be block-compressed images" + "text": "If any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then srcImage and dstImage must not be block-compressed images", + "page": "vkspec" }, { "vuid": "VUID-VkBlitImageInfo2KHR-pRegions-06207", - "text": " If any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then srcImage must be of type VK_IMAGE_TYPE_2D" + "text": "If any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then srcImage must be of type VK_IMAGE_TYPE_2D", + "page": "vkspec" }, { "vuid": "VUID-VkBlitImageInfo2KHR-pRegions-06208", - "text": " If any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then srcImage must not have a multi-planar format" + "text": "If any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then srcImage must not have a multi-planar format", + "page": "vkspec" + }, + { + "vuid": "VUID-VkBlitImageInfo2-filter-09204", + "text": "If filter is VK_FILTER_CUBIC_EXT and if the selectableCubicWeights feature is not enabled then the cubic weights must be VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM", + "page": "vkspec" }, { "vuid": "VUID-VkBlitImageInfo2-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2" + "text": "sType must be VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2", + "page": "vkspec" }, { "vuid": "VUID-VkBlitImageInfo2-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL or a pointer to a valid instance of VkBlitImageCubicWeightsInfoQCOM", + "page": "vkspec" + }, + { + "vuid": "VUID-VkBlitImageInfo2-sType-unique", + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" }, { "vuid": "VUID-VkBlitImageInfo2-srcImage-parameter", - "text": " srcImage must be a valid VkImage handle" + "text": "srcImage must be a valid VkImage handle", + "page": "vkspec" }, { "vuid": "VUID-VkBlitImageInfo2-srcImageLayout-parameter", - "text": " srcImageLayout must be a valid VkImageLayout value" + "text": "srcImageLayout must be a valid VkImageLayout value", + "page": "vkspec" }, { "vuid": "VUID-VkBlitImageInfo2-dstImage-parameter", - "text": " dstImage must be a valid VkImage handle" + "text": "dstImage must be a valid VkImage handle", + "page": "vkspec" }, { "vuid": "VUID-VkBlitImageInfo2-dstImageLayout-parameter", - "text": " dstImageLayout must be a valid VkImageLayout value" + "text": "dstImageLayout must be a valid VkImageLayout value", + "page": "vkspec" }, { "vuid": "VUID-VkBlitImageInfo2-pRegions-parameter", - "text": " pRegions must be a valid pointer to an array of regionCount valid VkImageBlit2 structures" + "text": "pRegions must be a valid pointer to an array of regionCount valid VkImageBlit2 structures", + "page": "vkspec" }, { "vuid": "VUID-VkBlitImageInfo2-filter-parameter", - "text": " filter must be a valid VkFilter value" + "text": "filter must be a valid VkFilter value", + "page": "vkspec" }, { "vuid": "VUID-VkBlitImageInfo2-regionCount-arraylength", - "text": " regionCount must be greater than 0" + "text": "regionCount must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-VkBlitImageInfo2-commonparent", - "text": " Both of dstImage, and srcImage must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of dstImage, and srcImage must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" + } + ] + }, + "VkBlitImageCubicWeightsInfoQCOM": { + "core": [ + { + "vuid": "VUID-VkBlitImageCubicWeightsInfoQCOM-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM", + "page": "vkspec" + }, + { + "vuid": "VUID-VkBlitImageCubicWeightsInfoQCOM-cubicWeights-parameter", + "text": "cubicWeights must be a valid VkCubicFilterWeightsQCOM value", + "page": "vkspec" } ] }, @@ -30342,39 +38546,48 @@ "core": [ { "vuid": "VUID-VkImageBlit2-aspectMask-00238", - "text": " The aspectMask member of srcSubresource and dstSubresource must match" - }, - { - "vuid": "VUID-VkImageBlit2-maintenance5-08799", - "text": " If the maintenance5 feature is not enabled, the layerCount member of srcSubresource or dstSubresource must not be VK_REMAINING_ARRAY_LAYERS" + "text": "The aspectMask member of srcSubresource and dstSubresource must match", + "page": "vkspec" }, { "vuid": "VUID-VkImageBlit2-layerCount-08800", - "text": " If neither of the layerCount members of srcSubresource or dstSubresource are VK_REMAINING_ARRAY_LAYERS, the layerCount members must match" + "text": "If neither of the layerCount members of srcSubresource or dstSubresource are VK_REMAINING_ARRAY_LAYERS, the layerCount members of srcSubresource or dstSubresource must match", + "page": "vkspec" + }, + { + "vuid": "VUID-VkImageBlit2-maintenance5-08799", + "text": "If the maintenance5 feature is not enabled, the layerCount member of srcSubresource or dstSubresource must not be VK_REMAINING_ARRAY_LAYERS", + "page": "vkspec" }, { "vuid": "VUID-VkImageBlit2-layerCount-08801", - "text": " If one of the layerCount members of srcSubresource or dstSubresource is VK_REMAINING_ARRAY_LAYERS, the other member must be either VK_REMAINING_ARRAY_LAYERS or equal to the arrayLayers member of the VkImageCreateInfo used to create the image minus baseArrayLayer" + "text": "If one of the layerCount members of srcSubresource or dstSubresource is VK_REMAINING_ARRAY_LAYERS, the other member must be either VK_REMAINING_ARRAY_LAYERS or equal to the arrayLayers member of the VkImageCreateInfo used to create the image minus baseArrayLayer", + "page": "vkspec" }, { "vuid": "VUID-VkImageBlit2-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_BLIT_2" + "text": "sType must be VK_STRUCTURE_TYPE_IMAGE_BLIT_2", + "page": "vkspec" }, { "vuid": "VUID-VkImageBlit2-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkCopyCommandTransformInfoQCOM" + "text": "pNext must be NULL or a pointer to a valid instance of VkCopyCommandTransformInfoQCOM", + "page": "vkspec" }, { "vuid": "VUID-VkImageBlit2-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" }, { "vuid": "VUID-VkImageBlit2-srcSubresource-parameter", - "text": " srcSubresource must be a valid VkImageSubresourceLayers structure" + "text": "srcSubresource must be a valid VkImageSubresourceLayers structure", + "page": "vkspec" }, { "vuid": "VUID-VkImageBlit2-dstSubresource-parameter", - "text": " dstSubresource must be a valid VkImageSubresourceLayers structure" + "text": "dstSubresource must be a valid VkImageSubresourceLayers structure", + "page": "vkspec" } ] }, @@ -30382,195 +38595,243 @@ "core": [ { "vuid": "VUID-vkCmdResolveImage-commandBuffer-01837", - "text": " If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcImage must not be a protected image" + "text": "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcImage must not be a protected image", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResolveImage-commandBuffer-01838", - "text": " If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstImage must not be a protected image" + "text": "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstImage must not be a protected image", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResolveImage-commandBuffer-01839", - "text": " If commandBuffer is a protected command buffer and protectedNoFault is not supported, dstImage must not be an unprotected image" + "text": "If commandBuffer is a protected command buffer and protectedNoFault is not supported, dstImage must not be an unprotected image", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResolveImage-pRegions-00255", - "text": " The union of all source regions, and the union of all destination regions, specified by the elements of pRegions, must not overlap in memory" + "text": "The union of all source regions, and the union of all destination regions, specified by the elements of pRegions, must not overlap in memory", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResolveImage-srcImage-00256", - "text": " If srcImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If srcImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResolveImage-srcImage-00257", - "text": " srcImage must have a sample count equal to any valid sample count value other than VK_SAMPLE_COUNT_1_BIT" + "text": "srcImage must have a sample count equal to any valid sample count value other than VK_SAMPLE_COUNT_1_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResolveImage-dstImage-00258", - "text": " If dstImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If dstImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResolveImage-dstImage-00259", - "text": " dstImage must have a sample count equal to VK_SAMPLE_COUNT_1_BIT" + "text": "dstImage must have a sample count equal to VK_SAMPLE_COUNT_1_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResolveImage-srcImageLayout-00260", - "text": " srcImageLayout must specify the layout of the image subresources of srcImage specified in pRegions at the time this command is executed on a VkDevice" + "text": "srcImageLayout must specify the layout of the image subresources of srcImage specified in pRegions at the time this command is executed on a VkDevice", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResolveImage-srcImageLayout-01400", - "text": " srcImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL" + "text": "srcImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResolveImage-dstImageLayout-00262", - "text": " dstImageLayout must specify the layout of the image subresources of dstImage specified in pRegions at the time this command is executed on a VkDevice" + "text": "dstImageLayout must specify the layout of the image subresources of dstImage specified in pRegions at the time this command is executed on a VkDevice", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResolveImage-dstImageLayout-01401", - "text": " dstImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL" + "text": "dstImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResolveImage-dstImage-02003", - "text": " The format features of dstImage must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT" + "text": "The format features of dstImage must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResolveImage-linearColorAttachment-06519", - "text": " If the linearColorAttachment feature is enabled and the image is created with VK_IMAGE_TILING_LINEAR, the format features of dstImage must contain VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV" + "text": "If the linearColorAttachment feature is enabled and the image is created with VK_IMAGE_TILING_LINEAR, the format features of dstImage must contain VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResolveImage-srcImage-01386", - "text": " srcImage and dstImage must have been created with the same image format" + "text": "srcImage and dstImage must have been created with the same image format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResolveImage-srcSubresource-01709", - "text": " The srcSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when srcImage was created" + "text": "The srcSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when srcImage was created", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResolveImage-dstSubresource-01710", - "text": " The dstSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when dstImage was created" + "text": "The dstSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when dstImage was created", + "page": "vkspec" }, { - "vuid": "VUID-vkCmdResolveImage-srcSubresource-08805", - "text": " If srcSubresource.layerCount is not VK_REMAINING_ARRAY_LAYERS, the srcSubresource.baseArrayLayer + srcSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when srcImage was created" + "vuid": "VUID-vkCmdResolveImage-srcSubresource-01711", + "text": "The srcSubresource.baseArrayLayer + srcSubresource.layerCount of each element of pRegions , if srcSubresource.layerCount is not VK_REMAINING_ARRAY_LAYERS and maintenance5 is not enabled, must be less than or equal to the arrayLayers specified in VkImageCreateInfo when srcImage was created", + "page": "vkspec" }, { - "vuid": "VUID-vkCmdResolveImage-dstSubresource-08806", - "text": " If dstSubresource.layerCount is not VK_REMAINING_ARRAY_LAYERS, the dstSubresource.baseArrayLayer + dstSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when dstImage was created" + "vuid": "VUID-vkCmdResolveImage-dstSubresource-01712", + "text": "The dstSubresource.baseArrayLayer + dstSubresource.layerCount of each element of pRegions , if dstSubresource.layerCount is not VK_REMAINING_ARRAY_LAYERS and maintenance5 is not enabled, must be less than or equal to the arrayLayers specified in VkImageCreateInfo when dstImage was created", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResolveImage-dstImage-02546", - "text": " dstImage and srcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT" + "text": "dstImage and srcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResolveImage-srcImage-04446", - "text": " If dstImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, srcSubresource.layerCount must be 1" + "text": "If dstImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, srcSubresource.layerCount must be 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResolveImage-srcImage-04447", - "text": " If dstImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, dstSubresource.baseArrayLayer must be 0 and dstSubresource.layerCount must be 1" + "text": "If dstImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, dstSubresource.baseArrayLayer must be 0 and dstSubresource.layerCount must be 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResolveImage-srcOffset-00269", - "text": " For each element of pRegions, srcOffset.x and (extent.width + srcOffset.x) must both be greater than or equal to 0 and less than or equal to the width of the specified srcSubresource of srcImage" + "text": "For each element of pRegions, srcOffset.x and (extent.width + srcOffset.x) must both be greater than or equal to 0 and less than or equal to the width of the specified srcSubresource of srcImage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResolveImage-srcOffset-00270", - "text": " For each element of pRegions, srcOffset.y and (extent.height + srcOffset.y) must both be greater than or equal to 0 and less than or equal to the height of the specified srcSubresource of srcImage" + "text": "For each element of pRegions, srcOffset.y and (extent.height + srcOffset.y) must both be greater than or equal to 0 and less than or equal to the height of the specified srcSubresource of srcImage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResolveImage-srcImage-00271", - "text": " If srcImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, srcOffset.y must be 0 and extent.height must be 1" + "text": "If srcImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, srcOffset.y must be 0 and extent.height must be 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResolveImage-srcOffset-00272", - "text": " For each element of pRegions, srcOffset.z and (extent.depth + srcOffset.z) must both be greater than or equal to 0 and less than or equal to the depth of the specified srcSubresource of srcImage" + "text": "For each element of pRegions, srcOffset.z and (extent.depth + srcOffset.z) must both be greater than or equal to 0 and less than or equal to the depth of the specified srcSubresource of srcImage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResolveImage-srcImage-00273", - "text": " If srcImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, srcOffset.z must be 0 and extent.depth must be 1" + "text": "If srcImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, srcOffset.z must be 0 and extent.depth must be 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResolveImage-dstOffset-00274", - "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) must both be greater than or equal to 0 and less than or equal to the width of the specified dstSubresource of dstImage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResolveImage-dstOffset-00275", - "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) must both be greater than or equal to 0 and less than or equal to the height of the specified dstSubresource of dstImage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResolveImage-dstImage-00276", - "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", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResolveImage-dstOffset-00277", - "text": " 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": "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", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResolveImage-dstImage-00278", - "text": " If dstImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, dstOffset.z must be 0 and extent.depth must be 1" + "text": "If dstImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, dstOffset.z must be 0 and extent.depth must be 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResolveImage-srcImage-06762", - "text": " srcImage must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag" + "text": "srcImage must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResolveImage-srcImage-06763", - "text": " The format features of srcImage must contain VK_FORMAT_FEATURE_TRANSFER_SRC_BIT" + "text": "The format features of srcImage must contain VK_FORMAT_FEATURE_TRANSFER_SRC_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResolveImage-dstImage-06764", - "text": " dstImage must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag" + "text": "dstImage must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResolveImage-dstImage-06765", - "text": " The format features of dstImage must contain VK_FORMAT_FEATURE_TRANSFER_DST_BIT" + "text": "The format features of dstImage must contain VK_FORMAT_FEATURE_TRANSFER_DST_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResolveImage-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResolveImage-srcImage-parameter", - "text": " srcImage must be a valid VkImage handle" + "text": "srcImage must be a valid VkImage handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResolveImage-srcImageLayout-parameter", - "text": " srcImageLayout must be a valid VkImageLayout value" + "text": "srcImageLayout must be a valid VkImageLayout value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResolveImage-dstImage-parameter", - "text": " dstImage must be a valid VkImage handle" + "text": "dstImage must be a valid VkImage handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResolveImage-dstImageLayout-parameter", - "text": " dstImageLayout must be a valid VkImageLayout value" + "text": "dstImageLayout must be a valid VkImageLayout value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResolveImage-pRegions-parameter", - "text": " pRegions must be a valid pointer to an array of regionCount valid VkImageResolve structures" + "text": "pRegions must be a valid pointer to an array of regionCount valid VkImageResolve structures", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResolveImage-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResolveImage-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResolveImage-renderpass", - "text": " This command must only be called outside of a render pass instance" + "text": "This command must only be called outside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResolveImage-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResolveImage-regionCount-arraylength", - "text": " regionCount must be greater than 0" + "text": "regionCount must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResolveImage-commonparent", - "text": " Each of commandBuffer, dstImage, and srcImage must have been created, allocated, or retrieved from the same VkDevice" + "text": "Each of commandBuffer, dstImage, and srcImage must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -30578,27 +38839,33 @@ "core": [ { "vuid": "VUID-VkImageResolve-aspectMask-00266", - "text": " The aspectMask member of srcSubresource and dstSubresource must only contain VK_IMAGE_ASPECT_COLOR_BIT" - }, - { - "vuid": "VUID-VkImageResolve-maintenance5-08802", - "text": " If the maintenance5 feature is not enabled, the layerCount member of srcSubresource or dstSubresource must not be VK_REMAINING_ARRAY_LAYERS" + "text": "The aspectMask member of srcSubresource and dstSubresource must only contain VK_IMAGE_ASPECT_COLOR_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageResolve-layerCount-08803", - "text": " If neither of the layerCount members of srcSubresource or dstSubresource are VK_REMAINING_ARRAY_LAYERS, the layerCount members must match" + "text": "If neither of the layerCount members of srcSubresource or dstSubresource are VK_REMAINING_ARRAY_LAYERS, the layerCount member of srcSubresource and dstSubresource must match", + "page": "vkspec" + }, + { + "vuid": "VUID-VkImageResolve-maintenance5-08802", + "text": "If the maintenance5 feature is not enabled, the layerCount member of srcSubresource or dstSubresource must not be VK_REMAINING_ARRAY_LAYERS", + "page": "vkspec" }, { "vuid": "VUID-VkImageResolve-layerCount-08804", - "text": " If one of the layerCount members of srcSubresource or dstSubresource is VK_REMAINING_ARRAY_LAYERS, the other member must be either VK_REMAINING_ARRAY_LAYERS or equal to the arrayLayers member of the VkImageCreateInfo used to create the image minus baseArrayLayer" + "text": "If one of the layerCount members of srcSubresource or dstSubresource is VK_REMAINING_ARRAY_LAYERS, the other member must be either VK_REMAINING_ARRAY_LAYERS or equal to the arrayLayers member of the VkImageCreateInfo used to create the image minus baseArrayLayer", + "page": "vkspec" }, { "vuid": "VUID-VkImageResolve-srcSubresource-parameter", - "text": " srcSubresource must be a valid VkImageSubresourceLayers structure" + "text": "srcSubresource must be a valid VkImageSubresourceLayers structure", + "page": "vkspec" }, { "vuid": "VUID-VkImageResolve-dstSubresource-parameter", - "text": " dstSubresource must be a valid VkImageSubresourceLayers structure" + "text": "dstSubresource must be a valid VkImageSubresourceLayers structure", + "page": "vkspec" } ] }, @@ -30606,39 +38873,48 @@ "core": [ { "vuid": "VUID-vkCmdResolveImage2-commandBuffer-01837", - "text": " If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcImage must not be a protected image" + "text": "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcImage must not be a protected image", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResolveImage2-commandBuffer-01838", - "text": " If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstImage must not be a protected image" + "text": "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstImage must not be a protected image", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResolveImage2-commandBuffer-01839", - "text": " If commandBuffer is a protected command buffer and protectedNoFault is not supported, dstImage must not be an unprotected image" + "text": "If commandBuffer is a protected command buffer and protectedNoFault is not supported, dstImage must not be an unprotected image", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResolveImage2-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResolveImage2-pResolveImageInfo-parameter", - "text": " pResolveImageInfo must be a valid pointer to a valid VkResolveImageInfo2 structure" + "text": "pResolveImageInfo must be a valid pointer to a valid VkResolveImageInfo2 structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResolveImage2-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResolveImage2-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResolveImage2-renderpass", - "text": " This command must only be called outside of a render pass instance" + "text": "This command must only be called outside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdResolveImage2-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -30646,171 +38922,213 @@ "core": [ { "vuid": "VUID-VkResolveImageInfo2-pRegions-00255", - "text": " The union of all source regions, and the union of all destination regions, specified by the elements of pRegions, must not overlap in memory" + "text": "The union of all source regions, and the union of all destination regions, specified by the elements of pRegions, must not overlap in memory", + "page": "vkspec" }, { "vuid": "VUID-VkResolveImageInfo2-srcImage-00256", - "text": " If srcImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If srcImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-VkResolveImageInfo2-srcImage-00257", - "text": " srcImage must have a sample count equal to any valid sample count value other than VK_SAMPLE_COUNT_1_BIT" + "text": "srcImage must have a sample count equal to any valid sample count value other than VK_SAMPLE_COUNT_1_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkResolveImageInfo2-dstImage-00258", - "text": " If dstImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If dstImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-VkResolveImageInfo2-dstImage-00259", - "text": " dstImage must have a sample count equal to VK_SAMPLE_COUNT_1_BIT" + "text": "dstImage must have a sample count equal to VK_SAMPLE_COUNT_1_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkResolveImageInfo2-srcImageLayout-00260", - "text": " srcImageLayout must specify the layout of the image subresources of srcImage specified in pRegions at the time this command is executed on a VkDevice" + "text": "srcImageLayout must specify the layout of the image subresources of srcImage specified in pRegions at the time this command is executed on a VkDevice", + "page": "vkspec" }, { "vuid": "VUID-VkResolveImageInfo2-srcImageLayout-01400", - "text": " srcImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL" + "text": "srcImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL", + "page": "vkspec" }, { "vuid": "VUID-VkResolveImageInfo2-dstImageLayout-00262", - "text": " dstImageLayout must specify the layout of the image subresources of dstImage specified in pRegions at the time this command is executed on a VkDevice" + "text": "dstImageLayout must specify the layout of the image subresources of dstImage specified in pRegions at the time this command is executed on a VkDevice", + "page": "vkspec" }, { "vuid": "VUID-VkResolveImageInfo2-dstImageLayout-01401", - "text": " dstImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL" + "text": "dstImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL", + "page": "vkspec" }, { "vuid": "VUID-VkResolveImageInfo2-dstImage-02003", - "text": " The format features of dstImage must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT" + "text": "The format features of dstImage must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkResolveImageInfo2-linearColorAttachment-06519", - "text": " If the linearColorAttachment feature is enabled and the image is created with VK_IMAGE_TILING_LINEAR, the format features of dstImage must contain VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV" + "text": "If the linearColorAttachment feature is enabled and the image is created with VK_IMAGE_TILING_LINEAR, the format features of dstImage must contain VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV", + "page": "vkspec" }, { "vuid": "VUID-VkResolveImageInfo2-srcImage-01386", - "text": " srcImage and dstImage must have been created with the same image format" + "text": "srcImage and dstImage must have been created with the same image format", + "page": "vkspec" }, { "vuid": "VUID-VkResolveImageInfo2-srcSubresource-01709", - "text": " The srcSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when srcImage was created" + "text": "The srcSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when srcImage was created", + "page": "vkspec" }, { "vuid": "VUID-VkResolveImageInfo2-dstSubresource-01710", - "text": " The dstSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when dstImage was created" + "text": "The dstSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when dstImage was created", + "page": "vkspec" }, { - "vuid": "VUID-VkResolveImageInfo2-srcSubresource-08805", - "text": " If srcSubresource.layerCount is not VK_REMAINING_ARRAY_LAYERS, the srcSubresource.baseArrayLayer + srcSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when srcImage was created" + "vuid": "VUID-VkResolveImageInfo2-srcSubresource-01711", + "text": "The srcSubresource.baseArrayLayer + srcSubresource.layerCount of each element of pRegions , if srcSubresource.layerCount is not VK_REMAINING_ARRAY_LAYERS and maintenance5 is not enabled, must be less than or equal to the arrayLayers specified in VkImageCreateInfo when srcImage was created", + "page": "vkspec" }, { - "vuid": "VUID-VkResolveImageInfo2-dstSubresource-08806", - "text": " If dstSubresource.layerCount is not VK_REMAINING_ARRAY_LAYERS, the dstSubresource.baseArrayLayer + dstSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when dstImage was created" + "vuid": "VUID-VkResolveImageInfo2-dstSubresource-01712", + "text": "The dstSubresource.baseArrayLayer + dstSubresource.layerCount of each element of pRegions , if dstSubresource.layerCount is not VK_REMAINING_ARRAY_LAYERS and maintenance5 is not enabled, must be less than or equal to the arrayLayers specified in VkImageCreateInfo when dstImage was created", + "page": "vkspec" }, { "vuid": "VUID-VkResolveImageInfo2-dstImage-02546", - "text": " dstImage and srcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT" + "text": "dstImage and srcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkResolveImageInfo2-srcImage-04446", - "text": " If dstImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, srcSubresource.layerCount must be 1" + "text": "If dstImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, srcSubresource.layerCount must be 1", + "page": "vkspec" }, { "vuid": "VUID-VkResolveImageInfo2-srcImage-04447", - "text": " If dstImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, dstSubresource.baseArrayLayer must be 0 and dstSubresource.layerCount must be 1" + "text": "If dstImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, dstSubresource.baseArrayLayer must be 0 and dstSubresource.layerCount must be 1", + "page": "vkspec" }, { "vuid": "VUID-VkResolveImageInfo2-srcOffset-00269", - "text": " For each element of pRegions, srcOffset.x and (extent.width + srcOffset.x) must both be greater than or equal to 0 and less than or equal to the width of the specified srcSubresource of srcImage" + "text": "For each element of pRegions, srcOffset.x and (extent.width + srcOffset.x) must both be greater than or equal to 0 and less than or equal to the width of the specified srcSubresource of srcImage", + "page": "vkspec" }, { "vuid": "VUID-VkResolveImageInfo2-srcOffset-00270", - "text": " For each element of pRegions, srcOffset.y and (extent.height + srcOffset.y) must both be greater than or equal to 0 and less than or equal to the height of the specified srcSubresource of srcImage" + "text": "For each element of pRegions, srcOffset.y and (extent.height + srcOffset.y) must both be greater than or equal to 0 and less than or equal to the height of the specified srcSubresource of srcImage", + "page": "vkspec" }, { "vuid": "VUID-VkResolveImageInfo2-srcImage-00271", - "text": " If srcImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, srcOffset.y must be 0 and extent.height must be 1" + "text": "If srcImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, srcOffset.y must be 0 and extent.height must be 1", + "page": "vkspec" }, { "vuid": "VUID-VkResolveImageInfo2-srcOffset-00272", - "text": " For each element of pRegions, srcOffset.z and (extent.depth + srcOffset.z) must both be greater than or equal to 0 and less than or equal to the depth of the specified srcSubresource of srcImage" + "text": "For each element of pRegions, srcOffset.z and (extent.depth + srcOffset.z) must both be greater than or equal to 0 and less than or equal to the depth of the specified srcSubresource of srcImage", + "page": "vkspec" }, { "vuid": "VUID-VkResolveImageInfo2-srcImage-00273", - "text": " If srcImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, srcOffset.z must be 0 and extent.depth must be 1" + "text": "If srcImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, srcOffset.z must be 0 and extent.depth must be 1", + "page": "vkspec" }, { "vuid": "VUID-VkResolveImageInfo2-dstOffset-00274", - "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) must both be greater than or equal to 0 and less than or equal to the width of the specified dstSubresource of dstImage", + "page": "vkspec" }, { "vuid": "VUID-VkResolveImageInfo2-dstOffset-00275", - "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) must both be greater than or equal to 0 and less than or equal to the height of the specified dstSubresource of dstImage", + "page": "vkspec" }, { "vuid": "VUID-VkResolveImageInfo2-dstImage-00276", - "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", + "page": "vkspec" }, { "vuid": "VUID-VkResolveImageInfo2-dstOffset-00277", - "text": " 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": "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", + "page": "vkspec" }, { "vuid": "VUID-VkResolveImageInfo2-dstImage-00278", - "text": " If dstImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, dstOffset.z must be 0 and extent.depth must be 1" + "text": "If dstImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, dstOffset.z must be 0 and extent.depth must be 1", + "page": "vkspec" }, { "vuid": "VUID-VkResolveImageInfo2-srcImage-06762", - "text": " srcImage must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag" + "text": "srcImage must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag", + "page": "vkspec" }, { "vuid": "VUID-VkResolveImageInfo2-srcImage-06763", - "text": " The format features of srcImage must contain VK_FORMAT_FEATURE_TRANSFER_SRC_BIT" + "text": "The format features of srcImage must contain VK_FORMAT_FEATURE_TRANSFER_SRC_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkResolveImageInfo2-dstImage-06764", - "text": " dstImage must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag" + "text": "dstImage must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag", + "page": "vkspec" }, { "vuid": "VUID-VkResolveImageInfo2-dstImage-06765", - "text": " The format features of dstImage must contain VK_FORMAT_FEATURE_TRANSFER_DST_BIT" + "text": "The format features of dstImage must contain VK_FORMAT_FEATURE_TRANSFER_DST_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkResolveImageInfo2-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2" + "text": "sType must be VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2", + "page": "vkspec" }, { "vuid": "VUID-VkResolveImageInfo2-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkResolveImageInfo2-srcImage-parameter", - "text": " srcImage must be a valid VkImage handle" + "text": "srcImage must be a valid VkImage handle", + "page": "vkspec" }, { "vuid": "VUID-VkResolveImageInfo2-srcImageLayout-parameter", - "text": " srcImageLayout must be a valid VkImageLayout value" + "text": "srcImageLayout must be a valid VkImageLayout value", + "page": "vkspec" }, { "vuid": "VUID-VkResolveImageInfo2-dstImage-parameter", - "text": " dstImage must be a valid VkImage handle" + "text": "dstImage must be a valid VkImage handle", + "page": "vkspec" }, { "vuid": "VUID-VkResolveImageInfo2-dstImageLayout-parameter", - "text": " dstImageLayout must be a valid VkImageLayout value" + "text": "dstImageLayout must be a valid VkImageLayout value", + "page": "vkspec" }, { "vuid": "VUID-VkResolveImageInfo2-pRegions-parameter", - "text": " pRegions must be a valid pointer to an array of regionCount valid VkImageResolve2 structures" + "text": "pRegions must be a valid pointer to an array of regionCount valid VkImageResolve2 structures", + "page": "vkspec" }, { "vuid": "VUID-VkResolveImageInfo2-regionCount-arraylength", - "text": " regionCount must be greater than 0" + "text": "regionCount must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-VkResolveImageInfo2-commonparent", - "text": " Both of dstImage, and srcImage must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of dstImage, and srcImage must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -30818,35 +39136,43 @@ "core": [ { "vuid": "VUID-VkImageResolve2-aspectMask-00266", - "text": " The aspectMask member of srcSubresource and dstSubresource must only contain VK_IMAGE_ASPECT_COLOR_BIT" - }, - { - "vuid": "VUID-VkImageResolve2-maintenance5-08802", - "text": " If the maintenance5 feature is not enabled, the layerCount member of srcSubresource or dstSubresource must not be VK_REMAINING_ARRAY_LAYERS" + "text": "The aspectMask member of srcSubresource and dstSubresource must only contain VK_IMAGE_ASPECT_COLOR_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkImageResolve2-layerCount-08803", - "text": " If neither of the layerCount members of srcSubresource or dstSubresource are VK_REMAINING_ARRAY_LAYERS, the layerCount members must match" + "text": "If neither of the layerCount members of srcSubresource or dstSubresource are VK_REMAINING_ARRAY_LAYERS, the layerCount member of srcSubresource and dstSubresource must match", + "page": "vkspec" + }, + { + "vuid": "VUID-VkImageResolve2-maintenance5-08802", + "text": "If the maintenance5 feature is not enabled, the layerCount member of srcSubresource or dstSubresource must not be VK_REMAINING_ARRAY_LAYERS", + "page": "vkspec" }, { "vuid": "VUID-VkImageResolve2-layerCount-08804", - "text": " If one of the layerCount members of srcSubresource or dstSubresource is VK_REMAINING_ARRAY_LAYERS, the other member must be either VK_REMAINING_ARRAY_LAYERS or equal to the arrayLayers member of the VkImageCreateInfo used to create the image minus baseArrayLayer" + "text": "If one of the layerCount members of srcSubresource or dstSubresource is VK_REMAINING_ARRAY_LAYERS, the other member must be either VK_REMAINING_ARRAY_LAYERS or equal to the arrayLayers member of the VkImageCreateInfo used to create the image minus baseArrayLayer", + "page": "vkspec" }, { "vuid": "VUID-VkImageResolve2-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2" + "text": "sType must be VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2", + "page": "vkspec" }, { "vuid": "VUID-VkImageResolve2-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkImageResolve2-srcSubresource-parameter", - "text": " srcSubresource must be a valid VkImageSubresourceLayers structure" + "text": "srcSubresource must be a valid VkImageSubresourceLayers structure", + "page": "vkspec" }, { "vuid": "VUID-VkImageResolve2-dstSubresource-parameter", - "text": " dstSubresource must be a valid VkImageSubresourceLayers structure" + "text": "dstSubresource must be a valid VkImageSubresourceLayers structure", + "page": "vkspec" } ] }, @@ -30854,103 +39180,128 @@ "core": [ { "vuid": "VUID-vkCmdWriteBufferMarker2AMD-stage-03929", - "text": " If the geometryShader feature is not enabled, pname:stage must not contain VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT" + "text": "If the geometryShader feature is not enabled, stage must not contain VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteBufferMarker2AMD-stage-03930", - "text": " If the tessellationShader feature is not enabled, pname:stage must not contain VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT" + "text": "If the tessellationShader feature is not enabled, stage must not contain VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteBufferMarker2AMD-stage-03931", - "text": " If the conditionalRendering feature is not enabled, pname:stage must not contain VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT" + "text": "If the conditionalRendering feature is not enabled, stage must not contain VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteBufferMarker2AMD-stage-03932", - "text": " If the fragmentDensityMap feature is not enabled, pname:stage must not contain VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT" + "text": "If the fragmentDensityMap feature is not enabled, stage must not contain VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteBufferMarker2AMD-stage-03933", - "text": " If the transformFeedback feature is not enabled, pname:stage must not contain VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT" + "text": "If the transformFeedback feature is not enabled, stage must not contain VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteBufferMarker2AMD-stage-03934", - "text": " If the meshShader feature is not enabled, pname:stage must not contain VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT" + "text": "If the meshShader feature is not enabled, stage must not contain VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteBufferMarker2AMD-stage-03935", - "text": " If the taskShader feature is not enabled, pname:stage must not contain VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT" + "text": "If the taskShader feature is not enabled, stage must not contain VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteBufferMarker2AMD-stage-07316", - "text": " If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pname:stage must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR" + "text": "If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, stage must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteBufferMarker2AMD-stage-04957", - "text": " If the subpassShading feature is not enabled, pname:stage must not contain VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI" + "text": "If the subpassShading feature is not enabled, stage must not contain VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteBufferMarker2AMD-stage-04995", - "text": " If the invocationMask feature is not enabled, pname:stage must not contain VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI" + "text": "If the invocationMask feature is not enabled, stage must not contain VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteBufferMarker2AMD-stage-07946", - "text": " If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, pname:stage must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR" + "text": "If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, stage must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteBufferMarker2AMD-synchronization2-03893", - "text": " The synchronization2 feature must be enabled" + "text": "The synchronization2 feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteBufferMarker2AMD-stage-03894", - "text": " stage must include only a single pipeline stage" + "text": "stage must include only a single pipeline stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteBufferMarker2AMD-stage-03895", - "text": " stage must include only stages that are valid for the queue family that was used to create the command pool that commandBuffer was allocated from" + "text": "stage must include only stages that are valid for the queue family that was used to create the command pool that commandBuffer was allocated from", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteBufferMarker2AMD-dstOffset-03896", - "text": " dstOffset must be less than or equal to the size of dstBuffer minus 4" + "text": "dstOffset must be less than or equal to the size of dstBuffer minus 4", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteBufferMarker2AMD-dstBuffer-03897", - "text": " dstBuffer must have been created with the VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag" + "text": "dstBuffer must have been created with the VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteBufferMarker2AMD-dstBuffer-03898", - "text": " If dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteBufferMarker2AMD-dstOffset-03899", - "text": " dstOffset must be a multiple of 4" + "text": "dstOffset must be a multiple of 4", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteBufferMarker2AMD-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteBufferMarker2AMD-stage-parameter", - "text": " stage must be a valid combination of VkPipelineStageFlagBits2 values" + "text": "stage must be a valid combination of VkPipelineStageFlagBits2 values", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteBufferMarker2AMD-dstBuffer-parameter", - "text": " dstBuffer must be a valid VkBuffer handle" + "text": "dstBuffer must be a valid VkBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteBufferMarker2AMD-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteBufferMarker2AMD-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteBufferMarker2AMD-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteBufferMarker2AMD-commonparent", - "text": " Both of commandBuffer, and dstBuffer must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of commandBuffer, and dstBuffer must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -30958,91 +39309,113 @@ "core": [ { "vuid": "VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04074", - "text": " pipelineStage must be a valid stage for the queue family that was used to create the command pool that commandBuffer was allocated from" + "text": "pipelineStage must be a valid stage for the queue family that was used to create the command pool that commandBuffer was allocated from", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04075", - "text": " If the geometryShader feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT" + "text": "If the geometryShader feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04076", - "text": " If the tessellationShader feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT" + "text": "If the tessellationShader feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04077", - "text": " If the conditionalRendering feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT" + "text": "If the conditionalRendering feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04078", - "text": " If the fragmentDensityMap feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT" + "text": "If the fragmentDensityMap feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04079", - "text": " If the transformFeedback feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT" + "text": "If the transformFeedback feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04080", - "text": " If the meshShader feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT" + "text": "If the meshShader feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-07077", - "text": " If the taskShader feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT" + "text": "If the taskShader feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteBufferMarkerAMD-shadingRateImage-07314", - "text": " If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pipelineStage must not be VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR" + "text": "If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pipelineStage must not be VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteBufferMarkerAMD-synchronization2-06489", - "text": " If the synchronization2 feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_NONE" + "text": "If the synchronization2 feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_NONE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteBufferMarkerAMD-rayTracingPipeline-07943", - "text": " If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, pipelineStage must not be VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR" + "text": "If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, pipelineStage must not be VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteBufferMarkerAMD-dstOffset-01798", - "text": " dstOffset must be less than or equal to the size of dstBuffer minus 4" + "text": "dstOffset must be less than or equal to the size of dstBuffer minus 4", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteBufferMarkerAMD-dstBuffer-01799", - "text": " dstBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag" + "text": "dstBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteBufferMarkerAMD-dstBuffer-01800", - "text": " If dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteBufferMarkerAMD-dstOffset-01801", - "text": " dstOffset must be a multiple of 4" + "text": "dstOffset must be a multiple of 4", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteBufferMarkerAMD-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-parameter", - "text": " If pipelineStage is not 0, pipelineStage must be a valid VkPipelineStageFlagBits value" + "text": "If pipelineStage is not 0, pipelineStage must be a valid VkPipelineStageFlagBits value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteBufferMarkerAMD-dstBuffer-parameter", - "text": " dstBuffer must be a valid VkBuffer handle" + "text": "dstBuffer must be a valid VkBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteBufferMarkerAMD-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteBufferMarkerAMD-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteBufferMarkerAMD-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteBufferMarkerAMD-commonparent", - "text": " Both of commandBuffer, and dstBuffer must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of commandBuffer, and dstBuffer must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -31050,39 +39423,48 @@ "core": [ { "vuid": "VUID-VkPipelineInputAssemblyStateCreateInfo-topology-06252", - "text": " If the primitiveTopologyListRestart feature is not enabled, and topology is VK_PRIMITIVE_TOPOLOGY_POINT_LIST, VK_PRIMITIVE_TOPOLOGY_LINE_LIST, VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY, or VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY, primitiveRestartEnable must be VK_FALSE" + "text": "If the primitiveTopologyListRestart feature is not enabled, and topology is VK_PRIMITIVE_TOPOLOGY_POINT_LIST, VK_PRIMITIVE_TOPOLOGY_LINE_LIST, VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY, or VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY, primitiveRestartEnable must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineInputAssemblyStateCreateInfo-topology-06253", - "text": " If the primitiveTopologyPatchListRestart feature is not enabled, and topology is VK_PRIMITIVE_TOPOLOGY_PATCH_LIST, primitiveRestartEnable must be VK_FALSE" + "text": "If the primitiveTopologyPatchListRestart feature is not enabled, and topology is VK_PRIMITIVE_TOPOLOGY_PATCH_LIST, primitiveRestartEnable must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineInputAssemblyStateCreateInfo-topology-00429", - "text": " If the geometryShader feature is not enabled, topology must not be any of VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY, VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY, VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY or VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY" + "text": "If the geometryShader feature is not enabled, topology must not be any of VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY, VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY, VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY or VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineInputAssemblyStateCreateInfo-topology-00430", - "text": " If the tessellationShader feature is not enabled, topology must not be VK_PRIMITIVE_TOPOLOGY_PATCH_LIST" + "text": "If the tessellationShader feature is not enabled, topology must not be VK_PRIMITIVE_TOPOLOGY_PATCH_LIST", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineInputAssemblyStateCreateInfo-triangleFans-04452", - "text": " If the VK_KHR_portability_subset extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::triangleFans is VK_FALSE, topology must not be VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN" + "text": "If the VK_KHR_portability_subset extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::triangleFans is VK_FALSE, topology must not be VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineInputAssemblyStateCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineInputAssemblyStateCreateInfo-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineInputAssemblyStateCreateInfo-flags-zerobitmask", - "text": " flags must be 0" + "text": "flags must be 0", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineInputAssemblyStateCreateInfo-topology-parameter", - "text": " topology must be a valid VkPrimitiveTopology value" + "text": "topology must be a valid VkPrimitiveTopology value", + "page": "vkspec" } ] }, @@ -31090,23 +39472,28 @@ "core": [ { "vuid": "VUID-vkCmdSetPrimitiveRestartEnable-None-08970", - "text": " At least one of the following must be true:
\n\n
" + "text": "At least one of the following must be true:
\n\n
", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetPrimitiveRestartEnable-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetPrimitiveRestartEnable-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetPrimitiveRestartEnable-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetPrimitiveRestartEnable-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -31114,27 +39501,33 @@ "core": [ { "vuid": "VUID-vkCmdSetPrimitiveTopology-None-08971", - "text": " At least one of the following must be true:
\n\n
" + "text": "At least one of the following must be true:
\n\n
", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetPrimitiveTopology-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetPrimitiveTopology-primitiveTopology-parameter", - "text": " primitiveTopology must be a valid VkPrimitiveTopology value" + "text": "primitiveTopology must be a valid VkPrimitiveTopology value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetPrimitiveTopology-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetPrimitiveTopology-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetPrimitiveTopology-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -31142,55 +39535,68 @@ "core": [ { "vuid": "VUID-vkCmdBindIndexBuffer-offset-08782", - "text": " offset must be less than the size of buffer" + "text": "offset must be less than the size of buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindIndexBuffer-offset-08783", - "text": " The sum of offset and the base address of the range of VkDeviceMemory object that is backing buffer, must be a multiple of the size of the type indicated by indexType" + "text": "The sum of offset and the base address of the range of VkDeviceMemory object that is backing buffer, must be a multiple of the size of the type indicated by indexType", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindIndexBuffer-buffer-08784", - "text": " buffer must have been created with the VK_BUFFER_USAGE_INDEX_BUFFER_BIT flag" + "text": "buffer must have been created with the VK_BUFFER_USAGE_INDEX_BUFFER_BIT flag", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindIndexBuffer-buffer-08785", - "text": " If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindIndexBuffer-indexType-08786", - "text": " indexType must not be VK_INDEX_TYPE_NONE_KHR" + "text": "indexType must not be VK_INDEX_TYPE_NONE_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindIndexBuffer-indexType-08787", - "text": " If indexType is VK_INDEX_TYPE_UINT8_EXT, the indexTypeUint8 feature must be enabled" + "text": "If indexType is VK_INDEX_TYPE_UINT8_EXT, the indexTypeUint8 feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindIndexBuffer-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindIndexBuffer-buffer-parameter", - "text": " buffer must be a valid VkBuffer handle" + "text": "buffer must be a valid VkBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindIndexBuffer-indexType-parameter", - "text": " indexType must be a valid VkIndexType value" + "text": "indexType must be a valid VkIndexType value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindIndexBuffer-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindIndexBuffer-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindIndexBuffer-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindIndexBuffer-commonparent", - "text": " Both of buffer, and commandBuffer must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of buffer, and commandBuffer must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -31198,63 +39604,78 @@ "core": [ { "vuid": "VUID-vkCmdBindIndexBuffer2KHR-offset-08782", - "text": " offset must be less than the size of buffer" + "text": "offset must be less than the size of buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindIndexBuffer2KHR-offset-08783", - "text": " The sum of offset and the base address of the range of VkDeviceMemory object that is backing buffer, must be a multiple of the size of the type indicated by indexType" + "text": "The sum of offset and the base address of the range of VkDeviceMemory object that is backing buffer, must be a multiple of the size of the type indicated by indexType", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindIndexBuffer2KHR-buffer-08784", - "text": " buffer must have been created with the VK_BUFFER_USAGE_INDEX_BUFFER_BIT flag" + "text": "buffer must have been created with the VK_BUFFER_USAGE_INDEX_BUFFER_BIT flag", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindIndexBuffer2KHR-buffer-08785", - "text": " If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindIndexBuffer2KHR-indexType-08786", - "text": " indexType must not be VK_INDEX_TYPE_NONE_KHR" + "text": "indexType must not be VK_INDEX_TYPE_NONE_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindIndexBuffer2KHR-indexType-08787", - "text": " If indexType is VK_INDEX_TYPE_UINT8_EXT, the indexTypeUint8 feature must be enabled" + "text": "If indexType is VK_INDEX_TYPE_UINT8_EXT, the indexTypeUint8 feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindIndexBuffer2KHR-size-08767", - "text": " If size is not VK_WHOLE_SIZE, size must be a multiple of the size of the type indicated by indexType" + "text": "If size is not VK_WHOLE_SIZE, size must be a multiple of the size of the type indicated by indexType", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindIndexBuffer2KHR-size-08768", - "text": " If size is not VK_WHOLE_SIZE, the sum of offset and size must be less than or equal to the size of buffer" + "text": "If size is not VK_WHOLE_SIZE, the sum of offset and size must be less than or equal to the size of buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindIndexBuffer2KHR-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindIndexBuffer2KHR-buffer-parameter", - "text": " buffer must be a valid VkBuffer handle" + "text": "buffer must be a valid VkBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindIndexBuffer2KHR-indexType-parameter", - "text": " indexType must be a valid VkIndexType value" + "text": "indexType must be a valid VkIndexType value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindIndexBuffer2KHR-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindIndexBuffer2KHR-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindIndexBuffer2KHR-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindIndexBuffer2KHR-commonparent", - "text": " Both of buffer, and commandBuffer must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of buffer, and commandBuffer must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -31262,1319 +39683,1778 @@ "core": [ { "vuid": "VUID-vkCmdDraw-magFilter-04553", - "text": " If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + "text": "If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-mipmapMode-04770", - "text": " If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + "text": "If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-06479", - "text": " If a VkImageView is sampled with depth comparison, the image view’s format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT" + "text": "If a VkImageView is sampled with depth comparison, the image view’s format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-02691", - "text": " If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT" + "text": "If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-07888", - "text": " If a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer’s format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT" + "text": "If a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer’s format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-02692", - "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" + "text": "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-02693", - "text": " If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" + "text": "If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-filterCubic-02694", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" + "text": "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-filterCubicMinmax-02695", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" + "text": "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDraw-cubicRangeClamp-09212", + "text": "If the cubicRangeClamp feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command
\n
\n
must not have a VkSamplerReductionModeCreateInfo
\n
\n

reductionMode equal to\nVK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM

\n
\n
\n
", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDraw-reductionMode-09213", + "text": "Any VkImageView being sampled with a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM as a result of this command must sample with VK_FILTER_CUBIC_EXT", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDraw-selectableCubicWeights-09214", + "text": "If the selectableCubicWeights feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have VkSamplerCubicWeightsCreateInfoQCOM::cubicWeights equal to VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-flags-02696", - "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE" + "text": "Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-OpTypeImage-07027", - "text": " For any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT" + "text": "For any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-OpTypeImage-07028", - "text": " For any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT" + "text": "For any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-OpTypeImage-07029", - "text": " For any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT" + "text": "For any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-OpTypeImage-07030", - "text": " Any VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT" + "text": "Any VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08600", - "text": " For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08601", - "text": " For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-maintenance4-08602", - "text": " If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08114", - "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08115", - "text": " If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08116", - "text": " Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08604", - "text": " Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command" + "text": "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08117", - "text": " If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08119", - "text": " If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident" + "text": "If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08605", - "text": " If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident" + "text": "If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08606", - "text": " If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command" + "text": "If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08607", - "text": " If the shaderObject is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command" + "text": "If the shaderObject is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08608", - "text": " If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound" + "text": "If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08609", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08610", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08611", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-uniformBuffers-06935", - "text": " If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08612", - "text": " If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-storageBuffers-06936", - "text": " If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08613", - "text": " If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-commandBuffer-02707", - "text": " If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource" + "text": "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-06550", - "text": " If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions" + "text": "If a bound shader accesses a VkSampler or VkImageView object that enables sampler Y′CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-ConstOffset-06551", - "text": " If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands" + "text": "If a bound shader accesses a VkSampler or VkImageView object that enables sampler Y′CBCR conversion, that object must not use the ConstOffset and Offset operands", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-viewType-07752", - "text": " If a VkImageView is accessed as a result of this command, then the image view’s viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation" + "text": "If a VkImageView is accessed as a result of this command, then the image view’s viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-format-07753", - "text": " If a VkImageView is accessed as a result of this command, then the numeric type of the image view’s format and the Sampled Type operand of the OpTypeImage must match" + "text": "If a VkImageView is accessed as a result of this command, then the numeric type of the image view’s format and the Sampled Type operand of the OpTypeImage must match", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-OpImageWrite-08795", - "text": " If a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format" + "text": "If a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-OpImageWrite-08796", - "text": " If a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components" + "text": "If a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-OpImageWrite-04469", - "text": " If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view’s format" + "text": "If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view’s format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-SampledType-04470", - "text": " If a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64" + "text": "If a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-SampledType-04471", - "text": " If a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32" + "text": "If a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-SampledType-04472", - "text": " If a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64" + "text": "If a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-SampledType-04473", - "text": " If a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32" + "text": "If a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-sparseImageInt64Atomics-04474", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command" + "text": "If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-sparseImageInt64Atomics-04475", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command" + "text": "If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-OpImageWeightedSampleQCOM-06971", - "text": " If OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-OpImageWeightedSampleQCOM-06972", - "text": " If OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-OpImageBoxFilterQCOM-06973", - "text": " If OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM" + "text": "If OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-OpImageBlockMatchSSDQCOM-06974", - "text": " If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM" + "text": "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-OpImageBlockMatchSADQCOM-06975", - "text": " If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM" + "text": "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-OpImageBlockMatchSADQCOM-06976", - "text": " If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation" + "text": "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-OpImageWeightedSampleQCOM-06977", - "text": " If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-OpImageWeightedSampleQCOM-06978", - "text": " If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM" + "text": "If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDraw-OpImageBlockMatchWindow-09215", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDraw-OpImageBlockMatchWindow-09216", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view’s format must be a single-component format.", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDraw-OpImageBlockMatchWindow-09217", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-07288", - "text": " Any shader invocation executed by this command must terminate" + "text": "Any shader invocation executed by this command must terminate", + "page": "vkspec" }, { "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" + "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", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-subpass-02685", - "text": " The subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS" + "text": "The subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-07748", - "text": " If any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set" + "text": "If any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-OpTypeImage-07468", - "text": " If any shader executed by this pipeline accesses an OpTypeImage variable with a Dim operand of SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass" + "text": "If any shader executed by this pipeline accesses an OpTypeImage variable with a Dim operand of SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-07469", - "text": " Input attachment views accessed in a subpass must be created with the same VkFormat as the corresponding subpass definition, and be created with a VkImageView that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound VkFramebuffer as specified by Fragment Input Attachment Compatibility" + "text": "Input attachment views accessed in a subpass must be created with the same VkFormat as the corresponding subpass definition, and be created with a VkImageView that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound VkFramebuffer as specified by Fragment Input Attachment Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-06537", - "text": " Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command" + "text": "Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command", + "page": "vkspec" }, { "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
" + "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
", + "page": "vkspec" }, { "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
" + "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
", + "page": "vkspec" }, { "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
" + "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-09003", - "text": " If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command" + "text": "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-06539", - "text": " If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment" + "text": "If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-06886", - "text": " If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled" + "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-06887", - "text": " If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back writeMask are not zero, and stencil test is enabled, all stencil ops must be VK_STENCIL_OP_KEEP" + "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back writeMask are not zero, and stencil test is enabled, all stencil ops must be VK_STENCIL_OP_KEEP", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-07831", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-07832", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-07833", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08617", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08618", - "text": " If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08619", - "text": " If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-07834", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08620", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-07835", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08621", - "text": " If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-07836", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled, and if the current depthBoundsTestEnable state is VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08622", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-07837", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08623", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-07838", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled then vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08624", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-07839", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled then vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08625", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-maxMultiviewInstanceIndex-02688", - "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex" + "text": "If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-sampleLocationsEnable-02689", - "text": " If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set" + "text": "If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-06666", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08626", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetSampleLocationsEnableEXT in the current command buffer set sampleLocationsEnable to VK_TRUE, vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetSampleLocationsEnableEXT in the current command buffer set sampleLocationsEnable to VK_TRUE, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-sampleLocationsPerPixel-07934", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-07840", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08627", - "text": " If a shader object is bound to any graphics stage, vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-07841", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08628", - "text": " If a shader object is bound to any graphics stage, vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-07843", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08629", - "text": " If a shader object is bound to any graphics stage, vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-07844", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08630", - "text": " If a shader object is bound to any graphics stage, vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-07845", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08631", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthTestEnable in the current command buffer set depthTestEnable to VK_TRUE, vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetDepthTestEnable in the current command buffer set depthTestEnable to VK_TRUE, then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-07846", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled then vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled then vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08632", - "text": " If a shader object is bound to any graphics stage, and the depthBounds feature is enabled, the vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the depthBounds feature is enabled, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-07847", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08633", - "text": " If 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, then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-07848", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08634", - "text": " If 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 vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-viewportCount-03417", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-scissorCount-03418", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the scissorCount parameter of vkCmdSetScissorWithCount must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the scissorCount parameter of vkCmdSetScissorWithCount must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-viewportCount-03419", - "text": " If the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount" + "text": "If the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08635", - "text": " If a shader object is bound to any graphics stage, then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount" + "text": "If a shader object is bound to any graphics stage, then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-viewportCount-04137", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-viewportCount-04138", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDraw-None-09232", + "text": "If a shader object is bound to any graphics stage, and the VK_NV_clip_space_w_scaling extension is enabled on the device, then vkCmdSetViewportWScalingNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08636", - "text": " If a shader object is bound to any graphics stage, and the VK_NV_clip_space_w_scaling extension is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If a shader object is bound to any graphics stage, and the VK_NV_clip_space_w_scaling extension is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-viewportCount-04139", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-viewportCount-04140", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDraw-shadingRateImage-09233", + "text": "If the shadingRateImage feature is enabled, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoarseSampleOrderNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDraw-shadingRateImage-09234", + "text": "If a shader object is bound to any graphics stage, and the shadingRateImage feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetShadingRateImageEnableNV in the current command buffer set shadingRateImageEnable to VK_TRUE, then vkCmdSetViewportShadingRatePaletteNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08637", - "text": " If a shader object is bound to any graphics stage, and the shadingRateImage feature is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If a shader object is bound to any graphics stage, and the shadingRateImage feature is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-VkPipelineVieportCreateInfo-04141", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportSwizzleStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportSwizzleStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-VkPipelineVieportCreateInfo-04142", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportExclusiveScissorStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportExclusiveScissorStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-07878", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-07879", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDraw-exclusiveScissor-09235", + "text": "If a shader object is bound to any graphics stage, and the exclusiveScissor feature is enabled, then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08638", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetExclusiveScissorEnableNV in the current command buffer set any element of pExclusiveScissorEnables to VK_TRUE, then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetExclusiveScissorEnableNV in the current command buffer set any element of pExclusiveScissorEnables to VK_TRUE, then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-04876", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08639", - "text": " If a shader object is bound to any graphics stage, then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-04877", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08640", - "text": " If 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, then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-logicOp-04878", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08641", - "text": " If a shader object is bound to any graphics stage, and the logicOp feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the logicOp feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-primitiveFragmentShadingRateWithMultipleViewports-04552", - "text": " If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1" + "text": "If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-primitiveFragmentShadingRateWithMultipleViewports-08642", - "text": " If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and any shader object bound to a graphics stage writes to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1" + "text": "If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and any shader object bound to a graphics stage writes to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-blendEnable-04727", - "text": " If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the blendEnable member of the corresponding element of the pAttachments member of pColorBlendState must be VK_FALSE" + "text": "If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the blendEnable member of the corresponding element of the pAttachments member of pColorBlendState must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08643", - "text": " If 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, then for each color attachment in the render pass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the corresponding member of pColorBlendEnables in the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer that affected that attachment index must have been VK_FALSE" + "text": "If 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, then for each color attachment in the render pass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the corresponding member of pColorBlendEnables in the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer that affected that attachment index must have been VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-multisampledRenderToSingleSampled-07284", - "text": " If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments" + "text": "If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08644", - "text": " If 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 none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then the most recent call to vkCmdSetRasterizationSamplesEXT in the current command buffer must have set rasterizationSamples to be the same as the number of samples for the current render pass color and/or depth/stencil attachments" + "text": "If 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 none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then the most recent call to vkCmdSetRasterizationSamplesEXT in the current command buffer must have set rasterizationSamples to be the same as the number of samples for the current render pass color and/or depth/stencil attachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08876", - "text": " If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering" + "text": "If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-imageView-06172", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-imageView-06173", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-imageView-06174", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, this command must not write any values to the depth attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, this command must not write any values to the depth attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-imageView-06175", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-imageView-06176", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-imageView-06177", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-viewMask-06178", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::viewMask equal to VkRenderingInfo::viewMask" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::viewMask equal to VkRenderingInfo::viewMask", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-colorAttachmentCount-06179", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::colorAttachmentCount equal to VkRenderingInfo::colorAttachmentCount" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::colorAttachmentCount equal to VkRenderingInfo::colorAttachmentCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08910", - "text": " If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline" + "text": "If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08911", - "text": " If the dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats, if it exists, must be VK_FORMAT_UNDEFINED" + "text": "If the dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats, if it exists, must be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08912", - "text": " If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED" + "text": "If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED", + "page": "vkspec" + }, + { + "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 currently bound graphics pipeline", + "page": "vkspec" + }, + { + "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 currently bound graphics pipeline", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDraw-None-09364", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled, then vkCmdSetColorBlendEnableEXT must have set the blend enable to VK_FALSE prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDraw-None-09365", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDraw-None-09368", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDraw-None-09369", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-07749", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08646", - "text": " If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the fragment stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-attachmentCount-07750", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the attachmentCount parameter of vkCmdSetColorWriteEnableEXT must be greater than or equal to the VkPipelineColorBlendStateCreateInfo::attachmentCount of the currently bound graphics pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the attachmentCount parameter of vkCmdSetColorWriteEnableEXT must be greater than or equal to the VkPipelineColorBlendStateCreateInfo::attachmentCount of the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08647", - "text": " If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the fragment stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the attachmentCount parameter of most recent call to vkCmdSetColorWriteEnableEXT in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance" + "text": "If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the attachmentCount parameter of most recent call to vkCmdSetColorWriteEnableEXT in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-07751", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-07880", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDraw-rasterizerDiscardEnable-09236", + "text": "If the VK_EXT_discard_rectangles extension is 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, then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08648", - "text": " If the VK_EXT_discard_rectangles extension is 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, then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_discard_rectangles extension is 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, then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-07881", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08649", - "text": " If the VK_EXT_discard_rectangles extension is 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 vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_discard_rectangles extension is 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 vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08913", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08914", - "text": " If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView" + "text": "If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08915", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08916", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08917", - "text": " If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView" + "text": "If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08918", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-imageView-06183", - "text": " If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentShadingRateAttachmentInfoKHR::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR" + "text": "If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentShadingRateAttachmentInfoKHR::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-imageView-06184", - "text": " If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT" + "text": "If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-colorAttachmentCount-06185", - "text": " If the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline" + "text": "If the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-pDepthAttachment-06186", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-pStencilAttachment-06187", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-multisampledRenderToSingleSampled-07285", - "text": " If the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of rasterizationSamples for the currently bound graphics pipeline" + "text": "If the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of rasterizationSamples for the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-multisampledRenderToSingleSampled-07286", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-multisampledRenderToSingleSampled-07287", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-pNext-07935", - "text": " If this command has been called inside a render pass instance started with vkCmdBeginRendering, and the pNext chain of VkRenderingInfo includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the value of rasterizationSamples for the currently bound graphics pipeline must be equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples" + "text": "If this command has been called inside a render pass instance started with vkCmdBeginRendering, and the pNext chain of VkRenderingInfo includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the value of rasterizationSamples for the currently bound graphics pipeline must be equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-renderPass-06198", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline must have been created with a VkGraphicsPipelineCreateInfo::renderPass equal to VK_NULL_HANDLE" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline must have been created with a VkGraphicsPipelineCreateInfo::renderPass equal to VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-pColorAttachments-08963", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the VkRenderingInfo::pColorAttachments->imageView was not VK_NULL_HANDLE, then the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the pipeline must not be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the VkRenderingInfo::pColorAttachments->imageView was not VK_NULL_HANDLE, then the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the pipeline must not be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-pDepthAttachment-08964", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-pStencilAttachment-08965", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, stencil test is enabled and the VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, stencil test is enabled and the VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-primitivesGeneratedQueryWithRasterizerDiscard-06708", - "text": " If the primitivesGeneratedQueryWithRasterizerDiscard feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, rasterization discard must not be enabled" + "text": "If the primitivesGeneratedQueryWithRasterizerDiscard feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, rasterization discard must not be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-primitivesGeneratedQueryWithNonZeroStreams-06709", - "text": " If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, the bound graphics pipeline must not have been created with a non-zero value in VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream" + "text": "If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, the bound graphics pipeline must not have been created with a non-zero value in VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-07619", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-07620", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDraw-None-09237", + "text": "If a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08650", - "text": " If the depthClamp feature is 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, then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the depthClamp feature is 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, then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-07621", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08651", - "text": " If 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, then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-07622", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08652", - "text": " If 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, then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-07623", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08653", - "text": " If 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, then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-07624", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-alphaToCoverageEnable-08919", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and alphaToCoverageEnable was VK_TRUE in the last call to vkCmdSetAlphaToCoverageEnableEXT, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and alphaToCoverageEnable was VK_TRUE in the last call to vkCmdSetAlphaToCoverageEnableEXT, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08654", - "text": " If 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, then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-alphaToCoverageEnable-08920", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetAlphaToCoverageEnableEXT in the current command buffer set alphaToCoverageEnable to VK_TRUE, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetAlphaToCoverageEnableEXT in the current command buffer set alphaToCoverageEnable to VK_TRUE, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-07625", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08655", - "text": " If the alphaToOne feature is 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, then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the alphaToOne feature is 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, then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-07626", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08656", - "text": " If the logicOp feature is 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, then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the logicOp feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-07627", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08657", - "text": " If 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, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-07628", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08658", - "text": " If 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 vkCmdSetColorBlendEnableEXT for any attachment set that attachment’s value in pColorBlendEnables to VK_TRUE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetColorBlendEnableEXT for any attachment set that attachment’s value in pColorBlendEnables to VK_TRUE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-07629", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08659", - "text": " If 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, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-07630", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08660", - "text": " If the geometryStreams feature is enabled, and a shader object is bound to the geometry stage, then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the geometryStreams feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_GEOMETRY_BIT stage, then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-07631", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08661", - "text": " If the VK_EXT_conservative_rasterization extension is 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, then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_conservative_rasterization extension is 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, then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-07632", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08662", - "text": " If the VK_EXT_conservative_rasterization extension is 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 vkCmdSetConservativeRasterizationModeEXT in the current command buffer set conservativeRasterizationMode to VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_conservative_rasterization extension is 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 vkCmdSetConservativeRasterizationModeEXT in the current command buffer set conservativeRasterizationMode to VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-07633", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08663", - "text": " If the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-07634", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08664", - "text": " If the VK_EXT_sample_locations extension is 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, then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_sample_locations extension is 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, then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-07635", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-07636", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08665", - "text": " If the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the vertex stage, then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "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 in the current command buffer prior to this drawing command" + "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 in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08666", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08667", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08668", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "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 in the current command buffer prior to this drawing command" + "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 in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08669", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08670", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08671", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-07849", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_EXT dynamic state enabled then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_EXT dynamic state enabled then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08672", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetLineStippleEnableEXT in the current command buffer set stippledLineEnable to VK_TRUE, then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetLineStippleEnableEXT in the current command buffer set stippledLineEnable to VK_TRUE, then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-07639", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08673", - "text": " If the depthClipControl feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the depthClipControl feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-07640", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08674", - "text": " If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-07641", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08675", - "text": " If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-07642", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08676", - "text": " If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-07643", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08677", - "text": " If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetCoverageToColorEnableNV in the current command buffer set coverageToColorEnable to VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetCoverageToColorEnableNV in the current command buffer set coverageToColorEnable to VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-07644", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08678", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_framebuffer_mixed_samples extension is 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, then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-07645", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08679", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_framebuffer_mixed_samples extension is 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 vkCmdSetCoverageModulationModeNV in the current command buffer set coverageModulationMode to any value other than VK_COVERAGE_MODULATION_MODE_NONE_NV, then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-07646", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08680", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetCoverageModulationTableEnableNV in the current command buffer set coverageModulationTableEnable to VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_framebuffer_mixed_samples extension is 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 vkCmdSetCoverageModulationTableEnableNV in the current command buffer set coverageModulationTableEnable to VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-07647", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDraw-pipelineFragmentShadingRate-09238", + "text": "If the pipelineFragmentShadingRate feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetFragmentShadingRateKHR must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08681", - "text": " If the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the shadingRateImage feature is 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, then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-07648", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08682", - "text": " If the representativeFragmentTest feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the representativeFragmentTest feature is 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, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-07649", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08683", - "text": " If the coverageReductionMode feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the coverageReductionMode feature is 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, then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-pColorBlendEnables-07470", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT state enabled and the last call to vkCmdSetColorBlendEnableEXT set pColorBlendEnables for any attachment to VK_TRUE, then for those attachments in the subpass the corresponding image view’s format features must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT state enabled and the last call to vkCmdSetColorBlendEnableEXT set pColorBlendEnables for any attachment to VK_TRUE, then for those attachments in the subpass the corresponding image view’s format features must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-rasterizationSamples-07471", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must follow the rules for a zero-attachment subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must follow the rules for a zero-attachment subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-samples-07472", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the VkPipelineMultisampleStateCreateInfo::rasterizationSamples parameter used to create the bound graphics pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the VkPipelineMultisampleStateCreateInfo::rasterizationSamples parameter used to create the bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-samples-07473", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the rasterizationSamples parameter in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the rasterizationSamples parameter in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { - "vuid": "VUID-vkCmdDraw-multisampledRenderToSingleSampled-07475", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and none of the VK_AMD_mixed_attachment_samples extension, VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the current subpass color and/or depth/stencil attachments" + "vuid": "VUID-vkCmdDraw-rasterizationSamples-07474", + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples extensions are enabled, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the current subpass color and/or depth/stencil attachments", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDraw-None-09211", + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the rasterizationSamples member of that structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-firstAttachment-07476", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-firstAttachment-07477", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-firstAttachment-07478", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-firstAttachment-07479", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-advancedBlendMaxColorAttachments-07480", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT and VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic states enabled and the last calls to vkCmdSetColorBlendEnableEXT and vkCmdSetColorBlendAdvancedEXT have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed advancedBlendMaxColorAttachments" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT and VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic states enabled and the last calls to vkCmdSetColorBlendEnableEXT and vkCmdSetColorBlendAdvancedEXT have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed advancedBlendMaxColorAttachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-primitivesGeneratedQueryWithNonZeroStreams-07481", - "text": " If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, and the bound graphics pipeline was created with VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT state enabled, the last call to vkCmdSetRasterizationStreamEXT must have set the rasterizationStream to zero" + "text": "If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, and the bound graphics pipeline was created with VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT state enabled, the last call to vkCmdSetRasterizationStreamEXT must have set the rasterizationStream to zero", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-sampleLocationsPerPixel-07482", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-sampleLocationsPerPixel-07483", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples parameter of the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples parameter of the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-sampleLocationsEnable-07484", - "text": " If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set" + "text": "If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-sampleLocationsEnable-07485", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.width in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.width in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-sampleLocationsEnable-07486", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.height in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.height in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-sampleLocationsEnable-07487", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, the fragment shader code must not statically use the extended instruction InterpolateAtSample" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, the fragment shader code must not statically use the extended instruction InterpolateAtSample", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-sampleLocationsEnable-07936", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.width must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.width must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-sampleLocationsEnable-07937", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.height must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.height must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-sampleLocationsEnable-07938", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-coverageModulationTableEnable-07488", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-rasterizationSamples-07489", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment" + "text": "If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-coverageToColorEnable-07490", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-coverageReductionMode-07491", - "text": " If this VK_NV_coverage_reduction_mode extension is enabled, the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, the current coverage reduction mode coverageReductionMode, then the current rasterizationSamples, and the sample counts for the color and depth/stencil attachments (if the subpass has them) must be a valid combination returned by vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV" + "text": "If this VK_NV_coverage_reduction_mode extension is enabled, the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, the current coverage reduction mode coverageReductionMode, then the current rasterizationSamples, and the sample counts for the color and depth/stencil attachments (if the subpass has them) must be a valid combination returned by vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-viewportCount-07492", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-viewportCount-07493", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-rasterizationSamples-07494", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE" + "text": "If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-stippledLineEnable-07495", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-stippledLineEnable-07496", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-stippledLineEnable-07497", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-stippledLineEnable-07498", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-conservativePointAndLineRasterization-07499", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, conservativePointAndLineRasterization is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the conservativeRasterizationMode set by the last call to vkCmdSetConservativeRasterizationModeEXT must be VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, conservativePointAndLineRasterization is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the conservativeRasterizationMode set by the last call to vkCmdSetConservativeRasterizationModeEXT must be VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-stage-07073", - "text": " If the currently bound pipeline was created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT, then Mesh Shader Queries must not be active" + "text": "If the currently bound pipeline was created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT, then Mesh Shader Queries must not be active", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08877", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-07850", - "text": " If dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command" + "text": "If dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08684", - "text": " If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_VERTEX_BIT" + "text": "If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_VERTEX_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08685", - "text": " If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT" + "text": "If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08686", - "text": " If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT" + "text": "If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08687", - "text": " If there is no bound graphics pipeline, and the geometryShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_GEOMETRY_BIT" + "text": "If there is no bound graphics pipeline, and the geometryShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_GEOMETRY_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08688", - "text": " If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_FRAGMENT_BIT" + "text": "If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_FRAGMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08689", - "text": " If there is no bound graphics pipeline, and the taskShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TASK_BIT_EXT" + "text": "If there is no bound graphics pipeline, and the taskShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TASK_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08690", - "text": " If there is no bound graphics pipeline, and the meshShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_MESH_BIT_EXT" + "text": "If there is no bound graphics pipeline, and the meshShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_MESH_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08693", - "text": " If there is no bound graphics pipeline, and at least one of the taskShader and meshShader features is enabled, one of the VK_SHADER_STAGE_VERTEX_BIT or VK_SHADER_STAGE_MESH_BIT_EXT stages must have a valid VkShaderEXT bound, and the other must have no VkShaderEXT bound" + "text": "If there is no bound graphics pipeline, and at least one of the taskShader and meshShader features is enabled, one of the VK_SHADER_STAGE_VERTEX_BIT or VK_SHADER_STAGE_MESH_BIT_EXT stages must have a valid VkShaderEXT bound, and the other must have no VkShaderEXT bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08694", - "text": " If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created without the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, a valid VkShaderEXT must be bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage" + "text": "If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created without the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, a valid VkShaderEXT must be bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08695", - "text": " If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created with the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, there must be no VkShaderEXT bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage" + "text": "If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created with the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, there must be no VkShaderEXT bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08696", - "text": " If there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage" + "text": "If there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08698", - "text": " If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound" + "text": "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08699", - "text": " If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound" + "text": "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08878", - "text": " All bound graphics shader objects must have been created with identical or identically defined push constant ranges" + "text": "All bound graphics shader objects must have been created with identical or identically defined push constant ranges", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08879", - "text": " All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts" + "text": "All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08880", - "text": " If there is no bound graphics pipeline and the attachmentFeedbackLoopDynamicState feature is enabled on the device, vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage and the attachmentFeedbackLoopDynamicState feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-pDynamicStates-08715", - "text": " If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable parameter in the last call to vkCmdSetDepthWriteEnable must be VK_FALSE" + "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable parameter in the last call to vkCmdSetDepthWriteEnable must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-pDynamicStates-08716", - "text": " If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_STENCIL_WRITE_MASK set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the writeMask parameter in the last call to vkCmdSetStencilWriteMask must be 0" + "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_STENCIL_WRITE_MASK set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the writeMask parameter in the last call to vkCmdSetStencilWriteMask must be 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-09116", - "text": " If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them" + "text": "If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDraw-maxFragmentDualSrcAttachments-09239", + "text": "If blending is enabled for any attachment where either the source or destination blend factors for that attachment use the secondary color input, the maximum value of Location for any output attachment statically used in the Fragment Execution Model executed by this command must be less than maxFragmentDualSrcAttachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-commandBuffer-02712", - "text": " If commandBuffer is a protected command buffer and protectedNoFault is not supported, any resource written to by the VkPipeline object bound to the pipeline bind point used by this command must not be an unprotected resource" + "text": "If commandBuffer is a protected command buffer and protectedNoFault is not supported, any resource written to by the VkPipeline object bound to the pipeline bind point used by this command must not be an unprotected resource", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-commandBuffer-02713", - "text": " If commandBuffer is a protected command buffer and protectedNoFault is not supported, pipeline stages other than the framebuffer-space and compute stages in the VkPipeline object bound to the pipeline bind point used by this command must not write to any resource" + "text": "If commandBuffer is a protected command buffer and protectedNoFault is not supported, pipeline stages other than the framebuffer-space and compute stages in the VkPipeline object bound to the pipeline bind point used by this command must not write to any resource", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-commandBuffer-04617", - "text": " If any of the shader stages of the VkPipeline bound to the pipeline bind point used by this command uses the RayQueryKHR capability, then commandBuffer must not be a protected command buffer" + "text": "If any of the shader stages of the VkPipeline bound to the pipeline bind point used by this command uses the RayQueryKHR capability, then commandBuffer must not be a protected command buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-04007", - "text": " All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must have either valid or VK_NULL_HANDLE buffers bound" + "text": "All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must have either valid or VK_NULL_HANDLE buffers bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-04008", - "text": " If the nullDescriptor feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must not be VK_NULL_HANDLE" + "text": "If the nullDescriptor feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must not be VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-02721", - "text": " For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description" + "text": "For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-07842", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state enabled then vkCmdSetPrimitiveTopology must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state enabled then vkCmdSetPrimitiveTopology must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-dynamicPrimitiveTopologyUnrestricted-07500", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state enabled and the dynamicPrimitiveTopologyUnrestricted is VK_FALSE, then the primitiveTopology parameter of vkCmdSetPrimitiveTopology must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state enabled and the dynamicPrimitiveTopologyUnrestricted is VK_FALSE, then the primitiveTopology parameter of vkCmdSetPrimitiveTopology must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-04912", - "text": " If the bound graphics pipeline was created with both the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT and VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic states enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command" + "text": "If the bound graphics pipeline was created with both the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT and VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic states enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-pStrides-04913", - "text": " If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdBindVertexBuffers2EXT must have been called in the current command buffer prior to this draw command, and the pStrides parameter of vkCmdBindVertexBuffers2EXT must not be NULL" + "text": "If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdBindVertexBuffers2EXT must have been called in the current command buffer prior to this draw command, and the pStrides parameter of vkCmdBindVertexBuffers2EXT must not be NULL", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08881", - "text": " If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetPrimitiveTopology must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetPrimitiveTopology must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-04914", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-Input-07939", - "text": " If 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 {ExecutionModel} OpEntryPoint must contain a location in VkVertexInputAttributeDescription2EXT::location" + "text": "If 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": "vkspec" }, { "vuid": "VUID-vkCmdDraw-Input-08734", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then the numeric type associated with all Input variables of the corresponding Location in the Vertex {ExecutionModel} OpEntryPoint must be the same as VkVertexInputAttributeDescription2EXT::format" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then the numeric type associated with all Input variables of the corresponding Location in the Vertex Execution Model OpEntryPoint must be the same as VkVertexInputAttributeDescription2EXT::format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-format-08936", - "text": " If there is a shader object bound to a graphics stage or the currently bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, and VkVertexInputAttributeDescription2EXT::format has a 64-bit component, then the scalar width associated with all Input variables of the corresponding Location in the Vertex {ExecutionModel} OpEntryPoint must be 64-bit" + "text": "If there is a shader object bound to a graphics stage or the currently bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, and VkVertexInputAttributeDescription2EXT::format has a 64-bit component, then the scalar width associated with all Input variables of the corresponding Location in the Vertex Execution Model OpEntryPoint must be 64-bit", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-format-08937", - "text": " If there is a shader object bound to a graphics stage or the currently bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, and the scalar width associated with a Location decorated Input variable in the Vertex {ExecutionModel} OpEntryPoint is 64-bit, then the corresponding VkVertexInputAttributeDescription2EXT::format must have a 64-bit component" + "text": "If there is a shader object bound to a graphics stage or the currently bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, and the scalar width associated with a Location decorated Input variable in the Vertex Execution Model OpEntryPoint is 64-bit, then the corresponding VkVertexInputAttributeDescription2EXT::format must have a 64-bit component", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-09203", - "text": " If there is a shader object bound to a graphics stage or the currently bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, and VkVertexInputAttributeDescription2EXT::format has a 64-bit component, then all Input variables at the corresponding Location in the Vertex {ExecutionModel} OpEntryPoint must not use components that are not present in the format" + "text": "If there is a shader object bound to a graphics stage or the currently bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, and VkVertexInputAttributeDescription2EXT::format has a 64-bit component, then all Input variables at the corresponding Location in the Vertex Execution Model OpEntryPoint must not use components that are not present in the format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08882", - "text": " If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-04875", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT dynamic state enabled then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT dynamic state enabled then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08883", - "text": " If a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-04879", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then vkCmdSetPrimitiveRestartEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then vkCmdSetPrimitiveRestartEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-rasterizerDiscardEnable-08884", - "text": " If 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, vkCmdSetPrimitiveRestartEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, vkCmdSetPrimitiveRestartEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-stage-06481", - "text": " The bound graphics pipeline must not have been created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT" + "text": "The bound graphics pipeline must not have been created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-None-08885", - "text": " There must be no shader object bound to either of the VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT stages" + "text": "There must be no shader object bound to either of the VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT stages", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-renderpass", - "text": " This command must only be called inside of a render pass instance" + "text": "This command must only be called inside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDraw-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -32582,1331 +41462,1793 @@ "core": [ { "vuid": "VUID-vkCmdDrawIndexed-magFilter-04553", - "text": " If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + "text": "If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-mipmapMode-04770", - "text": " If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + "text": "If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-06479", - "text": " If a VkImageView is sampled with depth comparison, the image view’s format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT" + "text": "If a VkImageView is sampled with depth comparison, the image view’s format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-02691", - "text": " If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT" + "text": "If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07888", - "text": " If a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer’s format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT" + "text": "If a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer’s format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-02692", - "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" + "text": "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-02693", - "text": " If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" + "text": "If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-filterCubic-02694", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" + "text": "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-filterCubicMinmax-02695", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" + "text": "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexed-cubicRangeClamp-09212", + "text": "If the cubicRangeClamp feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command
\n
\n
must not have a VkSamplerReductionModeCreateInfo
\n
\n

reductionMode equal to\nVK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM

\n
\n
\n
", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexed-reductionMode-09213", + "text": "Any VkImageView being sampled with a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM as a result of this command must sample with VK_FILTER_CUBIC_EXT", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexed-selectableCubicWeights-09214", + "text": "If the selectableCubicWeights feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have VkSamplerCubicWeightsCreateInfoQCOM::cubicWeights equal to VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-flags-02696", - "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE" + "text": "Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-OpTypeImage-07027", - "text": " For any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT" + "text": "For any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-OpTypeImage-07028", - "text": " For any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT" + "text": "For any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-OpTypeImage-07029", - "text": " For any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT" + "text": "For any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-OpTypeImage-07030", - "text": " Any VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT" + "text": "Any VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08600", - "text": " For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08601", - "text": " For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-maintenance4-08602", - "text": " If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08114", - "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08115", - "text": " If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08116", - "text": " Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08604", - "text": " Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command" + "text": "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08117", - "text": " If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08119", - "text": " If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident" + "text": "If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08605", - "text": " If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident" + "text": "If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08606", - "text": " If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command" + "text": "If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08607", - "text": " If the shaderObject is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command" + "text": "If the shaderObject is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08608", - "text": " If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound" + "text": "If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08609", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08610", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08611", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-uniformBuffers-06935", - "text": " If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08612", - "text": " If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-storageBuffers-06936", - "text": " If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08613", - "text": " If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-commandBuffer-02707", - "text": " If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource" + "text": "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-06550", - "text": " If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions" + "text": "If a bound shader accesses a VkSampler or VkImageView object that enables sampler Y′CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-ConstOffset-06551", - "text": " If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands" + "text": "If a bound shader accesses a VkSampler or VkImageView object that enables sampler Y′CBCR conversion, that object must not use the ConstOffset and Offset operands", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-viewType-07752", - "text": " If a VkImageView is accessed as a result of this command, then the image view’s viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation" + "text": "If a VkImageView is accessed as a result of this command, then the image view’s viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-format-07753", - "text": " If a VkImageView is accessed as a result of this command, then the numeric type of the image view’s format and the Sampled Type operand of the OpTypeImage must match" + "text": "If a VkImageView is accessed as a result of this command, then the numeric type of the image view’s format and the Sampled Type operand of the OpTypeImage must match", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-OpImageWrite-08795", - "text": " If a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format" + "text": "If a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-OpImageWrite-08796", - "text": " If a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components" + "text": "If a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-OpImageWrite-04469", - "text": " If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view’s format" + "text": "If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view’s format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-SampledType-04470", - "text": " If a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64" + "text": "If a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-SampledType-04471", - "text": " If a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32" + "text": "If a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-SampledType-04472", - "text": " If a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64" + "text": "If a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-SampledType-04473", - "text": " If a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32" + "text": "If a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-sparseImageInt64Atomics-04474", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command" + "text": "If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-sparseImageInt64Atomics-04475", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command" + "text": "If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-OpImageWeightedSampleQCOM-06971", - "text": " If OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-OpImageWeightedSampleQCOM-06972", - "text": " If OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-OpImageBoxFilterQCOM-06973", - "text": " If OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM" + "text": "If OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-OpImageBlockMatchSSDQCOM-06974", - "text": " If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM" + "text": "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-OpImageBlockMatchSADQCOM-06975", - "text": " If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM" + "text": "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-OpImageBlockMatchSADQCOM-06976", - "text": " If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation" + "text": "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-OpImageWeightedSampleQCOM-06977", - "text": " If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-OpImageWeightedSampleQCOM-06978", - "text": " If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM" + "text": "If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexed-OpImageBlockMatchWindow-09215", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexed-OpImageBlockMatchWindow-09216", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view’s format must be a single-component format.", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexed-OpImageBlockMatchWindow-09217", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07288", - "text": " Any shader invocation executed by this command must terminate" + "text": "Any shader invocation executed by this command must terminate", + "page": "vkspec" }, { "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" + "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", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-subpass-02685", - "text": " The subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS" + "text": "The subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07748", - "text": " If any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set" + "text": "If any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-OpTypeImage-07468", - "text": " If any shader executed by this pipeline accesses an OpTypeImage variable with a Dim operand of SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass" + "text": "If any shader executed by this pipeline accesses an OpTypeImage variable with a Dim operand of SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07469", - "text": " Input attachment views accessed in a subpass must be created with the same VkFormat as the corresponding subpass definition, and be created with a VkImageView that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound VkFramebuffer as specified by Fragment Input Attachment Compatibility" + "text": "Input attachment views accessed in a subpass must be created with the same VkFormat as the corresponding subpass definition, and be created with a VkImageView that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound VkFramebuffer as specified by Fragment Input Attachment Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-06537", - "text": " Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command" + "text": "Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command", + "page": "vkspec" }, { "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
" + "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
", + "page": "vkspec" }, { "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
" + "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
", + "page": "vkspec" }, { "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
" + "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-09003", - "text": " If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command" + "text": "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-06539", - "text": " If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment" + "text": "If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-06886", - "text": " If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled" + "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-06887", - "text": " If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back writeMask are not zero, and stencil test is enabled, all stencil ops must be VK_STENCIL_OP_KEEP" + "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back writeMask are not zero, and stencil test is enabled, all stencil ops must be VK_STENCIL_OP_KEEP", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07831", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07832", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07833", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08617", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08618", - "text": " If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08619", - "text": " If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07834", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08620", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07835", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08621", - "text": " If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07836", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled, and if the current depthBoundsTestEnable state is VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08622", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07837", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08623", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07838", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled then vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08624", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07839", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled then vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08625", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-maxMultiviewInstanceIndex-02688", - "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex" + "text": "If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-sampleLocationsEnable-02689", - "text": " If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set" + "text": "If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-06666", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08626", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetSampleLocationsEnableEXT in the current command buffer set sampleLocationsEnable to VK_TRUE, vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetSampleLocationsEnableEXT in the current command buffer set sampleLocationsEnable to VK_TRUE, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-sampleLocationsPerPixel-07934", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07840", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08627", - "text": " If a shader object is bound to any graphics stage, vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07841", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08628", - "text": " If a shader object is bound to any graphics stage, vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07843", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08629", - "text": " If a shader object is bound to any graphics stage, vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07844", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08630", - "text": " If a shader object is bound to any graphics stage, vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07845", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08631", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthTestEnable in the current command buffer set depthTestEnable to VK_TRUE, vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetDepthTestEnable in the current command buffer set depthTestEnable to VK_TRUE, then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07846", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled then vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled then vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08632", - "text": " If a shader object is bound to any graphics stage, and the depthBounds feature is enabled, the vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the depthBounds feature is enabled, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07847", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08633", - "text": " If 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, then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07848", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08634", - "text": " If 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 vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-viewportCount-03417", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-scissorCount-03418", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the scissorCount parameter of vkCmdSetScissorWithCount must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the scissorCount parameter of vkCmdSetScissorWithCount must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-viewportCount-03419", - "text": " If the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount" + "text": "If the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08635", - "text": " If a shader object is bound to any graphics stage, then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount" + "text": "If a shader object is bound to any graphics stage, then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-viewportCount-04137", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-viewportCount-04138", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexed-None-09232", + "text": "If a shader object is bound to any graphics stage, and the VK_NV_clip_space_w_scaling extension is enabled on the device, then vkCmdSetViewportWScalingNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08636", - "text": " If a shader object is bound to any graphics stage, and the VK_NV_clip_space_w_scaling extension is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If a shader object is bound to any graphics stage, and the VK_NV_clip_space_w_scaling extension is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-viewportCount-04139", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-viewportCount-04140", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexed-shadingRateImage-09233", + "text": "If the shadingRateImage feature is enabled, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoarseSampleOrderNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexed-shadingRateImage-09234", + "text": "If a shader object is bound to any graphics stage, and the shadingRateImage feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetShadingRateImageEnableNV in the current command buffer set shadingRateImageEnable to VK_TRUE, then vkCmdSetViewportShadingRatePaletteNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08637", - "text": " If a shader object is bound to any graphics stage, and the shadingRateImage feature is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If a shader object is bound to any graphics stage, and the shadingRateImage feature is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-VkPipelineVieportCreateInfo-04141", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportSwizzleStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportSwizzleStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-VkPipelineVieportCreateInfo-04142", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportExclusiveScissorStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportExclusiveScissorStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07878", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07879", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexed-exclusiveScissor-09235", + "text": "If a shader object is bound to any graphics stage, and the exclusiveScissor feature is enabled, then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08638", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetExclusiveScissorEnableNV in the current command buffer set any element of pExclusiveScissorEnables to VK_TRUE, then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetExclusiveScissorEnableNV in the current command buffer set any element of pExclusiveScissorEnables to VK_TRUE, then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-04876", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08639", - "text": " If a shader object is bound to any graphics stage, then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-04877", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08640", - "text": " If 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, then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-logicOp-04878", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08641", - "text": " If a shader object is bound to any graphics stage, and the logicOp feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the logicOp feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-primitiveFragmentShadingRateWithMultipleViewports-04552", - "text": " If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1" + "text": "If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-primitiveFragmentShadingRateWithMultipleViewports-08642", - "text": " If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and any shader object bound to a graphics stage writes to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1" + "text": "If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and any shader object bound to a graphics stage writes to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-blendEnable-04727", - "text": " If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the blendEnable member of the corresponding element of the pAttachments member of pColorBlendState must be VK_FALSE" + "text": "If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the blendEnable member of the corresponding element of the pAttachments member of pColorBlendState must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08643", - "text": " If 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, then for each color attachment in the render pass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the corresponding member of pColorBlendEnables in the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer that affected that attachment index must have been VK_FALSE" + "text": "If 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, then for each color attachment in the render pass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the corresponding member of pColorBlendEnables in the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer that affected that attachment index must have been VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-multisampledRenderToSingleSampled-07284", - "text": " If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments" + "text": "If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08644", - "text": " If 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 none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then the most recent call to vkCmdSetRasterizationSamplesEXT in the current command buffer must have set rasterizationSamples to be the same as the number of samples for the current render pass color and/or depth/stencil attachments" + "text": "If 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 none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then the most recent call to vkCmdSetRasterizationSamplesEXT in the current command buffer must have set rasterizationSamples to be the same as the number of samples for the current render pass color and/or depth/stencil attachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08876", - "text": " If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering" + "text": "If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-imageView-06172", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-imageView-06173", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-imageView-06174", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, this command must not write any values to the depth attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, this command must not write any values to the depth attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-imageView-06175", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-imageView-06176", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-imageView-06177", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-viewMask-06178", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::viewMask equal to VkRenderingInfo::viewMask" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::viewMask equal to VkRenderingInfo::viewMask", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-colorAttachmentCount-06179", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::colorAttachmentCount equal to VkRenderingInfo::colorAttachmentCount" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::colorAttachmentCount equal to VkRenderingInfo::colorAttachmentCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08910", - "text": " If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline" + "text": "If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08911", - "text": " If the dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats, if it exists, must be VK_FORMAT_UNDEFINED" + "text": "If the dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats, if it exists, must be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08912", - "text": " If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED" + "text": "If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED", + "page": "vkspec" + }, + { + "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 currently bound graphics pipeline", + "page": "vkspec" + }, + { + "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 currently bound graphics pipeline", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexed-None-09364", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled, then vkCmdSetColorBlendEnableEXT must have set the blend enable to VK_FALSE prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexed-None-09365", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexed-None-09368", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexed-None-09369", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07749", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08646", - "text": " If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the fragment stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-attachmentCount-07750", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the attachmentCount parameter of vkCmdSetColorWriteEnableEXT must be greater than or equal to the VkPipelineColorBlendStateCreateInfo::attachmentCount of the currently bound graphics pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the attachmentCount parameter of vkCmdSetColorWriteEnableEXT must be greater than or equal to the VkPipelineColorBlendStateCreateInfo::attachmentCount of the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08647", - "text": " If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the fragment stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the attachmentCount parameter of most recent call to vkCmdSetColorWriteEnableEXT in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance" + "text": "If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the attachmentCount parameter of most recent call to vkCmdSetColorWriteEnableEXT in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07751", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07880", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexed-rasterizerDiscardEnable-09236", + "text": "If the VK_EXT_discard_rectangles extension is 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, then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08648", - "text": " If the VK_EXT_discard_rectangles extension is 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, then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_discard_rectangles extension is 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, then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07881", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08649", - "text": " If the VK_EXT_discard_rectangles extension is 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 vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_discard_rectangles extension is 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 vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08913", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08914", - "text": " If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView" + "text": "If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08915", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08916", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08917", - "text": " If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView" + "text": "If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08918", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-imageView-06183", - "text": " If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentShadingRateAttachmentInfoKHR::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR" + "text": "If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentShadingRateAttachmentInfoKHR::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-imageView-06184", - "text": " If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT" + "text": "If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-colorAttachmentCount-06185", - "text": " If the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline" + "text": "If the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-pDepthAttachment-06186", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-pStencilAttachment-06187", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-multisampledRenderToSingleSampled-07285", - "text": " If the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of rasterizationSamples for the currently bound graphics pipeline" + "text": "If the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of rasterizationSamples for the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-multisampledRenderToSingleSampled-07286", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-multisampledRenderToSingleSampled-07287", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-pNext-07935", - "text": " If this command has been called inside a render pass instance started with vkCmdBeginRendering, and the pNext chain of VkRenderingInfo includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the value of rasterizationSamples for the currently bound graphics pipeline must be equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples" + "text": "If this command has been called inside a render pass instance started with vkCmdBeginRendering, and the pNext chain of VkRenderingInfo includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the value of rasterizationSamples for the currently bound graphics pipeline must be equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-renderPass-06198", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline must have been created with a VkGraphicsPipelineCreateInfo::renderPass equal to VK_NULL_HANDLE" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline must have been created with a VkGraphicsPipelineCreateInfo::renderPass equal to VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-pColorAttachments-08963", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the VkRenderingInfo::pColorAttachments->imageView was not VK_NULL_HANDLE, then the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the pipeline must not be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the VkRenderingInfo::pColorAttachments->imageView was not VK_NULL_HANDLE, then the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the pipeline must not be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-pDepthAttachment-08964", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-pStencilAttachment-08965", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, stencil test is enabled and the VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, stencil test is enabled and the VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-primitivesGeneratedQueryWithRasterizerDiscard-06708", - "text": " If the primitivesGeneratedQueryWithRasterizerDiscard feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, rasterization discard must not be enabled" + "text": "If the primitivesGeneratedQueryWithRasterizerDiscard feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, rasterization discard must not be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-primitivesGeneratedQueryWithNonZeroStreams-06709", - "text": " If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, the bound graphics pipeline must not have been created with a non-zero value in VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream" + "text": "If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, the bound graphics pipeline must not have been created with a non-zero value in VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07619", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07620", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexed-None-09237", + "text": "If a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08650", - "text": " If the depthClamp feature is 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, then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the depthClamp feature is 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, then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07621", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08651", - "text": " If 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, then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07622", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08652", - "text": " If 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, then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07623", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08653", - "text": " If 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, then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07624", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-alphaToCoverageEnable-08919", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and alphaToCoverageEnable was VK_TRUE in the last call to vkCmdSetAlphaToCoverageEnableEXT, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and alphaToCoverageEnable was VK_TRUE in the last call to vkCmdSetAlphaToCoverageEnableEXT, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08654", - "text": " If 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, then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-alphaToCoverageEnable-08920", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetAlphaToCoverageEnableEXT in the current command buffer set alphaToCoverageEnable to VK_TRUE, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetAlphaToCoverageEnableEXT in the current command buffer set alphaToCoverageEnable to VK_TRUE, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07625", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08655", - "text": " If the alphaToOne feature is 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, then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the alphaToOne feature is 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, then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07626", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08656", - "text": " If the logicOp feature is 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, then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the logicOp feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07627", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08657", - "text": " If 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, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07628", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08658", - "text": " If 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 vkCmdSetColorBlendEnableEXT for any attachment set that attachment’s value in pColorBlendEnables to VK_TRUE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetColorBlendEnableEXT for any attachment set that attachment’s value in pColorBlendEnables to VK_TRUE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07629", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08659", - "text": " If 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, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07630", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08660", - "text": " If the geometryStreams feature is enabled, and a shader object is bound to the geometry stage, then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the geometryStreams feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_GEOMETRY_BIT stage, then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07631", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08661", - "text": " If the VK_EXT_conservative_rasterization extension is 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, then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_conservative_rasterization extension is 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, then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07632", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08662", - "text": " If the VK_EXT_conservative_rasterization extension is 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 vkCmdSetConservativeRasterizationModeEXT in the current command buffer set conservativeRasterizationMode to VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_conservative_rasterization extension is 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 vkCmdSetConservativeRasterizationModeEXT in the current command buffer set conservativeRasterizationMode to VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07633", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08663", - "text": " If the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07634", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08664", - "text": " If the VK_EXT_sample_locations extension is 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, then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_sample_locations extension is 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, then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07635", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07636", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08665", - "text": " If the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the vertex stage, then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "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 in the current command buffer prior to this drawing command" + "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 in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08666", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08667", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08668", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "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 in the current command buffer prior to this drawing command" + "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 in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08669", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08670", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08671", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07849", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_EXT dynamic state enabled then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_EXT dynamic state enabled then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08672", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetLineStippleEnableEXT in the current command buffer set stippledLineEnable to VK_TRUE, then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetLineStippleEnableEXT in the current command buffer set stippledLineEnable to VK_TRUE, then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07639", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08673", - "text": " If the depthClipControl feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the depthClipControl feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07640", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08674", - "text": " If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07641", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08675", - "text": " If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07642", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08676", - "text": " If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07643", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08677", - "text": " If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetCoverageToColorEnableNV in the current command buffer set coverageToColorEnable to VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetCoverageToColorEnableNV in the current command buffer set coverageToColorEnable to VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07644", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08678", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_framebuffer_mixed_samples extension is 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, then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07645", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08679", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_framebuffer_mixed_samples extension is 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 vkCmdSetCoverageModulationModeNV in the current command buffer set coverageModulationMode to any value other than VK_COVERAGE_MODULATION_MODE_NONE_NV, then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07646", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08680", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetCoverageModulationTableEnableNV in the current command buffer set coverageModulationTableEnable to VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_framebuffer_mixed_samples extension is 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 vkCmdSetCoverageModulationTableEnableNV in the current command buffer set coverageModulationTableEnable to VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07647", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexed-pipelineFragmentShadingRate-09238", + "text": "If the pipelineFragmentShadingRate feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetFragmentShadingRateKHR must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08681", - "text": " If the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the shadingRateImage feature is 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, then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07648", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08682", - "text": " If the representativeFragmentTest feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the representativeFragmentTest feature is 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, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07649", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08683", - "text": " If the coverageReductionMode feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the coverageReductionMode feature is 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, then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-pColorBlendEnables-07470", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT state enabled and the last call to vkCmdSetColorBlendEnableEXT set pColorBlendEnables for any attachment to VK_TRUE, then for those attachments in the subpass the corresponding image view’s format features must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT state enabled and the last call to vkCmdSetColorBlendEnableEXT set pColorBlendEnables for any attachment to VK_TRUE, then for those attachments in the subpass the corresponding image view’s format features must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-rasterizationSamples-07471", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must follow the rules for a zero-attachment subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must follow the rules for a zero-attachment subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-samples-07472", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the VkPipelineMultisampleStateCreateInfo::rasterizationSamples parameter used to create the bound graphics pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the VkPipelineMultisampleStateCreateInfo::rasterizationSamples parameter used to create the bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-samples-07473", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the rasterizationSamples parameter in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the rasterizationSamples parameter in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { - "vuid": "VUID-vkCmdDrawIndexed-multisampledRenderToSingleSampled-07475", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and none of the VK_AMD_mixed_attachment_samples extension, VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the current subpass color and/or depth/stencil attachments" + "vuid": "VUID-vkCmdDrawIndexed-rasterizationSamples-07474", + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples extensions are enabled, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the current subpass color and/or depth/stencil attachments", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexed-None-09211", + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the rasterizationSamples member of that structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-firstAttachment-07476", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-firstAttachment-07477", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-firstAttachment-07478", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-firstAttachment-07479", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-advancedBlendMaxColorAttachments-07480", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT and VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic states enabled and the last calls to vkCmdSetColorBlendEnableEXT and vkCmdSetColorBlendAdvancedEXT have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed advancedBlendMaxColorAttachments" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT and VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic states enabled and the last calls to vkCmdSetColorBlendEnableEXT and vkCmdSetColorBlendAdvancedEXT have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed advancedBlendMaxColorAttachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-primitivesGeneratedQueryWithNonZeroStreams-07481", - "text": " If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, and the bound graphics pipeline was created with VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT state enabled, the last call to vkCmdSetRasterizationStreamEXT must have set the rasterizationStream to zero" + "text": "If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, and the bound graphics pipeline was created with VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT state enabled, the last call to vkCmdSetRasterizationStreamEXT must have set the rasterizationStream to zero", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-sampleLocationsPerPixel-07482", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-sampleLocationsPerPixel-07483", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples parameter of the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples parameter of the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-sampleLocationsEnable-07484", - "text": " If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set" + "text": "If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-sampleLocationsEnable-07485", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.width in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.width in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-sampleLocationsEnable-07486", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.height in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.height in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-sampleLocationsEnable-07487", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, the fragment shader code must not statically use the extended instruction InterpolateAtSample" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, the fragment shader code must not statically use the extended instruction InterpolateAtSample", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-sampleLocationsEnable-07936", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.width must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.width must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-sampleLocationsEnable-07937", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.height must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.height must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-sampleLocationsEnable-07938", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-coverageModulationTableEnable-07488", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-rasterizationSamples-07489", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment" + "text": "If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-coverageToColorEnable-07490", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-coverageReductionMode-07491", - "text": " If this VK_NV_coverage_reduction_mode extension is enabled, the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, the current coverage reduction mode coverageReductionMode, then the current rasterizationSamples, and the sample counts for the color and depth/stencil attachments (if the subpass has them) must be a valid combination returned by vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV" + "text": "If this VK_NV_coverage_reduction_mode extension is enabled, the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, the current coverage reduction mode coverageReductionMode, then the current rasterizationSamples, and the sample counts for the color and depth/stencil attachments (if the subpass has them) must be a valid combination returned by vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-viewportCount-07492", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-viewportCount-07493", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-rasterizationSamples-07494", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE" + "text": "If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-stippledLineEnable-07495", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-stippledLineEnable-07496", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-stippledLineEnable-07497", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-stippledLineEnable-07498", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-conservativePointAndLineRasterization-07499", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, conservativePointAndLineRasterization is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the conservativeRasterizationMode set by the last call to vkCmdSetConservativeRasterizationModeEXT must be VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, conservativePointAndLineRasterization is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the conservativeRasterizationMode set by the last call to vkCmdSetConservativeRasterizationModeEXT must be VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-stage-07073", - "text": " If the currently bound pipeline was created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT, then Mesh Shader Queries must not be active" + "text": "If the currently bound pipeline was created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT, then Mesh Shader Queries must not be active", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08877", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07850", - "text": " If dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command" + "text": "If dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08684", - "text": " If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_VERTEX_BIT" + "text": "If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_VERTEX_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08685", - "text": " If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT" + "text": "If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08686", - "text": " If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT" + "text": "If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08687", - "text": " If there is no bound graphics pipeline, and the geometryShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_GEOMETRY_BIT" + "text": "If there is no bound graphics pipeline, and the geometryShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_GEOMETRY_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08688", - "text": " If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_FRAGMENT_BIT" + "text": "If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_FRAGMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08689", - "text": " If there is no bound graphics pipeline, and the taskShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TASK_BIT_EXT" + "text": "If there is no bound graphics pipeline, and the taskShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TASK_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08690", - "text": " If there is no bound graphics pipeline, and the meshShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_MESH_BIT_EXT" + "text": "If there is no bound graphics pipeline, and the meshShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_MESH_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08693", - "text": " If there is no bound graphics pipeline, and at least one of the taskShader and meshShader features is enabled, one of the VK_SHADER_STAGE_VERTEX_BIT or VK_SHADER_STAGE_MESH_BIT_EXT stages must have a valid VkShaderEXT bound, and the other must have no VkShaderEXT bound" + "text": "If there is no bound graphics pipeline, and at least one of the taskShader and meshShader features is enabled, one of the VK_SHADER_STAGE_VERTEX_BIT or VK_SHADER_STAGE_MESH_BIT_EXT stages must have a valid VkShaderEXT bound, and the other must have no VkShaderEXT bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08694", - "text": " If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created without the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, a valid VkShaderEXT must be bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage" + "text": "If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created without the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, a valid VkShaderEXT must be bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08695", - "text": " If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created with the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, there must be no VkShaderEXT bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage" + "text": "If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created with the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, there must be no VkShaderEXT bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08696", - "text": " If there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage" + "text": "If there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08698", - "text": " If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound" + "text": "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08699", - "text": " If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound" + "text": "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08878", - "text": " All bound graphics shader objects must have been created with identical or identically defined push constant ranges" + "text": "All bound graphics shader objects must have been created with identical or identically defined push constant ranges", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08879", - "text": " All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts" + "text": "All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08880", - "text": " If there is no bound graphics pipeline and the attachmentFeedbackLoopDynamicState feature is enabled on the device, vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage and the attachmentFeedbackLoopDynamicState feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-pDynamicStates-08715", - "text": " If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable parameter in the last call to vkCmdSetDepthWriteEnable must be VK_FALSE" + "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable parameter in the last call to vkCmdSetDepthWriteEnable must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-pDynamicStates-08716", - "text": " If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_STENCIL_WRITE_MASK set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the writeMask parameter in the last call to vkCmdSetStencilWriteMask must be 0" + "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_STENCIL_WRITE_MASK set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the writeMask parameter in the last call to vkCmdSetStencilWriteMask must be 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-09116", - "text": " If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them" + "text": "If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexed-maxFragmentDualSrcAttachments-09239", + "text": "If blending is enabled for any attachment where either the source or destination blend factors for that attachment use the secondary color input, the maximum value of Location for any output attachment statically used in the Fragment Execution Model executed by this command must be less than maxFragmentDualSrcAttachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-commandBuffer-02712", - "text": " If commandBuffer is a protected command buffer and protectedNoFault is not supported, any resource written to by the VkPipeline object bound to the pipeline bind point used by this command must not be an unprotected resource" + "text": "If commandBuffer is a protected command buffer and protectedNoFault is not supported, any resource written to by the VkPipeline object bound to the pipeline bind point used by this command must not be an unprotected resource", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-commandBuffer-02713", - "text": " If commandBuffer is a protected command buffer and protectedNoFault is not supported, pipeline stages other than the framebuffer-space and compute stages in the VkPipeline object bound to the pipeline bind point used by this command must not write to any resource" + "text": "If commandBuffer is a protected command buffer and protectedNoFault is not supported, pipeline stages other than the framebuffer-space and compute stages in the VkPipeline object bound to the pipeline bind point used by this command must not write to any resource", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-commandBuffer-04617", - "text": " If any of the shader stages of the VkPipeline bound to the pipeline bind point used by this command uses the RayQueryKHR capability, then commandBuffer must not be a protected command buffer" + "text": "If any of the shader stages of the VkPipeline bound to the pipeline bind point used by this command uses the RayQueryKHR capability, then commandBuffer must not be a protected command buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-04007", - "text": " All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must have either valid or VK_NULL_HANDLE buffers bound" + "text": "All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must have either valid or VK_NULL_HANDLE buffers bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-04008", - "text": " If the nullDescriptor feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must not be VK_NULL_HANDLE" + "text": "If the nullDescriptor feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must not be VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-02721", - "text": " For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description" + "text": "For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07842", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state enabled then vkCmdSetPrimitiveTopology must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state enabled then vkCmdSetPrimitiveTopology must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-dynamicPrimitiveTopologyUnrestricted-07500", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state enabled and the dynamicPrimitiveTopologyUnrestricted is VK_FALSE, then the primitiveTopology parameter of vkCmdSetPrimitiveTopology must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state enabled and the dynamicPrimitiveTopologyUnrestricted is VK_FALSE, then the primitiveTopology parameter of vkCmdSetPrimitiveTopology must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-04912", - "text": " If the bound graphics pipeline was created with both the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT and VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic states enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command" + "text": "If the bound graphics pipeline was created with both the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT and VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic states enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-pStrides-04913", - "text": " If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdBindVertexBuffers2EXT must have been called in the current command buffer prior to this draw command, and the pStrides parameter of vkCmdBindVertexBuffers2EXT must not be NULL" + "text": "If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdBindVertexBuffers2EXT must have been called in the current command buffer prior to this draw command, and the pStrides parameter of vkCmdBindVertexBuffers2EXT must not be NULL", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08881", - "text": " If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetPrimitiveTopology must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetPrimitiveTopology must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-04914", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-Input-07939", - "text": " If 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 {ExecutionModel} OpEntryPoint must contain a location in VkVertexInputAttributeDescription2EXT::location" + "text": "If 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": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-Input-08734", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then the numeric type associated with all Input variables of the corresponding Location in the Vertex {ExecutionModel} OpEntryPoint must be the same as VkVertexInputAttributeDescription2EXT::format" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then the numeric type associated with all Input variables of the corresponding Location in the Vertex Execution Model OpEntryPoint must be the same as VkVertexInputAttributeDescription2EXT::format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-format-08936", - "text": " If there is a shader object bound to a graphics stage or the currently bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, and VkVertexInputAttributeDescription2EXT::format has a 64-bit component, then the scalar width associated with all Input variables of the corresponding Location in the Vertex {ExecutionModel} OpEntryPoint must be 64-bit" + "text": "If there is a shader object bound to a graphics stage or the currently bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, and VkVertexInputAttributeDescription2EXT::format has a 64-bit component, then the scalar width associated with all Input variables of the corresponding Location in the Vertex Execution Model OpEntryPoint must be 64-bit", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-format-08937", - "text": " If there is a shader object bound to a graphics stage or the currently bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, and the scalar width associated with a Location decorated Input variable in the Vertex {ExecutionModel} OpEntryPoint is 64-bit, then the corresponding VkVertexInputAttributeDescription2EXT::format must have a 64-bit component" + "text": "If there is a shader object bound to a graphics stage or the currently bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, and the scalar width associated with a Location decorated Input variable in the Vertex Execution Model OpEntryPoint is 64-bit, then the corresponding VkVertexInputAttributeDescription2EXT::format must have a 64-bit component", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-09203", - "text": " If there is a shader object bound to a graphics stage or the currently bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, and VkVertexInputAttributeDescription2EXT::format has a 64-bit component, then all Input variables at the corresponding Location in the Vertex {ExecutionModel} OpEntryPoint must not use components that are not present in the format" + "text": "If there is a shader object bound to a graphics stage or the currently bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, and VkVertexInputAttributeDescription2EXT::format has a 64-bit component, then all Input variables at the corresponding Location in the Vertex Execution Model OpEntryPoint must not use components that are not present in the format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08882", - "text": " If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-04875", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT dynamic state enabled then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT dynamic state enabled then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08883", - "text": " If a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-04879", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then vkCmdSetPrimitiveRestartEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then vkCmdSetPrimitiveRestartEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-rasterizerDiscardEnable-08884", - "text": " If 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, vkCmdSetPrimitiveRestartEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, vkCmdSetPrimitiveRestartEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-stage-06481", - "text": " The bound graphics pipeline must not have been created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT" + "text": "The bound graphics pipeline must not have been created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08885", - "text": " There must be no shader object bound to either of the VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT stages" + "text": "There must be no shader object bound to either of the VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT stages", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07312", - "text": " An index buffer must be bound" + "text": "An index buffer must be bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-robustBufferAccess2-07825", - "text": " If robustBufferAccess2 is not enabled, (indexSize {times} (firstIndex + indexCount) + offset) must be less than or equal to the size of the bound index buffer, with indexSize being based on the type specified by indexType, where the index buffer, indexType, and offset are specified via vkCmdBindIndexBuffer" + "text": "If robustBufferAccess2 is not enabled, (indexSize × (firstIndex + indexCount) + offset) must be less than or equal to the size of the bound index buffer, with indexSize being based on the type specified by indexType, where the index buffer, indexType, and offset are specified via vkCmdBindIndexBuffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-robustBufferAccess2-08798", - "text": " If robustBufferAccess2 is not enabled, (indexSize {times} (firstIndex + indexCount) + offset) must be less than or equal to the size of the bound index buffer, with indexSize being based on the type specified by indexType, where the index buffer, indexType, and offset are specified via vkCmdBindIndexBuffer or vkCmdBindIndexBuffer2KHR. If vkCmdBindIndexBuffer2KHR is used to bind the index buffer, the size of the bound index buffer is vkCmdBindIndexBuffer2KHR::size" + "text": "If robustBufferAccess2 is not enabled, (indexSize × (firstIndex + indexCount) + offset) must be less than or equal to the size of the bound index buffer, with indexSize being based on the type specified by indexType, where the index buffer, indexType, and offset are specified via vkCmdBindIndexBuffer or vkCmdBindIndexBuffer2KHR. If vkCmdBindIndexBuffer2KHR is used to bind the index buffer, the size of the bound index buffer is vkCmdBindIndexBuffer2KHR::size", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-renderpass", - "text": " This command must only be called inside of a render pass instance" + "text": "This command must only be called inside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexed-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -33914,1335 +43256,1798 @@ "core": [ { "vuid": "VUID-vkCmdDrawMultiEXT-magFilter-04553", - "text": " If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + "text": "If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-mipmapMode-04770", - "text": " If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + "text": "If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-06479", - "text": " If a VkImageView is sampled with depth comparison, the image view’s format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT" + "text": "If a VkImageView is sampled with depth comparison, the image view’s format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-02691", - "text": " If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT" + "text": "If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07888", - "text": " If a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer’s format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT" + "text": "If a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer’s format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-02692", - "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" + "text": "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-02693", - "text": " If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" + "text": "If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-filterCubic-02694", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" + "text": "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-filterCubicMinmax-02695", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" + "text": "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMultiEXT-cubicRangeClamp-09212", + "text": "If the cubicRangeClamp feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command
\n
\n
must not have a VkSamplerReductionModeCreateInfo
\n
\n

reductionMode equal to\nVK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM

\n
\n
\n
", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMultiEXT-reductionMode-09213", + "text": "Any VkImageView being sampled with a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM as a result of this command must sample with VK_FILTER_CUBIC_EXT", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMultiEXT-selectableCubicWeights-09214", + "text": "If the selectableCubicWeights feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have VkSamplerCubicWeightsCreateInfoQCOM::cubicWeights equal to VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-flags-02696", - "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE" + "text": "Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-OpTypeImage-07027", - "text": " For any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT" + "text": "For any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-OpTypeImage-07028", - "text": " For any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT" + "text": "For any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-OpTypeImage-07029", - "text": " For any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT" + "text": "For any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-OpTypeImage-07030", - "text": " Any VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT" + "text": "Any VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08600", - "text": " For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08601", - "text": " For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-maintenance4-08602", - "text": " If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08114", - "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08115", - "text": " If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08116", - "text": " Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08604", - "text": " Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command" + "text": "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08117", - "text": " If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08119", - "text": " If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident" + "text": "If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08605", - "text": " If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident" + "text": "If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08606", - "text": " If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command" + "text": "If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08607", - "text": " If the shaderObject is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command" + "text": "If the shaderObject is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08608", - "text": " If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound" + "text": "If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08609", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08610", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08611", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-uniformBuffers-06935", - "text": " If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08612", - "text": " If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-storageBuffers-06936", - "text": " If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08613", - "text": " If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-commandBuffer-02707", - "text": " If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource" + "text": "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-06550", - "text": " If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions" + "text": "If a bound shader accesses a VkSampler or VkImageView object that enables sampler Y′CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-ConstOffset-06551", - "text": " If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands" + "text": "If a bound shader accesses a VkSampler or VkImageView object that enables sampler Y′CBCR conversion, that object must not use the ConstOffset and Offset operands", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-viewType-07752", - "text": " If a VkImageView is accessed as a result of this command, then the image view’s viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation" + "text": "If a VkImageView is accessed as a result of this command, then the image view’s viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-format-07753", - "text": " If a VkImageView is accessed as a result of this command, then the numeric type of the image view’s format and the Sampled Type operand of the OpTypeImage must match" + "text": "If a VkImageView is accessed as a result of this command, then the numeric type of the image view’s format and the Sampled Type operand of the OpTypeImage must match", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-OpImageWrite-08795", - "text": " If a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format" + "text": "If a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-OpImageWrite-08796", - "text": " If a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components" + "text": "If a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-OpImageWrite-04469", - "text": " If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view’s format" + "text": "If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view’s format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-SampledType-04470", - "text": " If a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64" + "text": "If a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-SampledType-04471", - "text": " If a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32" + "text": "If a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-SampledType-04472", - "text": " If a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64" + "text": "If a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-SampledType-04473", - "text": " If a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32" + "text": "If a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-sparseImageInt64Atomics-04474", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command" + "text": "If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-sparseImageInt64Atomics-04475", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command" + "text": "If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-OpImageWeightedSampleQCOM-06971", - "text": " If OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-OpImageWeightedSampleQCOM-06972", - "text": " If OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-OpImageBoxFilterQCOM-06973", - "text": " If OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM" + "text": "If OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-OpImageBlockMatchSSDQCOM-06974", - "text": " If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM" + "text": "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-OpImageBlockMatchSADQCOM-06975", - "text": " If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM" + "text": "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-OpImageBlockMatchSADQCOM-06976", - "text": " If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation" + "text": "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-OpImageWeightedSampleQCOM-06977", - "text": " If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-OpImageWeightedSampleQCOM-06978", - "text": " If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM" + "text": "If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMultiEXT-OpImageBlockMatchWindow-09215", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMultiEXT-OpImageBlockMatchWindow-09216", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view’s format must be a single-component format.", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMultiEXT-OpImageBlockMatchWindow-09217", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07288", - "text": " Any shader invocation executed by this command must terminate" + "text": "Any shader invocation executed by this command must terminate", + "page": "vkspec" }, { "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" + "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", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-subpass-02685", - "text": " The subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS" + "text": "The subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07748", - "text": " If any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set" + "text": "If any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-OpTypeImage-07468", - "text": " If any shader executed by this pipeline accesses an OpTypeImage variable with a Dim operand of SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass" + "text": "If any shader executed by this pipeline accesses an OpTypeImage variable with a Dim operand of SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07469", - "text": " Input attachment views accessed in a subpass must be created with the same VkFormat as the corresponding subpass definition, and be created with a VkImageView that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound VkFramebuffer as specified by Fragment Input Attachment Compatibility" + "text": "Input attachment views accessed in a subpass must be created with the same VkFormat as the corresponding subpass definition, and be created with a VkImageView that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound VkFramebuffer as specified by Fragment Input Attachment Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-06537", - "text": " Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command" + "text": "Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command", + "page": "vkspec" }, { "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
" + "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
", + "page": "vkspec" }, { "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
" + "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
", + "page": "vkspec" }, { "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
" + "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-09003", - "text": " If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command" + "text": "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-06539", - "text": " If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment" + "text": "If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-06886", - "text": " If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled" + "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-06887", - "text": " If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back writeMask are not zero, and stencil test is enabled, all stencil ops must be VK_STENCIL_OP_KEEP" + "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back writeMask are not zero, and stencil test is enabled, all stencil ops must be VK_STENCIL_OP_KEEP", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07831", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07832", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07833", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08617", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08618", - "text": " If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08619", - "text": " If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07834", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08620", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07835", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08621", - "text": " If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07836", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled, and if the current depthBoundsTestEnable state is VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08622", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07837", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08623", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07838", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled then vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08624", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07839", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled then vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08625", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-maxMultiviewInstanceIndex-02688", - "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex" + "text": "If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-02689", - "text": " If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set" + "text": "If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-06666", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08626", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetSampleLocationsEnableEXT in the current command buffer set sampleLocationsEnable to VK_TRUE, vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetSampleLocationsEnableEXT in the current command buffer set sampleLocationsEnable to VK_TRUE, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-sampleLocationsPerPixel-07934", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07840", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08627", - "text": " If a shader object is bound to any graphics stage, vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07841", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08628", - "text": " If a shader object is bound to any graphics stage, vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07843", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08629", - "text": " If a shader object is bound to any graphics stage, vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07844", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08630", - "text": " If a shader object is bound to any graphics stage, vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07845", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08631", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthTestEnable in the current command buffer set depthTestEnable to VK_TRUE, vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetDepthTestEnable in the current command buffer set depthTestEnable to VK_TRUE, then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07846", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled then vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled then vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08632", - "text": " If a shader object is bound to any graphics stage, and the depthBounds feature is enabled, the vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the depthBounds feature is enabled, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07847", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08633", - "text": " If 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, then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07848", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08634", - "text": " If 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 vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-viewportCount-03417", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-scissorCount-03418", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the scissorCount parameter of vkCmdSetScissorWithCount must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the scissorCount parameter of vkCmdSetScissorWithCount must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-viewportCount-03419", - "text": " If the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount" + "text": "If the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08635", - "text": " If a shader object is bound to any graphics stage, then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount" + "text": "If a shader object is bound to any graphics stage, then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-viewportCount-04137", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-viewportCount-04138", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMultiEXT-None-09232", + "text": "If a shader object is bound to any graphics stage, and the VK_NV_clip_space_w_scaling extension is enabled on the device, then vkCmdSetViewportWScalingNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08636", - "text": " If a shader object is bound to any graphics stage, and the VK_NV_clip_space_w_scaling extension is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If a shader object is bound to any graphics stage, and the VK_NV_clip_space_w_scaling extension is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-viewportCount-04139", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-viewportCount-04140", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMultiEXT-shadingRateImage-09233", + "text": "If the shadingRateImage feature is enabled, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoarseSampleOrderNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMultiEXT-shadingRateImage-09234", + "text": "If a shader object is bound to any graphics stage, and the shadingRateImage feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetShadingRateImageEnableNV in the current command buffer set shadingRateImageEnable to VK_TRUE, then vkCmdSetViewportShadingRatePaletteNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08637", - "text": " If a shader object is bound to any graphics stage, and the shadingRateImage feature is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If a shader object is bound to any graphics stage, and the shadingRateImage feature is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-VkPipelineVieportCreateInfo-04141", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportSwizzleStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportSwizzleStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-VkPipelineVieportCreateInfo-04142", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportExclusiveScissorStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportExclusiveScissorStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07878", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07879", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMultiEXT-exclusiveScissor-09235", + "text": "If a shader object is bound to any graphics stage, and the exclusiveScissor feature is enabled, then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08638", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetExclusiveScissorEnableNV in the current command buffer set any element of pExclusiveScissorEnables to VK_TRUE, then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetExclusiveScissorEnableNV in the current command buffer set any element of pExclusiveScissorEnables to VK_TRUE, then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-04876", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08639", - "text": " If a shader object is bound to any graphics stage, then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-04877", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08640", - "text": " If 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, then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-logicOp-04878", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08641", - "text": " If a shader object is bound to any graphics stage, and the logicOp feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the logicOp feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-primitiveFragmentShadingRateWithMultipleViewports-04552", - "text": " If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1" + "text": "If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-primitiveFragmentShadingRateWithMultipleViewports-08642", - "text": " If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and any shader object bound to a graphics stage writes to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1" + "text": "If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and any shader object bound to a graphics stage writes to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-blendEnable-04727", - "text": " If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the blendEnable member of the corresponding element of the pAttachments member of pColorBlendState must be VK_FALSE" + "text": "If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the blendEnable member of the corresponding element of the pAttachments member of pColorBlendState must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08643", - "text": " If 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, then for each color attachment in the render pass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the corresponding member of pColorBlendEnables in the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer that affected that attachment index must have been VK_FALSE" + "text": "If 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, then for each color attachment in the render pass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the corresponding member of pColorBlendEnables in the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer that affected that attachment index must have been VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-multisampledRenderToSingleSampled-07284", - "text": " If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments" + "text": "If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08644", - "text": " If 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 none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then the most recent call to vkCmdSetRasterizationSamplesEXT in the current command buffer must have set rasterizationSamples to be the same as the number of samples for the current render pass color and/or depth/stencil attachments" + "text": "If 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 none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then the most recent call to vkCmdSetRasterizationSamplesEXT in the current command buffer must have set rasterizationSamples to be the same as the number of samples for the current render pass color and/or depth/stencil attachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08876", - "text": " If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering" + "text": "If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-imageView-06172", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-imageView-06173", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-imageView-06174", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, this command must not write any values to the depth attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, this command must not write any values to the depth attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-imageView-06175", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-imageView-06176", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-imageView-06177", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-viewMask-06178", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::viewMask equal to VkRenderingInfo::viewMask" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::viewMask equal to VkRenderingInfo::viewMask", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-colorAttachmentCount-06179", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::colorAttachmentCount equal to VkRenderingInfo::colorAttachmentCount" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::colorAttachmentCount equal to VkRenderingInfo::colorAttachmentCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08910", - "text": " If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline" + "text": "If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08911", - "text": " If the dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats, if it exists, must be VK_FORMAT_UNDEFINED" + "text": "If the dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats, if it exists, must be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08912", - "text": " If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED" + "text": "If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED", + "page": "vkspec" + }, + { + "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 currently bound graphics pipeline", + "page": "vkspec" + }, + { + "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 currently bound graphics pipeline", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMultiEXT-None-09364", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled, then vkCmdSetColorBlendEnableEXT must have set the blend enable to VK_FALSE prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMultiEXT-None-09365", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMultiEXT-None-09368", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMultiEXT-None-09369", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07749", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08646", - "text": " If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the fragment stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-attachmentCount-07750", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the attachmentCount parameter of vkCmdSetColorWriteEnableEXT must be greater than or equal to the VkPipelineColorBlendStateCreateInfo::attachmentCount of the currently bound graphics pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the attachmentCount parameter of vkCmdSetColorWriteEnableEXT must be greater than or equal to the VkPipelineColorBlendStateCreateInfo::attachmentCount of the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08647", - "text": " If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the fragment stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the attachmentCount parameter of most recent call to vkCmdSetColorWriteEnableEXT in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance" + "text": "If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the attachmentCount parameter of most recent call to vkCmdSetColorWriteEnableEXT in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07751", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07880", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMultiEXT-rasterizerDiscardEnable-09236", + "text": "If the VK_EXT_discard_rectangles extension is 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, then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08648", - "text": " If the VK_EXT_discard_rectangles extension is 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, then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_discard_rectangles extension is 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, then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07881", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08649", - "text": " If the VK_EXT_discard_rectangles extension is 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 vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_discard_rectangles extension is 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 vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08913", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08914", - "text": " If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView" + "text": "If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08915", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08916", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08917", - "text": " If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView" + "text": "If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08918", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-imageView-06183", - "text": " If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentShadingRateAttachmentInfoKHR::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR" + "text": "If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentShadingRateAttachmentInfoKHR::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-imageView-06184", - "text": " If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT" + "text": "If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-colorAttachmentCount-06185", - "text": " If the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline" + "text": "If the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-pDepthAttachment-06186", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-pStencilAttachment-06187", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-multisampledRenderToSingleSampled-07285", - "text": " If the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of rasterizationSamples for the currently bound graphics pipeline" + "text": "If the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of rasterizationSamples for the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-multisampledRenderToSingleSampled-07286", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-multisampledRenderToSingleSampled-07287", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-pNext-07935", - "text": " If this command has been called inside a render pass instance started with vkCmdBeginRendering, and the pNext chain of VkRenderingInfo includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the value of rasterizationSamples for the currently bound graphics pipeline must be equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples" + "text": "If this command has been called inside a render pass instance started with vkCmdBeginRendering, and the pNext chain of VkRenderingInfo includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the value of rasterizationSamples for the currently bound graphics pipeline must be equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-renderPass-06198", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline must have been created with a VkGraphicsPipelineCreateInfo::renderPass equal to VK_NULL_HANDLE" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline must have been created with a VkGraphicsPipelineCreateInfo::renderPass equal to VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-pColorAttachments-08963", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the VkRenderingInfo::pColorAttachments->imageView was not VK_NULL_HANDLE, then the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the pipeline must not be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the VkRenderingInfo::pColorAttachments->imageView was not VK_NULL_HANDLE, then the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the pipeline must not be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-pDepthAttachment-08964", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-pStencilAttachment-08965", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, stencil test is enabled and the VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, stencil test is enabled and the VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-primitivesGeneratedQueryWithRasterizerDiscard-06708", - "text": " If the primitivesGeneratedQueryWithRasterizerDiscard feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, rasterization discard must not be enabled" + "text": "If the primitivesGeneratedQueryWithRasterizerDiscard feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, rasterization discard must not be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-primitivesGeneratedQueryWithNonZeroStreams-06709", - "text": " If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, the bound graphics pipeline must not have been created with a non-zero value in VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream" + "text": "If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, the bound graphics pipeline must not have been created with a non-zero value in VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07619", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07620", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMultiEXT-None-09237", + "text": "If a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08650", - "text": " If the depthClamp feature is 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, then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the depthClamp feature is 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, then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07621", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08651", - "text": " If 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, then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07622", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08652", - "text": " If 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, then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07623", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08653", - "text": " If 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, then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07624", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-alphaToCoverageEnable-08919", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and alphaToCoverageEnable was VK_TRUE in the last call to vkCmdSetAlphaToCoverageEnableEXT, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and alphaToCoverageEnable was VK_TRUE in the last call to vkCmdSetAlphaToCoverageEnableEXT, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08654", - "text": " If 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, then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-alphaToCoverageEnable-08920", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetAlphaToCoverageEnableEXT in the current command buffer set alphaToCoverageEnable to VK_TRUE, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetAlphaToCoverageEnableEXT in the current command buffer set alphaToCoverageEnable to VK_TRUE, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07625", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08655", - "text": " If the alphaToOne feature is 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, then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the alphaToOne feature is 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, then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07626", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08656", - "text": " If the logicOp feature is 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, then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the logicOp feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07627", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08657", - "text": " If 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, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07628", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08658", - "text": " If 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 vkCmdSetColorBlendEnableEXT for any attachment set that attachment’s value in pColorBlendEnables to VK_TRUE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetColorBlendEnableEXT for any attachment set that attachment’s value in pColorBlendEnables to VK_TRUE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07629", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08659", - "text": " If 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, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07630", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08660", - "text": " If the geometryStreams feature is enabled, and a shader object is bound to the geometry stage, then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the geometryStreams feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_GEOMETRY_BIT stage, then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07631", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08661", - "text": " If the VK_EXT_conservative_rasterization extension is 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, then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_conservative_rasterization extension is 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, then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07632", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08662", - "text": " If the VK_EXT_conservative_rasterization extension is 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 vkCmdSetConservativeRasterizationModeEXT in the current command buffer set conservativeRasterizationMode to VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_conservative_rasterization extension is 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 vkCmdSetConservativeRasterizationModeEXT in the current command buffer set conservativeRasterizationMode to VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07633", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08663", - "text": " If the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07634", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08664", - "text": " If the VK_EXT_sample_locations extension is 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, then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_sample_locations extension is 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, then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07635", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07636", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08665", - "text": " If the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the vertex stage, then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "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 in the current command buffer prior to this drawing command" + "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 in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08666", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08667", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08668", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "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 in the current command buffer prior to this drawing command" + "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 in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08669", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08670", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08671", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07849", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_EXT dynamic state enabled then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_EXT dynamic state enabled then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08672", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetLineStippleEnableEXT in the current command buffer set stippledLineEnable to VK_TRUE, then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetLineStippleEnableEXT in the current command buffer set stippledLineEnable to VK_TRUE, then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07639", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08673", - "text": " If the depthClipControl feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the depthClipControl feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07640", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08674", - "text": " If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07641", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08675", - "text": " If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07642", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08676", - "text": " If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07643", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08677", - "text": " If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetCoverageToColorEnableNV in the current command buffer set coverageToColorEnable to VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetCoverageToColorEnableNV in the current command buffer set coverageToColorEnable to VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07644", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08678", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_framebuffer_mixed_samples extension is 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, then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07645", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08679", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_framebuffer_mixed_samples extension is 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 vkCmdSetCoverageModulationModeNV in the current command buffer set coverageModulationMode to any value other than VK_COVERAGE_MODULATION_MODE_NONE_NV, then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07646", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08680", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetCoverageModulationTableEnableNV in the current command buffer set coverageModulationTableEnable to VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_framebuffer_mixed_samples extension is 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 vkCmdSetCoverageModulationTableEnableNV in the current command buffer set coverageModulationTableEnable to VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07647", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMultiEXT-pipelineFragmentShadingRate-09238", + "text": "If the pipelineFragmentShadingRate feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetFragmentShadingRateKHR must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08681", - "text": " If the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the shadingRateImage feature is 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, then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07648", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08682", - "text": " If the representativeFragmentTest feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the representativeFragmentTest feature is 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, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07649", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08683", - "text": " If the coverageReductionMode feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the coverageReductionMode feature is 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, then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-pColorBlendEnables-07470", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT state enabled and the last call to vkCmdSetColorBlendEnableEXT set pColorBlendEnables for any attachment to VK_TRUE, then for those attachments in the subpass the corresponding image view’s format features must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT state enabled and the last call to vkCmdSetColorBlendEnableEXT set pColorBlendEnables for any attachment to VK_TRUE, then for those attachments in the subpass the corresponding image view’s format features must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-rasterizationSamples-07471", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must follow the rules for a zero-attachment subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must follow the rules for a zero-attachment subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-samples-07472", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the VkPipelineMultisampleStateCreateInfo::rasterizationSamples parameter used to create the bound graphics pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the VkPipelineMultisampleStateCreateInfo::rasterizationSamples parameter used to create the bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-samples-07473", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the rasterizationSamples parameter in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the rasterizationSamples parameter in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { - "vuid": "VUID-vkCmdDrawMultiEXT-multisampledRenderToSingleSampled-07475", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and none of the VK_AMD_mixed_attachment_samples extension, VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the current subpass color and/or depth/stencil attachments" + "vuid": "VUID-vkCmdDrawMultiEXT-rasterizationSamples-07474", + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples extensions are enabled, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the current subpass color and/or depth/stencil attachments", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMultiEXT-None-09211", + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the rasterizationSamples member of that structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-firstAttachment-07476", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-firstAttachment-07477", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-firstAttachment-07478", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-firstAttachment-07479", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-advancedBlendMaxColorAttachments-07480", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT and VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic states enabled and the last calls to vkCmdSetColorBlendEnableEXT and vkCmdSetColorBlendAdvancedEXT have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed advancedBlendMaxColorAttachments" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT and VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic states enabled and the last calls to vkCmdSetColorBlendEnableEXT and vkCmdSetColorBlendAdvancedEXT have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed advancedBlendMaxColorAttachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-primitivesGeneratedQueryWithNonZeroStreams-07481", - "text": " If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, and the bound graphics pipeline was created with VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT state enabled, the last call to vkCmdSetRasterizationStreamEXT must have set the rasterizationStream to zero" + "text": "If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, and the bound graphics pipeline was created with VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT state enabled, the last call to vkCmdSetRasterizationStreamEXT must have set the rasterizationStream to zero", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-sampleLocationsPerPixel-07482", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-sampleLocationsPerPixel-07483", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples parameter of the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples parameter of the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-07484", - "text": " If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set" + "text": "If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-07485", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.width in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.width in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-07486", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.height in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.height in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-07487", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, the fragment shader code must not statically use the extended instruction InterpolateAtSample" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, the fragment shader code must not statically use the extended instruction InterpolateAtSample", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-07936", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.width must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.width must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-07937", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.height must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.height must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-07938", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-coverageModulationTableEnable-07488", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-rasterizationSamples-07489", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment" + "text": "If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-coverageToColorEnable-07490", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-coverageReductionMode-07491", - "text": " If this VK_NV_coverage_reduction_mode extension is enabled, the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, the current coverage reduction mode coverageReductionMode, then the current rasterizationSamples, and the sample counts for the color and depth/stencil attachments (if the subpass has them) must be a valid combination returned by vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV" + "text": "If this VK_NV_coverage_reduction_mode extension is enabled, the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, the current coverage reduction mode coverageReductionMode, then the current rasterizationSamples, and the sample counts for the color and depth/stencil attachments (if the subpass has them) must be a valid combination returned by vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-viewportCount-07492", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-viewportCount-07493", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-rasterizationSamples-07494", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE" + "text": "If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-stippledLineEnable-07495", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-stippledLineEnable-07496", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-stippledLineEnable-07497", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-stippledLineEnable-07498", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-conservativePointAndLineRasterization-07499", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, conservativePointAndLineRasterization is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the conservativeRasterizationMode set by the last call to vkCmdSetConservativeRasterizationModeEXT must be VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, conservativePointAndLineRasterization is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the conservativeRasterizationMode set by the last call to vkCmdSetConservativeRasterizationModeEXT must be VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-stage-07073", - "text": " If the currently bound pipeline was created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT, then Mesh Shader Queries must not be active" + "text": "If the currently bound pipeline was created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT, then Mesh Shader Queries must not be active", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08877", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07850", - "text": " If dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command" + "text": "If dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08684", - "text": " If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_VERTEX_BIT" + "text": "If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_VERTEX_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08685", - "text": " If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT" + "text": "If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08686", - "text": " If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT" + "text": "If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08687", - "text": " If there is no bound graphics pipeline, and the geometryShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_GEOMETRY_BIT" + "text": "If there is no bound graphics pipeline, and the geometryShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_GEOMETRY_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08688", - "text": " If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_FRAGMENT_BIT" + "text": "If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_FRAGMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08689", - "text": " If there is no bound graphics pipeline, and the taskShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TASK_BIT_EXT" + "text": "If there is no bound graphics pipeline, and the taskShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TASK_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08690", - "text": " If there is no bound graphics pipeline, and the meshShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_MESH_BIT_EXT" + "text": "If there is no bound graphics pipeline, and the meshShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_MESH_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08693", - "text": " If there is no bound graphics pipeline, and at least one of the taskShader and meshShader features is enabled, one of the VK_SHADER_STAGE_VERTEX_BIT or VK_SHADER_STAGE_MESH_BIT_EXT stages must have a valid VkShaderEXT bound, and the other must have no VkShaderEXT bound" + "text": "If there is no bound graphics pipeline, and at least one of the taskShader and meshShader features is enabled, one of the VK_SHADER_STAGE_VERTEX_BIT or VK_SHADER_STAGE_MESH_BIT_EXT stages must have a valid VkShaderEXT bound, and the other must have no VkShaderEXT bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08694", - "text": " If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created without the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, a valid VkShaderEXT must be bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage" + "text": "If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created without the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, a valid VkShaderEXT must be bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08695", - "text": " If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created with the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, there must be no VkShaderEXT bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage" + "text": "If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created with the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, there must be no VkShaderEXT bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08696", - "text": " If there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage" + "text": "If there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08698", - "text": " If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound" + "text": "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08699", - "text": " If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound" + "text": "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08878", - "text": " All bound graphics shader objects must have been created with identical or identically defined push constant ranges" + "text": "All bound graphics shader objects must have been created with identical or identically defined push constant ranges", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08879", - "text": " All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts" + "text": "All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08880", - "text": " If there is no bound graphics pipeline and the attachmentFeedbackLoopDynamicState feature is enabled on the device, vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage and the attachmentFeedbackLoopDynamicState feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-pDynamicStates-08715", - "text": " If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable parameter in the last call to vkCmdSetDepthWriteEnable must be VK_FALSE" + "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable parameter in the last call to vkCmdSetDepthWriteEnable must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-pDynamicStates-08716", - "text": " If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_STENCIL_WRITE_MASK set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the writeMask parameter in the last call to vkCmdSetStencilWriteMask must be 0" + "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_STENCIL_WRITE_MASK set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the writeMask parameter in the last call to vkCmdSetStencilWriteMask must be 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-09116", - "text": " If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them" + "text": "If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMultiEXT-maxFragmentDualSrcAttachments-09239", + "text": "If blending is enabled for any attachment where either the source or destination blend factors for that attachment use the secondary color input, the maximum value of Location for any output attachment statically used in the Fragment Execution Model executed by this command must be less than maxFragmentDualSrcAttachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-commandBuffer-02712", - "text": " If commandBuffer is a protected command buffer and protectedNoFault is not supported, any resource written to by the VkPipeline object bound to the pipeline bind point used by this command must not be an unprotected resource" + "text": "If commandBuffer is a protected command buffer and protectedNoFault is not supported, any resource written to by the VkPipeline object bound to the pipeline bind point used by this command must not be an unprotected resource", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-commandBuffer-02713", - "text": " If commandBuffer is a protected command buffer and protectedNoFault is not supported, pipeline stages other than the framebuffer-space and compute stages in the VkPipeline object bound to the pipeline bind point used by this command must not write to any resource" + "text": "If commandBuffer is a protected command buffer and protectedNoFault is not supported, pipeline stages other than the framebuffer-space and compute stages in the VkPipeline object bound to the pipeline bind point used by this command must not write to any resource", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-commandBuffer-04617", - "text": " If any of the shader stages of the VkPipeline bound to the pipeline bind point used by this command uses the RayQueryKHR capability, then commandBuffer must not be a protected command buffer" + "text": "If any of the shader stages of the VkPipeline bound to the pipeline bind point used by this command uses the RayQueryKHR capability, then commandBuffer must not be a protected command buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-04007", - "text": " All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must have either valid or VK_NULL_HANDLE buffers bound" + "text": "All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must have either valid or VK_NULL_HANDLE buffers bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-04008", - "text": " If the nullDescriptor feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must not be VK_NULL_HANDLE" + "text": "If the nullDescriptor feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must not be VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-02721", - "text": " For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description" + "text": "For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07842", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state enabled then vkCmdSetPrimitiveTopology must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state enabled then vkCmdSetPrimitiveTopology must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-dynamicPrimitiveTopologyUnrestricted-07500", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state enabled and the dynamicPrimitiveTopologyUnrestricted is VK_FALSE, then the primitiveTopology parameter of vkCmdSetPrimitiveTopology must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state enabled and the dynamicPrimitiveTopologyUnrestricted is VK_FALSE, then the primitiveTopology parameter of vkCmdSetPrimitiveTopology must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-04912", - "text": " If the bound graphics pipeline was created with both the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT and VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic states enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command" + "text": "If the bound graphics pipeline was created with both the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT and VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic states enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-pStrides-04913", - "text": " If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdBindVertexBuffers2EXT must have been called in the current command buffer prior to this draw command, and the pStrides parameter of vkCmdBindVertexBuffers2EXT must not be NULL" + "text": "If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdBindVertexBuffers2EXT must have been called in the current command buffer prior to this draw command, and the pStrides parameter of vkCmdBindVertexBuffers2EXT must not be NULL", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08881", - "text": " If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetPrimitiveTopology must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetPrimitiveTopology must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-04914", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-Input-07939", - "text": " If 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 {ExecutionModel} OpEntryPoint must contain a location in VkVertexInputAttributeDescription2EXT::location" + "text": "If 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": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-Input-08734", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then the numeric type associated with all Input variables of the corresponding Location in the Vertex {ExecutionModel} OpEntryPoint must be the same as VkVertexInputAttributeDescription2EXT::format" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then the numeric type associated with all Input variables of the corresponding Location in the Vertex Execution Model OpEntryPoint must be the same as VkVertexInputAttributeDescription2EXT::format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-format-08936", - "text": " If there is a shader object bound to a graphics stage or the currently bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, and VkVertexInputAttributeDescription2EXT::format has a 64-bit component, then the scalar width associated with all Input variables of the corresponding Location in the Vertex {ExecutionModel} OpEntryPoint must be 64-bit" + "text": "If there is a shader object bound to a graphics stage or the currently bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, and VkVertexInputAttributeDescription2EXT::format has a 64-bit component, then the scalar width associated with all Input variables of the corresponding Location in the Vertex Execution Model OpEntryPoint must be 64-bit", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-format-08937", - "text": " If there is a shader object bound to a graphics stage or the currently bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, and the scalar width associated with a Location decorated Input variable in the Vertex {ExecutionModel} OpEntryPoint is 64-bit, then the corresponding VkVertexInputAttributeDescription2EXT::format must have a 64-bit component" + "text": "If there is a shader object bound to a graphics stage or the currently bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, and the scalar width associated with a Location decorated Input variable in the Vertex Execution Model OpEntryPoint is 64-bit, then the corresponding VkVertexInputAttributeDescription2EXT::format must have a 64-bit component", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-09203", - "text": " If there is a shader object bound to a graphics stage or the currently bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, and VkVertexInputAttributeDescription2EXT::format has a 64-bit component, then all Input variables at the corresponding Location in the Vertex {ExecutionModel} OpEntryPoint must not use components that are not present in the format" + "text": "If there is a shader object bound to a graphics stage or the currently bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, and VkVertexInputAttributeDescription2EXT::format has a 64-bit component, then all Input variables at the corresponding Location in the Vertex Execution Model OpEntryPoint must not use components that are not present in the format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08882", - "text": " If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-04875", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT dynamic state enabled then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT dynamic state enabled then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08883", - "text": " If a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-04879", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then vkCmdSetPrimitiveRestartEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then vkCmdSetPrimitiveRestartEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-rasterizerDiscardEnable-08884", - "text": " If 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, vkCmdSetPrimitiveRestartEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, vkCmdSetPrimitiveRestartEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-stage-06481", - "text": " The bound graphics pipeline must not have been created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT" + "text": "The bound graphics pipeline must not have been created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08885", - "text": " There must be no shader object bound to either of the VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT stages" + "text": "There must be no shader object bound to either of the VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT stages", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-04933", - "text": " The multiDraw feature must be enabled" + "text": "The multiDraw feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-drawCount-04934", - "text": " drawCount must be less than VkPhysicalDeviceMultiDrawPropertiesEXT::maxMultiDrawCount" + "text": "drawCount must be less than VkPhysicalDeviceMultiDrawPropertiesEXT::maxMultiDrawCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-drawCount-04935", - "text": " If drawCount is greater than zero, pVertexInfo must be a valid pointer to memory containing one or more valid instances of VkMultiDrawInfoEXT structures" + "text": "If drawCount is greater than zero, pVertexInfo must be a valid pointer to memory containing one or more valid instances of VkMultiDrawInfoEXT structures", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-stride-04936", - "text": " stride must be a multiple of 4" + "text": "stride must be a multiple of 4", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-renderpass", - "text": " This command must only be called inside of a render pass instance" + "text": "This command must only be called inside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiEXT-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -35250,1351 +45055,1818 @@ "core": [ { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-magFilter-04553", - "text": " If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + "text": "If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-mipmapMode-04770", - "text": " If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + "text": "If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-06479", - "text": " If a VkImageView is sampled with depth comparison, the image view’s format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT" + "text": "If a VkImageView is sampled with depth comparison, the image view’s format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-02691", - "text": " If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT" + "text": "If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07888", - "text": " If a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer’s format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT" + "text": "If a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer’s format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-02692", - "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" + "text": "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-02693", - "text": " If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" + "text": "If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-filterCubic-02694", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" + "text": "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-filterCubicMinmax-02695", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" + "text": "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMultiIndexedEXT-cubicRangeClamp-09212", + "text": "If the cubicRangeClamp feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command
\n
\n
must not have a VkSamplerReductionModeCreateInfo
\n
\n

reductionMode equal to\nVK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM

\n
\n
\n
", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMultiIndexedEXT-reductionMode-09213", + "text": "Any VkImageView being sampled with a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM as a result of this command must sample with VK_FILTER_CUBIC_EXT", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMultiIndexedEXT-selectableCubicWeights-09214", + "text": "If the selectableCubicWeights feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have VkSamplerCubicWeightsCreateInfoQCOM::cubicWeights equal to VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-flags-02696", - "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE" + "text": "Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-OpTypeImage-07027", - "text": " For any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT" + "text": "For any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-OpTypeImage-07028", - "text": " For any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT" + "text": "For any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-OpTypeImage-07029", - "text": " For any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT" + "text": "For any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-OpTypeImage-07030", - "text": " Any VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT" + "text": "Any VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08600", - "text": " For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08601", - "text": " For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-maintenance4-08602", - "text": " If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08114", - "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08115", - "text": " If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08116", - "text": " Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08604", - "text": " Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command" + "text": "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08117", - "text": " If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08119", - "text": " If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident" + "text": "If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08605", - "text": " If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident" + "text": "If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08606", - "text": " If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command" + "text": "If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08607", - "text": " If the shaderObject is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command" + "text": "If the shaderObject is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08608", - "text": " If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound" + "text": "If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08609", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08610", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08611", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-uniformBuffers-06935", - "text": " If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08612", - "text": " If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-storageBuffers-06936", - "text": " If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08613", - "text": " If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-02707", - "text": " If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource" + "text": "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-06550", - "text": " If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions" + "text": "If a bound shader accesses a VkSampler or VkImageView object that enables sampler Y′CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-ConstOffset-06551", - "text": " If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands" + "text": "If a bound shader accesses a VkSampler or VkImageView object that enables sampler Y′CBCR conversion, that object must not use the ConstOffset and Offset operands", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-viewType-07752", - "text": " If a VkImageView is accessed as a result of this command, then the image view’s viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation" + "text": "If a VkImageView is accessed as a result of this command, then the image view’s viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-format-07753", - "text": " If a VkImageView is accessed as a result of this command, then the numeric type of the image view’s format and the Sampled Type operand of the OpTypeImage must match" + "text": "If a VkImageView is accessed as a result of this command, then the numeric type of the image view’s format and the Sampled Type operand of the OpTypeImage must match", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-OpImageWrite-08795", - "text": " If a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format" + "text": "If a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-OpImageWrite-08796", - "text": " If a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components" + "text": "If a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-OpImageWrite-04469", - "text": " If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view’s format" + "text": "If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view’s format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-SampledType-04470", - "text": " If a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64" + "text": "If a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-SampledType-04471", - "text": " If a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32" + "text": "If a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-SampledType-04472", - "text": " If a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64" + "text": "If a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-SampledType-04473", - "text": " If a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32" + "text": "If a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-sparseImageInt64Atomics-04474", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command" + "text": "If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-sparseImageInt64Atomics-04475", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command" + "text": "If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-OpImageWeightedSampleQCOM-06971", - "text": " If OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-OpImageWeightedSampleQCOM-06972", - "text": " If OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-OpImageBoxFilterQCOM-06973", - "text": " If OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM" + "text": "If OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-OpImageBlockMatchSSDQCOM-06974", - "text": " If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM" + "text": "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-OpImageBlockMatchSADQCOM-06975", - "text": " If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM" + "text": "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-OpImageBlockMatchSADQCOM-06976", - "text": " If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation" + "text": "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-OpImageWeightedSampleQCOM-06977", - "text": " If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-OpImageWeightedSampleQCOM-06978", - "text": " If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM" + "text": "If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMultiIndexedEXT-OpImageBlockMatchWindow-09215", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMultiIndexedEXT-OpImageBlockMatchWindow-09216", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view’s format must be a single-component format.", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMultiIndexedEXT-OpImageBlockMatchWindow-09217", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07288", - "text": " Any shader invocation executed by this command must terminate" + "text": "Any shader invocation executed by this command must terminate", + "page": "vkspec" }, { "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" + "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", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-subpass-02685", - "text": " The subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS" + "text": "The subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07748", - "text": " If any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set" + "text": "If any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-OpTypeImage-07468", - "text": " If any shader executed by this pipeline accesses an OpTypeImage variable with a Dim operand of SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass" + "text": "If any shader executed by this pipeline accesses an OpTypeImage variable with a Dim operand of SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07469", - "text": " Input attachment views accessed in a subpass must be created with the same VkFormat as the corresponding subpass definition, and be created with a VkImageView that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound VkFramebuffer as specified by Fragment Input Attachment Compatibility" + "text": "Input attachment views accessed in a subpass must be created with the same VkFormat as the corresponding subpass definition, and be created with a VkImageView that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound VkFramebuffer as specified by Fragment Input Attachment Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-06537", - "text": " Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command" + "text": "Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command", + "page": "vkspec" }, { "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
" + "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
", + "page": "vkspec" }, { "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
" + "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
", + "page": "vkspec" }, { "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
" + "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-09003", - "text": " If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command" + "text": "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-06539", - "text": " If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment" + "text": "If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-06886", - "text": " If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled" + "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-06887", - "text": " If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back writeMask are not zero, and stencil test is enabled, all stencil ops must be VK_STENCIL_OP_KEEP" + "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back writeMask are not zero, and stencil test is enabled, all stencil ops must be VK_STENCIL_OP_KEEP", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07831", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07832", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07833", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08617", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08618", - "text": " If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08619", - "text": " If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07834", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08620", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07835", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08621", - "text": " If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07836", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled, and if the current depthBoundsTestEnable state is VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08622", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07837", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08623", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07838", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled then vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08624", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07839", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled then vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08625", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-maxMultiviewInstanceIndex-02688", - "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex" + "text": "If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-02689", - "text": " If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set" + "text": "If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-06666", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08626", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetSampleLocationsEnableEXT in the current command buffer set sampleLocationsEnable to VK_TRUE, vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetSampleLocationsEnableEXT in the current command buffer set sampleLocationsEnable to VK_TRUE, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsPerPixel-07934", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07840", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08627", - "text": " If a shader object is bound to any graphics stage, vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07841", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08628", - "text": " If a shader object is bound to any graphics stage, vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07843", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08629", - "text": " If a shader object is bound to any graphics stage, vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07844", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08630", - "text": " If a shader object is bound to any graphics stage, vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07845", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08631", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthTestEnable in the current command buffer set depthTestEnable to VK_TRUE, vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetDepthTestEnable in the current command buffer set depthTestEnable to VK_TRUE, then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07846", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled then vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled then vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08632", - "text": " If a shader object is bound to any graphics stage, and the depthBounds feature is enabled, the vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the depthBounds feature is enabled, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07847", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08633", - "text": " If 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, then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07848", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08634", - "text": " If 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 vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-viewportCount-03417", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-scissorCount-03418", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the scissorCount parameter of vkCmdSetScissorWithCount must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the scissorCount parameter of vkCmdSetScissorWithCount must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-viewportCount-03419", - "text": " If the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount" + "text": "If the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08635", - "text": " If a shader object is bound to any graphics stage, then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount" + "text": "If a shader object is bound to any graphics stage, then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-viewportCount-04137", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-viewportCount-04138", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-09232", + "text": "If a shader object is bound to any graphics stage, and the VK_NV_clip_space_w_scaling extension is enabled on the device, then vkCmdSetViewportWScalingNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08636", - "text": " If a shader object is bound to any graphics stage, and the VK_NV_clip_space_w_scaling extension is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If a shader object is bound to any graphics stage, and the VK_NV_clip_space_w_scaling extension is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-viewportCount-04139", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-viewportCount-04140", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMultiIndexedEXT-shadingRateImage-09233", + "text": "If the shadingRateImage feature is enabled, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoarseSampleOrderNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMultiIndexedEXT-shadingRateImage-09234", + "text": "If a shader object is bound to any graphics stage, and the shadingRateImage feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetShadingRateImageEnableNV in the current command buffer set shadingRateImageEnable to VK_TRUE, then vkCmdSetViewportShadingRatePaletteNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08637", - "text": " If a shader object is bound to any graphics stage, and the shadingRateImage feature is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If a shader object is bound to any graphics stage, and the shadingRateImage feature is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-VkPipelineVieportCreateInfo-04141", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportSwizzleStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportSwizzleStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-VkPipelineVieportCreateInfo-04142", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportExclusiveScissorStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportExclusiveScissorStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07878", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07879", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMultiIndexedEXT-exclusiveScissor-09235", + "text": "If a shader object is bound to any graphics stage, and the exclusiveScissor feature is enabled, then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08638", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetExclusiveScissorEnableNV in the current command buffer set any element of pExclusiveScissorEnables to VK_TRUE, then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetExclusiveScissorEnableNV in the current command buffer set any element of pExclusiveScissorEnables to VK_TRUE, then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-04876", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08639", - "text": " If a shader object is bound to any graphics stage, then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-04877", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08640", - "text": " If 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, then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-logicOp-04878", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08641", - "text": " If a shader object is bound to any graphics stage, and the logicOp feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the logicOp feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-primitiveFragmentShadingRateWithMultipleViewports-04552", - "text": " If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1" + "text": "If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-primitiveFragmentShadingRateWithMultipleViewports-08642", - "text": " If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and any shader object bound to a graphics stage writes to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1" + "text": "If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and any shader object bound to a graphics stage writes to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-blendEnable-04727", - "text": " If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the blendEnable member of the corresponding element of the pAttachments member of pColorBlendState must be VK_FALSE" + "text": "If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the blendEnable member of the corresponding element of the pAttachments member of pColorBlendState must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08643", - "text": " If 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, then for each color attachment in the render pass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the corresponding member of pColorBlendEnables in the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer that affected that attachment index must have been VK_FALSE" + "text": "If 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, then for each color attachment in the render pass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the corresponding member of pColorBlendEnables in the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer that affected that attachment index must have been VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-multisampledRenderToSingleSampled-07284", - "text": " If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments" + "text": "If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08644", - "text": " If 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 none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then the most recent call to vkCmdSetRasterizationSamplesEXT in the current command buffer must have set rasterizationSamples to be the same as the number of samples for the current render pass color and/or depth/stencil attachments" + "text": "If 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 none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then the most recent call to vkCmdSetRasterizationSamplesEXT in the current command buffer must have set rasterizationSamples to be the same as the number of samples for the current render pass color and/or depth/stencil attachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08876", - "text": " If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering" + "text": "If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-imageView-06172", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-imageView-06173", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-imageView-06174", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, this command must not write any values to the depth attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, this command must not write any values to the depth attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-imageView-06175", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-imageView-06176", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-imageView-06177", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-viewMask-06178", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::viewMask equal to VkRenderingInfo::viewMask" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::viewMask equal to VkRenderingInfo::viewMask", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-06179", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::colorAttachmentCount equal to VkRenderingInfo::colorAttachmentCount" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::colorAttachmentCount equal to VkRenderingInfo::colorAttachmentCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-dynamicRenderingUnusedAttachments-08910", - "text": " If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline" + "text": "If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-dynamicRenderingUnusedAttachments-08911", - "text": " If the dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats, if it exists, must be VK_FORMAT_UNDEFINED" + "text": "If the dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats, if it exists, must be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-dynamicRenderingUnusedAttachments-08912", - "text": " If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED" + "text": "If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED", + "page": "vkspec" + }, + { + "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 currently bound graphics pipeline", + "page": "vkspec" + }, + { + "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 currently bound graphics pipeline", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-09364", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled, then vkCmdSetColorBlendEnableEXT must have set the blend enable to VK_FALSE prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-09365", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-09368", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-09369", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07749", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08646", - "text": " If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the fragment stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-attachmentCount-07750", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the attachmentCount parameter of vkCmdSetColorWriteEnableEXT must be greater than or equal to the VkPipelineColorBlendStateCreateInfo::attachmentCount of the currently bound graphics pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the attachmentCount parameter of vkCmdSetColorWriteEnableEXT must be greater than or equal to the VkPipelineColorBlendStateCreateInfo::attachmentCount of the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08647", - "text": " If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the fragment stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the attachmentCount parameter of most recent call to vkCmdSetColorWriteEnableEXT in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance" + "text": "If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the attachmentCount parameter of most recent call to vkCmdSetColorWriteEnableEXT in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07751", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07880", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMultiIndexedEXT-rasterizerDiscardEnable-09236", + "text": "If the VK_EXT_discard_rectangles extension is 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, then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08648", - "text": " If the VK_EXT_discard_rectangles extension is 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, then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_discard_rectangles extension is 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, then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07881", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08649", - "text": " If the VK_EXT_discard_rectangles extension is 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 vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_discard_rectangles extension is 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 vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-dynamicRenderingUnusedAttachments-08913", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-dynamicRenderingUnusedAttachments-08914", - "text": " If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView" + "text": "If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-dynamicRenderingUnusedAttachments-08915", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-dynamicRenderingUnusedAttachments-08916", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-dynamicRenderingUnusedAttachments-08917", - "text": " If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView" + "text": "If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-dynamicRenderingUnusedAttachments-08918", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-imageView-06183", - "text": " If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentShadingRateAttachmentInfoKHR::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR" + "text": "If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentShadingRateAttachmentInfoKHR::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-imageView-06184", - "text": " If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT" + "text": "If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-06185", - "text": " If the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline" + "text": "If the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-pDepthAttachment-06186", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-pStencilAttachment-06187", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-multisampledRenderToSingleSampled-07285", - "text": " If the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of rasterizationSamples for the currently bound graphics pipeline" + "text": "If the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of rasterizationSamples for the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-multisampledRenderToSingleSampled-07286", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-multisampledRenderToSingleSampled-07287", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-pNext-07935", - "text": " If this command has been called inside a render pass instance started with vkCmdBeginRendering, and the pNext chain of VkRenderingInfo includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the value of rasterizationSamples for the currently bound graphics pipeline must be equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples" + "text": "If this command has been called inside a render pass instance started with vkCmdBeginRendering, and the pNext chain of VkRenderingInfo includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the value of rasterizationSamples for the currently bound graphics pipeline must be equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-renderPass-06198", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline must have been created with a VkGraphicsPipelineCreateInfo::renderPass equal to VK_NULL_HANDLE" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline must have been created with a VkGraphicsPipelineCreateInfo::renderPass equal to VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-pColorAttachments-08963", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the VkRenderingInfo::pColorAttachments->imageView was not VK_NULL_HANDLE, then the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the pipeline must not be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the VkRenderingInfo::pColorAttachments->imageView was not VK_NULL_HANDLE, then the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the pipeline must not be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-pDepthAttachment-08964", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-pStencilAttachment-08965", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, stencil test is enabled and the VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, stencil test is enabled and the VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-primitivesGeneratedQueryWithRasterizerDiscard-06708", - "text": " If the primitivesGeneratedQueryWithRasterizerDiscard feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, rasterization discard must not be enabled" + "text": "If the primitivesGeneratedQueryWithRasterizerDiscard feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, rasterization discard must not be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-primitivesGeneratedQueryWithNonZeroStreams-06709", - "text": " If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, the bound graphics pipeline must not have been created with a non-zero value in VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream" + "text": "If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, the bound graphics pipeline must not have been created with a non-zero value in VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07619", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07620", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-09237", + "text": "If a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08650", - "text": " If the depthClamp feature is 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, then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the depthClamp feature is 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, then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07621", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08651", - "text": " If 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, then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07622", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08652", - "text": " If 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, then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07623", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08653", - "text": " If 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, then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07624", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-alphaToCoverageEnable-08919", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and alphaToCoverageEnable was VK_TRUE in the last call to vkCmdSetAlphaToCoverageEnableEXT, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and alphaToCoverageEnable was VK_TRUE in the last call to vkCmdSetAlphaToCoverageEnableEXT, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08654", - "text": " If 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, then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-alphaToCoverageEnable-08920", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetAlphaToCoverageEnableEXT in the current command buffer set alphaToCoverageEnable to VK_TRUE, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetAlphaToCoverageEnableEXT in the current command buffer set alphaToCoverageEnable to VK_TRUE, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07625", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08655", - "text": " If the alphaToOne feature is 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, then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the alphaToOne feature is 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, then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07626", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08656", - "text": " If the logicOp feature is 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, then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the logicOp feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07627", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08657", - "text": " If 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, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07628", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08658", - "text": " If 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 vkCmdSetColorBlendEnableEXT for any attachment set that attachment’s value in pColorBlendEnables to VK_TRUE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetColorBlendEnableEXT for any attachment set that attachment’s value in pColorBlendEnables to VK_TRUE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07629", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08659", - "text": " If 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, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07630", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08660", - "text": " If the geometryStreams feature is enabled, and a shader object is bound to the geometry stage, then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the geometryStreams feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_GEOMETRY_BIT stage, then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07631", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08661", - "text": " If the VK_EXT_conservative_rasterization extension is 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, then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_conservative_rasterization extension is 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, then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07632", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08662", - "text": " If the VK_EXT_conservative_rasterization extension is 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 vkCmdSetConservativeRasterizationModeEXT in the current command buffer set conservativeRasterizationMode to VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_conservative_rasterization extension is 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 vkCmdSetConservativeRasterizationModeEXT in the current command buffer set conservativeRasterizationMode to VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07633", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08663", - "text": " If the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07634", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08664", - "text": " If the VK_EXT_sample_locations extension is 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, then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_sample_locations extension is 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, then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07635", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07636", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08665", - "text": " If the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the vertex stage, then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "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 in the current command buffer prior to this drawing command" + "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 in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08666", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08667", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08668", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "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 in the current command buffer prior to this drawing command" + "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 in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08669", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08670", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08671", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07849", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_EXT dynamic state enabled then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_EXT dynamic state enabled then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08672", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetLineStippleEnableEXT in the current command buffer set stippledLineEnable to VK_TRUE, then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetLineStippleEnableEXT in the current command buffer set stippledLineEnable to VK_TRUE, then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07639", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08673", - "text": " If the depthClipControl feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the depthClipControl feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07640", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08674", - "text": " If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07641", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08675", - "text": " If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07642", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08676", - "text": " If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07643", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08677", - "text": " If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetCoverageToColorEnableNV in the current command buffer set coverageToColorEnable to VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetCoverageToColorEnableNV in the current command buffer set coverageToColorEnable to VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07644", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08678", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_framebuffer_mixed_samples extension is 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, then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07645", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08679", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_framebuffer_mixed_samples extension is 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 vkCmdSetCoverageModulationModeNV in the current command buffer set coverageModulationMode to any value other than VK_COVERAGE_MODULATION_MODE_NONE_NV, then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07646", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08680", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetCoverageModulationTableEnableNV in the current command buffer set coverageModulationTableEnable to VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_framebuffer_mixed_samples extension is 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 vkCmdSetCoverageModulationTableEnableNV in the current command buffer set coverageModulationTableEnable to VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07647", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMultiIndexedEXT-pipelineFragmentShadingRate-09238", + "text": "If the pipelineFragmentShadingRate feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetFragmentShadingRateKHR must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08681", - "text": " If the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the shadingRateImage feature is 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, then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07648", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08682", - "text": " If the representativeFragmentTest feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the representativeFragmentTest feature is 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, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07649", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08683", - "text": " If the coverageReductionMode feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the coverageReductionMode feature is 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, then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-pColorBlendEnables-07470", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT state enabled and the last call to vkCmdSetColorBlendEnableEXT set pColorBlendEnables for any attachment to VK_TRUE, then for those attachments in the subpass the corresponding image view’s format features must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT state enabled and the last call to vkCmdSetColorBlendEnableEXT set pColorBlendEnables for any attachment to VK_TRUE, then for those attachments in the subpass the corresponding image view’s format features must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-rasterizationSamples-07471", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must follow the rules for a zero-attachment subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must follow the rules for a zero-attachment subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-samples-07472", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the VkPipelineMultisampleStateCreateInfo::rasterizationSamples parameter used to create the bound graphics pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the VkPipelineMultisampleStateCreateInfo::rasterizationSamples parameter used to create the bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-samples-07473", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the rasterizationSamples parameter in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the rasterizationSamples parameter in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { - "vuid": "VUID-vkCmdDrawMultiIndexedEXT-multisampledRenderToSingleSampled-07475", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and none of the VK_AMD_mixed_attachment_samples extension, VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the current subpass color and/or depth/stencil attachments" + "vuid": "VUID-vkCmdDrawMultiIndexedEXT-rasterizationSamples-07474", + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples extensions are enabled, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the current subpass color and/or depth/stencil attachments", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-09211", + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the rasterizationSamples member of that structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-firstAttachment-07476", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-firstAttachment-07477", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-firstAttachment-07478", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-firstAttachment-07479", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-advancedBlendMaxColorAttachments-07480", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT and VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic states enabled and the last calls to vkCmdSetColorBlendEnableEXT and vkCmdSetColorBlendAdvancedEXT have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed advancedBlendMaxColorAttachments" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT and VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic states enabled and the last calls to vkCmdSetColorBlendEnableEXT and vkCmdSetColorBlendAdvancedEXT have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed advancedBlendMaxColorAttachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-primitivesGeneratedQueryWithNonZeroStreams-07481", - "text": " If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, and the bound graphics pipeline was created with VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT state enabled, the last call to vkCmdSetRasterizationStreamEXT must have set the rasterizationStream to zero" + "text": "If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, and the bound graphics pipeline was created with VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT state enabled, the last call to vkCmdSetRasterizationStreamEXT must have set the rasterizationStream to zero", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsPerPixel-07482", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsPerPixel-07483", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples parameter of the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples parameter of the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-07484", - "text": " If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set" + "text": "If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-07485", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.width in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.width in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-07486", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.height in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.height in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-07487", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, the fragment shader code must not statically use the extended instruction InterpolateAtSample" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, the fragment shader code must not statically use the extended instruction InterpolateAtSample", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-07936", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.width must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.width must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-07937", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.height must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.height must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-07938", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-coverageModulationTableEnable-07488", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-rasterizationSamples-07489", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment" + "text": "If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-coverageToColorEnable-07490", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-coverageReductionMode-07491", - "text": " If this VK_NV_coverage_reduction_mode extension is enabled, the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, the current coverage reduction mode coverageReductionMode, then the current rasterizationSamples, and the sample counts for the color and depth/stencil attachments (if the subpass has them) must be a valid combination returned by vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV" + "text": "If this VK_NV_coverage_reduction_mode extension is enabled, the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, the current coverage reduction mode coverageReductionMode, then the current rasterizationSamples, and the sample counts for the color and depth/stencil attachments (if the subpass has them) must be a valid combination returned by vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-viewportCount-07492", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-viewportCount-07493", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-rasterizationSamples-07494", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE" + "text": "If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-stippledLineEnable-07495", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-stippledLineEnable-07496", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-stippledLineEnable-07497", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-stippledLineEnable-07498", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-conservativePointAndLineRasterization-07499", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, conservativePointAndLineRasterization is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the conservativeRasterizationMode set by the last call to vkCmdSetConservativeRasterizationModeEXT must be VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, conservativePointAndLineRasterization is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the conservativeRasterizationMode set by the last call to vkCmdSetConservativeRasterizationModeEXT must be VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-stage-07073", - "text": " If the currently bound pipeline was created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT, then Mesh Shader Queries must not be active" + "text": "If the currently bound pipeline was created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT, then Mesh Shader Queries must not be active", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08877", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07850", - "text": " If dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command" + "text": "If dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08684", - "text": " If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_VERTEX_BIT" + "text": "If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_VERTEX_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08685", - "text": " If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT" + "text": "If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08686", - "text": " If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT" + "text": "If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08687", - "text": " If there is no bound graphics pipeline, and the geometryShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_GEOMETRY_BIT" + "text": "If there is no bound graphics pipeline, and the geometryShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_GEOMETRY_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08688", - "text": " If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_FRAGMENT_BIT" + "text": "If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_FRAGMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08689", - "text": " If there is no bound graphics pipeline, and the taskShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TASK_BIT_EXT" + "text": "If there is no bound graphics pipeline, and the taskShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TASK_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08690", - "text": " If there is no bound graphics pipeline, and the meshShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_MESH_BIT_EXT" + "text": "If there is no bound graphics pipeline, and the meshShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_MESH_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08693", - "text": " If there is no bound graphics pipeline, and at least one of the taskShader and meshShader features is enabled, one of the VK_SHADER_STAGE_VERTEX_BIT or VK_SHADER_STAGE_MESH_BIT_EXT stages must have a valid VkShaderEXT bound, and the other must have no VkShaderEXT bound" + "text": "If there is no bound graphics pipeline, and at least one of the taskShader and meshShader features is enabled, one of the VK_SHADER_STAGE_VERTEX_BIT or VK_SHADER_STAGE_MESH_BIT_EXT stages must have a valid VkShaderEXT bound, and the other must have no VkShaderEXT bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08694", - "text": " If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created without the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, a valid VkShaderEXT must be bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage" + "text": "If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created without the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, a valid VkShaderEXT must be bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08695", - "text": " If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created with the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, there must be no VkShaderEXT bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage" + "text": "If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created with the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, there must be no VkShaderEXT bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08696", - "text": " If there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage" + "text": "If there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08698", - "text": " If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound" + "text": "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08699", - "text": " If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound" + "text": "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08878", - "text": " All bound graphics shader objects must have been created with identical or identically defined push constant ranges" + "text": "All bound graphics shader objects must have been created with identical or identically defined push constant ranges", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08879", - "text": " All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts" + "text": "All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08880", - "text": " If there is no bound graphics pipeline and the attachmentFeedbackLoopDynamicState feature is enabled on the device, vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage and the attachmentFeedbackLoopDynamicState feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-pDynamicStates-08715", - "text": " If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable parameter in the last call to vkCmdSetDepthWriteEnable must be VK_FALSE" + "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable parameter in the last call to vkCmdSetDepthWriteEnable must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-pDynamicStates-08716", - "text": " If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_STENCIL_WRITE_MASK set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the writeMask parameter in the last call to vkCmdSetStencilWriteMask must be 0" + "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_STENCIL_WRITE_MASK set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the writeMask parameter in the last call to vkCmdSetStencilWriteMask must be 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-09116", - "text": " If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them" + "text": "If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMultiIndexedEXT-maxFragmentDualSrcAttachments-09239", + "text": "If blending is enabled for any attachment where either the source or destination blend factors for that attachment use the secondary color input, the maximum value of Location for any output attachment statically used in the Fragment Execution Model executed by this command must be less than maxFragmentDualSrcAttachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-02712", - "text": " If commandBuffer is a protected command buffer and protectedNoFault is not supported, any resource written to by the VkPipeline object bound to the pipeline bind point used by this command must not be an unprotected resource" + "text": "If commandBuffer is a protected command buffer and protectedNoFault is not supported, any resource written to by the VkPipeline object bound to the pipeline bind point used by this command must not be an unprotected resource", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-02713", - "text": " If commandBuffer is a protected command buffer and protectedNoFault is not supported, pipeline stages other than the framebuffer-space and compute stages in the VkPipeline object bound to the pipeline bind point used by this command must not write to any resource" + "text": "If commandBuffer is a protected command buffer and protectedNoFault is not supported, pipeline stages other than the framebuffer-space and compute stages in the VkPipeline object bound to the pipeline bind point used by this command must not write to any resource", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-04617", - "text": " If any of the shader stages of the VkPipeline bound to the pipeline bind point used by this command uses the RayQueryKHR capability, then commandBuffer must not be a protected command buffer" + "text": "If any of the shader stages of the VkPipeline bound to the pipeline bind point used by this command uses the RayQueryKHR capability, then commandBuffer must not be a protected command buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-04007", - "text": " All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must have either valid or VK_NULL_HANDLE buffers bound" + "text": "All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must have either valid or VK_NULL_HANDLE buffers bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-04008", - "text": " If the nullDescriptor feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must not be VK_NULL_HANDLE" + "text": "If the nullDescriptor feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must not be VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-02721", - "text": " For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description" + "text": "For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07842", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state enabled then vkCmdSetPrimitiveTopology must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state enabled then vkCmdSetPrimitiveTopology must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-dynamicPrimitiveTopologyUnrestricted-07500", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state enabled and the dynamicPrimitiveTopologyUnrestricted is VK_FALSE, then the primitiveTopology parameter of vkCmdSetPrimitiveTopology must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state enabled and the dynamicPrimitiveTopologyUnrestricted is VK_FALSE, then the primitiveTopology parameter of vkCmdSetPrimitiveTopology must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-04912", - "text": " If the bound graphics pipeline was created with both the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT and VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic states enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command" + "text": "If the bound graphics pipeline was created with both the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT and VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic states enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-pStrides-04913", - "text": " If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdBindVertexBuffers2EXT must have been called in the current command buffer prior to this draw command, and the pStrides parameter of vkCmdBindVertexBuffers2EXT must not be NULL" + "text": "If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdBindVertexBuffers2EXT must have been called in the current command buffer prior to this draw command, and the pStrides parameter of vkCmdBindVertexBuffers2EXT must not be NULL", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08881", - "text": " If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetPrimitiveTopology must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetPrimitiveTopology must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-04914", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-Input-07939", - "text": " If 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 {ExecutionModel} OpEntryPoint must contain a location in VkVertexInputAttributeDescription2EXT::location" + "text": "If 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": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-Input-08734", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then the numeric type associated with all Input variables of the corresponding Location in the Vertex {ExecutionModel} OpEntryPoint must be the same as VkVertexInputAttributeDescription2EXT::format" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then the numeric type associated with all Input variables of the corresponding Location in the Vertex Execution Model OpEntryPoint must be the same as VkVertexInputAttributeDescription2EXT::format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-format-08936", - "text": " If there is a shader object bound to a graphics stage or the currently bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, and VkVertexInputAttributeDescription2EXT::format has a 64-bit component, then the scalar width associated with all Input variables of the corresponding Location in the Vertex {ExecutionModel} OpEntryPoint must be 64-bit" + "text": "If there is a shader object bound to a graphics stage or the currently bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, and VkVertexInputAttributeDescription2EXT::format has a 64-bit component, then the scalar width associated with all Input variables of the corresponding Location in the Vertex Execution Model OpEntryPoint must be 64-bit", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-format-08937", - "text": " If there is a shader object bound to a graphics stage or the currently bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, and the scalar width associated with a Location decorated Input variable in the Vertex {ExecutionModel} OpEntryPoint is 64-bit, then the corresponding VkVertexInputAttributeDescription2EXT::format must have a 64-bit component" + "text": "If there is a shader object bound to a graphics stage or the currently bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, and the scalar width associated with a Location decorated Input variable in the Vertex Execution Model OpEntryPoint is 64-bit, then the corresponding VkVertexInputAttributeDescription2EXT::format must have a 64-bit component", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-09203", - "text": " If there is a shader object bound to a graphics stage or the currently bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, and VkVertexInputAttributeDescription2EXT::format has a 64-bit component, then all Input variables at the corresponding Location in the Vertex {ExecutionModel} OpEntryPoint must not use components that are not present in the format" + "text": "If there is a shader object bound to a graphics stage or the currently bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, and VkVertexInputAttributeDescription2EXT::format has a 64-bit component, then all Input variables at the corresponding Location in the Vertex Execution Model OpEntryPoint must not use components that are not present in the format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08882", - "text": " If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-04875", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT dynamic state enabled then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT dynamic state enabled then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08883", - "text": " If a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-04879", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then vkCmdSetPrimitiveRestartEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then vkCmdSetPrimitiveRestartEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-rasterizerDiscardEnable-08884", - "text": " If 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, vkCmdSetPrimitiveRestartEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, vkCmdSetPrimitiveRestartEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-stage-06481", - "text": " The bound graphics pipeline must not have been created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT" + "text": "The bound graphics pipeline must not have been created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08885", - "text": " There must be no shader object bound to either of the VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT stages" + "text": "There must be no shader object bound to either of the VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT stages", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07312", - "text": " An index buffer must be bound" + "text": "An index buffer must be bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-robustBufferAccess2-07825", - "text": " If robustBufferAccess2 is not enabled, (indexSize {times} (firstIndex + indexCount) + offset) must be less than or equal to the size of the bound index buffer, with indexSize being based on the type specified by indexType, where the index buffer, indexType, and offset are specified via vkCmdBindIndexBuffer" + "text": "If robustBufferAccess2 is not enabled, (indexSize × (firstIndex + indexCount) + offset) must be less than or equal to the size of the bound index buffer, with indexSize being based on the type specified by indexType, where the index buffer, indexType, and offset are specified via vkCmdBindIndexBuffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-robustBufferAccess2-08798", - "text": " If robustBufferAccess2 is not enabled, (indexSize {times} (firstIndex + indexCount) + offset) must be less than or equal to the size of the bound index buffer, with indexSize being based on the type specified by indexType, where the index buffer, indexType, and offset are specified via vkCmdBindIndexBuffer or vkCmdBindIndexBuffer2KHR. If vkCmdBindIndexBuffer2KHR is used to bind the index buffer, the size of the bound index buffer is vkCmdBindIndexBuffer2KHR::size" + "text": "If robustBufferAccess2 is not enabled, (indexSize × (firstIndex + indexCount) + offset) must be less than or equal to the size of the bound index buffer, with indexSize being based on the type specified by indexType, where the index buffer, indexType, and offset are specified via vkCmdBindIndexBuffer or vkCmdBindIndexBuffer2KHR. If vkCmdBindIndexBuffer2KHR is used to bind the index buffer, the size of the bound index buffer is vkCmdBindIndexBuffer2KHR::size", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-04937", - "text": " The multiDraw feature must be enabled" + "text": "The multiDraw feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-drawCount-04939", - "text": " drawCount must be less than VkPhysicalDeviceMultiDrawPropertiesEXT::maxMultiDrawCount" + "text": "drawCount must be less than VkPhysicalDeviceMultiDrawPropertiesEXT::maxMultiDrawCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-drawCount-04940", - "text": " If drawCount is greater than zero, pIndexInfo must be a valid pointer to memory containing one or more valid instances of VkMultiDrawIndexedInfoEXT structures" + "text": "If drawCount is greater than zero, pIndexInfo must be a valid pointer to memory containing one or more valid instances of VkMultiDrawIndexedInfoEXT structures", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-stride-04941", - "text": " stride must be a multiple of 4" + "text": "stride must be a multiple of 4", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-pVertexOffset-parameter", - "text": " If pVertexOffset is not NULL, pVertexOffset must be a valid pointer to a valid int32_t value" + "text": "If pVertexOffset is not NULL, pVertexOffset must be a valid pointer to a valid int32_t value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-renderpass", - "text": " This command must only be called inside of a render pass instance" + "text": "This command must only be called inside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -36602,1351 +46874,1818 @@ "core": [ { "vuid": "VUID-vkCmdDrawIndirect-magFilter-04553", - "text": " If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + "text": "If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-mipmapMode-04770", - "text": " If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + "text": "If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-06479", - "text": " If a VkImageView is sampled with depth comparison, the image view’s format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT" + "text": "If a VkImageView is sampled with depth comparison, the image view’s format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-02691", - "text": " If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT" + "text": "If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07888", - "text": " If a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer’s format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT" + "text": "If a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer’s format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-02692", - "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" + "text": "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-02693", - "text": " If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" + "text": "If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-filterCubic-02694", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" + "text": "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-filterCubicMinmax-02695", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" + "text": "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirect-cubicRangeClamp-09212", + "text": "If the cubicRangeClamp feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command
\n
\n
must not have a VkSamplerReductionModeCreateInfo
\n
\n

reductionMode equal to\nVK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM

\n
\n
\n
", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirect-reductionMode-09213", + "text": "Any VkImageView being sampled with a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM as a result of this command must sample with VK_FILTER_CUBIC_EXT", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirect-selectableCubicWeights-09214", + "text": "If the selectableCubicWeights feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have VkSamplerCubicWeightsCreateInfoQCOM::cubicWeights equal to VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-flags-02696", - "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE" + "text": "Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-OpTypeImage-07027", - "text": " For any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT" + "text": "For any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-OpTypeImage-07028", - "text": " For any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT" + "text": "For any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-OpTypeImage-07029", - "text": " For any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT" + "text": "For any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-OpTypeImage-07030", - "text": " Any VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT" + "text": "Any VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08600", - "text": " For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08601", - "text": " For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-maintenance4-08602", - "text": " If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08114", - "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08115", - "text": " If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08116", - "text": " Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08604", - "text": " Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command" + "text": "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08117", - "text": " If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08119", - "text": " If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident" + "text": "If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08605", - "text": " If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident" + "text": "If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08606", - "text": " If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command" + "text": "If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08607", - "text": " If the shaderObject is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command" + "text": "If the shaderObject is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08608", - "text": " If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound" + "text": "If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08609", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08610", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08611", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-uniformBuffers-06935", - "text": " If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08612", - "text": " If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-storageBuffers-06936", - "text": " If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08613", - "text": " If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-commandBuffer-02707", - "text": " If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource" + "text": "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-06550", - "text": " If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions" + "text": "If a bound shader accesses a VkSampler or VkImageView object that enables sampler Y′CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-ConstOffset-06551", - "text": " If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands" + "text": "If a bound shader accesses a VkSampler or VkImageView object that enables sampler Y′CBCR conversion, that object must not use the ConstOffset and Offset operands", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-viewType-07752", - "text": " If a VkImageView is accessed as a result of this command, then the image view’s viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation" + "text": "If a VkImageView is accessed as a result of this command, then the image view’s viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-format-07753", - "text": " If a VkImageView is accessed as a result of this command, then the numeric type of the image view’s format and the Sampled Type operand of the OpTypeImage must match" + "text": "If a VkImageView is accessed as a result of this command, then the numeric type of the image view’s format and the Sampled Type operand of the OpTypeImage must match", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-OpImageWrite-08795", - "text": " If a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format" + "text": "If a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-OpImageWrite-08796", - "text": " If a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components" + "text": "If a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-OpImageWrite-04469", - "text": " If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view’s format" + "text": "If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view’s format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-SampledType-04470", - "text": " If a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64" + "text": "If a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-SampledType-04471", - "text": " If a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32" + "text": "If a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-SampledType-04472", - "text": " If a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64" + "text": "If a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-SampledType-04473", - "text": " If a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32" + "text": "If a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-sparseImageInt64Atomics-04474", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command" + "text": "If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-sparseImageInt64Atomics-04475", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command" + "text": "If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-OpImageWeightedSampleQCOM-06971", - "text": " If OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-OpImageWeightedSampleQCOM-06972", - "text": " If OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-OpImageBoxFilterQCOM-06973", - "text": " If OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM" + "text": "If OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-OpImageBlockMatchSSDQCOM-06974", - "text": " If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM" + "text": "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-OpImageBlockMatchSADQCOM-06975", - "text": " If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM" + "text": "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-OpImageBlockMatchSADQCOM-06976", - "text": " If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation" + "text": "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-OpImageWeightedSampleQCOM-06977", - "text": " If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-OpImageWeightedSampleQCOM-06978", - "text": " If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM" + "text": "If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirect-OpImageBlockMatchWindow-09215", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirect-OpImageBlockMatchWindow-09216", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view’s format must be a single-component format.", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirect-OpImageBlockMatchWindow-09217", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07288", - "text": " Any shader invocation executed by this command must terminate" + "text": "Any shader invocation executed by this command must terminate", + "page": "vkspec" }, { "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" + "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", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-subpass-02685", - "text": " The subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS" + "text": "The subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07748", - "text": " If any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set" + "text": "If any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-OpTypeImage-07468", - "text": " If any shader executed by this pipeline accesses an OpTypeImage variable with a Dim operand of SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass" + "text": "If any shader executed by this pipeline accesses an OpTypeImage variable with a Dim operand of SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07469", - "text": " Input attachment views accessed in a subpass must be created with the same VkFormat as the corresponding subpass definition, and be created with a VkImageView that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound VkFramebuffer as specified by Fragment Input Attachment Compatibility" + "text": "Input attachment views accessed in a subpass must be created with the same VkFormat as the corresponding subpass definition, and be created with a VkImageView that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound VkFramebuffer as specified by Fragment Input Attachment Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-06537", - "text": " Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command" + "text": "Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command", + "page": "vkspec" }, { "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
" + "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
", + "page": "vkspec" }, { "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
" + "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
", + "page": "vkspec" }, { "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
" + "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-09003", - "text": " If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command" + "text": "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-06539", - "text": " If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment" + "text": "If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-06886", - "text": " If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled" + "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-06887", - "text": " If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back writeMask are not zero, and stencil test is enabled, all stencil ops must be VK_STENCIL_OP_KEEP" + "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back writeMask are not zero, and stencil test is enabled, all stencil ops must be VK_STENCIL_OP_KEEP", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07831", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07832", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07833", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08617", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08618", - "text": " If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08619", - "text": " If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07834", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08620", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07835", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08621", - "text": " If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07836", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled, and if the current depthBoundsTestEnable state is VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08622", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07837", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08623", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07838", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled then vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08624", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07839", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled then vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08625", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-maxMultiviewInstanceIndex-02688", - "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex" + "text": "If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-sampleLocationsEnable-02689", - "text": " If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set" + "text": "If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-06666", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08626", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetSampleLocationsEnableEXT in the current command buffer set sampleLocationsEnable to VK_TRUE, vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetSampleLocationsEnableEXT in the current command buffer set sampleLocationsEnable to VK_TRUE, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-sampleLocationsPerPixel-07934", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07840", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08627", - "text": " If a shader object is bound to any graphics stage, vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07841", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08628", - "text": " If a shader object is bound to any graphics stage, vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07843", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08629", - "text": " If a shader object is bound to any graphics stage, vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07844", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08630", - "text": " If a shader object is bound to any graphics stage, vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07845", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08631", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthTestEnable in the current command buffer set depthTestEnable to VK_TRUE, vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetDepthTestEnable in the current command buffer set depthTestEnable to VK_TRUE, then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07846", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled then vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled then vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08632", - "text": " If a shader object is bound to any graphics stage, and the depthBounds feature is enabled, the vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the depthBounds feature is enabled, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07847", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08633", - "text": " If 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, then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07848", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08634", - "text": " If 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 vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-viewportCount-03417", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-scissorCount-03418", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the scissorCount parameter of vkCmdSetScissorWithCount must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the scissorCount parameter of vkCmdSetScissorWithCount must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-viewportCount-03419", - "text": " If the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount" + "text": "If the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08635", - "text": " If a shader object is bound to any graphics stage, then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount" + "text": "If a shader object is bound to any graphics stage, then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-viewportCount-04137", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-viewportCount-04138", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirect-None-09232", + "text": "If a shader object is bound to any graphics stage, and the VK_NV_clip_space_w_scaling extension is enabled on the device, then vkCmdSetViewportWScalingNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08636", - "text": " If a shader object is bound to any graphics stage, and the VK_NV_clip_space_w_scaling extension is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If a shader object is bound to any graphics stage, and the VK_NV_clip_space_w_scaling extension is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-viewportCount-04139", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-viewportCount-04140", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirect-shadingRateImage-09233", + "text": "If the shadingRateImage feature is enabled, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoarseSampleOrderNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirect-shadingRateImage-09234", + "text": "If a shader object is bound to any graphics stage, and the shadingRateImage feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetShadingRateImageEnableNV in the current command buffer set shadingRateImageEnable to VK_TRUE, then vkCmdSetViewportShadingRatePaletteNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08637", - "text": " If a shader object is bound to any graphics stage, and the shadingRateImage feature is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If a shader object is bound to any graphics stage, and the shadingRateImage feature is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-VkPipelineVieportCreateInfo-04141", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportSwizzleStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportSwizzleStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-VkPipelineVieportCreateInfo-04142", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportExclusiveScissorStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportExclusiveScissorStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07878", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07879", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirect-exclusiveScissor-09235", + "text": "If a shader object is bound to any graphics stage, and the exclusiveScissor feature is enabled, then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08638", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetExclusiveScissorEnableNV in the current command buffer set any element of pExclusiveScissorEnables to VK_TRUE, then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetExclusiveScissorEnableNV in the current command buffer set any element of pExclusiveScissorEnables to VK_TRUE, then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-04876", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08639", - "text": " If a shader object is bound to any graphics stage, then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-04877", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08640", - "text": " If 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, then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-logicOp-04878", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08641", - "text": " If a shader object is bound to any graphics stage, and the logicOp feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the logicOp feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-primitiveFragmentShadingRateWithMultipleViewports-04552", - "text": " If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1" + "text": "If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-primitiveFragmentShadingRateWithMultipleViewports-08642", - "text": " If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and any shader object bound to a graphics stage writes to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1" + "text": "If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and any shader object bound to a graphics stage writes to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-blendEnable-04727", - "text": " If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the blendEnable member of the corresponding element of the pAttachments member of pColorBlendState must be VK_FALSE" + "text": "If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the blendEnable member of the corresponding element of the pAttachments member of pColorBlendState must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08643", - "text": " If 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, then for each color attachment in the render pass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the corresponding member of pColorBlendEnables in the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer that affected that attachment index must have been VK_FALSE" + "text": "If 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, then for each color attachment in the render pass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the corresponding member of pColorBlendEnables in the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer that affected that attachment index must have been VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-multisampledRenderToSingleSampled-07284", - "text": " If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments" + "text": "If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08644", - "text": " If 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 none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then the most recent call to vkCmdSetRasterizationSamplesEXT in the current command buffer must have set rasterizationSamples to be the same as the number of samples for the current render pass color and/or depth/stencil attachments" + "text": "If 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 none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then the most recent call to vkCmdSetRasterizationSamplesEXT in the current command buffer must have set rasterizationSamples to be the same as the number of samples for the current render pass color and/or depth/stencil attachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08876", - "text": " If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering" + "text": "If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-imageView-06172", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-imageView-06173", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-imageView-06174", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, this command must not write any values to the depth attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, this command must not write any values to the depth attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-imageView-06175", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-imageView-06176", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-imageView-06177", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-viewMask-06178", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::viewMask equal to VkRenderingInfo::viewMask" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::viewMask equal to VkRenderingInfo::viewMask", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-colorAttachmentCount-06179", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::colorAttachmentCount equal to VkRenderingInfo::colorAttachmentCount" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::colorAttachmentCount equal to VkRenderingInfo::colorAttachmentCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08910", - "text": " If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline" + "text": "If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08911", - "text": " If the dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats, if it exists, must be VK_FORMAT_UNDEFINED" + "text": "If the dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats, if it exists, must be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08912", - "text": " If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED" + "text": "If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED", + "page": "vkspec" + }, + { + "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 currently bound graphics pipeline", + "page": "vkspec" + }, + { + "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 currently bound graphics pipeline", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirect-None-09364", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled, then vkCmdSetColorBlendEnableEXT must have set the blend enable to VK_FALSE prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirect-None-09365", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirect-None-09368", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirect-None-09369", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07749", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08646", - "text": " If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the fragment stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-attachmentCount-07750", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the attachmentCount parameter of vkCmdSetColorWriteEnableEXT must be greater than or equal to the VkPipelineColorBlendStateCreateInfo::attachmentCount of the currently bound graphics pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the attachmentCount parameter of vkCmdSetColorWriteEnableEXT must be greater than or equal to the VkPipelineColorBlendStateCreateInfo::attachmentCount of the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08647", - "text": " If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the fragment stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the attachmentCount parameter of most recent call to vkCmdSetColorWriteEnableEXT in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance" + "text": "If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the attachmentCount parameter of most recent call to vkCmdSetColorWriteEnableEXT in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07751", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07880", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirect-rasterizerDiscardEnable-09236", + "text": "If the VK_EXT_discard_rectangles extension is 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, then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08648", - "text": " If the VK_EXT_discard_rectangles extension is 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, then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_discard_rectangles extension is 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, then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07881", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08649", - "text": " If the VK_EXT_discard_rectangles extension is 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 vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_discard_rectangles extension is 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 vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08913", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08914", - "text": " If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView" + "text": "If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08915", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08916", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08917", - "text": " If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView" + "text": "If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08918", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-imageView-06183", - "text": " If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentShadingRateAttachmentInfoKHR::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR" + "text": "If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentShadingRateAttachmentInfoKHR::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-imageView-06184", - "text": " If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT" + "text": "If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-colorAttachmentCount-06185", - "text": " If the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline" + "text": "If the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-pDepthAttachment-06186", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-pStencilAttachment-06187", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-multisampledRenderToSingleSampled-07285", - "text": " If the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of rasterizationSamples for the currently bound graphics pipeline" + "text": "If the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of rasterizationSamples for the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-multisampledRenderToSingleSampled-07286", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-multisampledRenderToSingleSampled-07287", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-pNext-07935", - "text": " If this command has been called inside a render pass instance started with vkCmdBeginRendering, and the pNext chain of VkRenderingInfo includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the value of rasterizationSamples for the currently bound graphics pipeline must be equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples" + "text": "If this command has been called inside a render pass instance started with vkCmdBeginRendering, and the pNext chain of VkRenderingInfo includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the value of rasterizationSamples for the currently bound graphics pipeline must be equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-renderPass-06198", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline must have been created with a VkGraphicsPipelineCreateInfo::renderPass equal to VK_NULL_HANDLE" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline must have been created with a VkGraphicsPipelineCreateInfo::renderPass equal to VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-pColorAttachments-08963", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the VkRenderingInfo::pColorAttachments->imageView was not VK_NULL_HANDLE, then the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the pipeline must not be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the VkRenderingInfo::pColorAttachments->imageView was not VK_NULL_HANDLE, then the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the pipeline must not be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-pDepthAttachment-08964", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-pStencilAttachment-08965", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, stencil test is enabled and the VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, stencil test is enabled and the VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-primitivesGeneratedQueryWithRasterizerDiscard-06708", - "text": " If the primitivesGeneratedQueryWithRasterizerDiscard feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, rasterization discard must not be enabled" + "text": "If the primitivesGeneratedQueryWithRasterizerDiscard feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, rasterization discard must not be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-primitivesGeneratedQueryWithNonZeroStreams-06709", - "text": " If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, the bound graphics pipeline must not have been created with a non-zero value in VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream" + "text": "If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, the bound graphics pipeline must not have been created with a non-zero value in VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07619", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07620", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirect-None-09237", + "text": "If a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08650", - "text": " If the depthClamp feature is 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, then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the depthClamp feature is 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, then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07621", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08651", - "text": " If 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, then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07622", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08652", - "text": " If 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, then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07623", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08653", - "text": " If 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, then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07624", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-alphaToCoverageEnable-08919", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and alphaToCoverageEnable was VK_TRUE in the last call to vkCmdSetAlphaToCoverageEnableEXT, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and alphaToCoverageEnable was VK_TRUE in the last call to vkCmdSetAlphaToCoverageEnableEXT, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08654", - "text": " If 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, then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-alphaToCoverageEnable-08920", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetAlphaToCoverageEnableEXT in the current command buffer set alphaToCoverageEnable to VK_TRUE, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetAlphaToCoverageEnableEXT in the current command buffer set alphaToCoverageEnable to VK_TRUE, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07625", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08655", - "text": " If the alphaToOne feature is 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, then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the alphaToOne feature is 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, then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07626", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08656", - "text": " If the logicOp feature is 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, then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the logicOp feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07627", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08657", - "text": " If 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, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07628", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08658", - "text": " If 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 vkCmdSetColorBlendEnableEXT for any attachment set that attachment’s value in pColorBlendEnables to VK_TRUE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetColorBlendEnableEXT for any attachment set that attachment’s value in pColorBlendEnables to VK_TRUE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07629", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08659", - "text": " If 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, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07630", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08660", - "text": " If the geometryStreams feature is enabled, and a shader object is bound to the geometry stage, then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the geometryStreams feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_GEOMETRY_BIT stage, then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07631", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08661", - "text": " If the VK_EXT_conservative_rasterization extension is 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, then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_conservative_rasterization extension is 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, then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07632", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08662", - "text": " If the VK_EXT_conservative_rasterization extension is 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 vkCmdSetConservativeRasterizationModeEXT in the current command buffer set conservativeRasterizationMode to VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_conservative_rasterization extension is 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 vkCmdSetConservativeRasterizationModeEXT in the current command buffer set conservativeRasterizationMode to VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07633", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08663", - "text": " If the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07634", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08664", - "text": " If the VK_EXT_sample_locations extension is 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, then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_sample_locations extension is 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, then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07635", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07636", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08665", - "text": " If the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the vertex stage, then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "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 in the current command buffer prior to this drawing command" + "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 in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08666", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08667", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08668", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "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 in the current command buffer prior to this drawing command" + "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 in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08669", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08670", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08671", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07849", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_EXT dynamic state enabled then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_EXT dynamic state enabled then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08672", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetLineStippleEnableEXT in the current command buffer set stippledLineEnable to VK_TRUE, then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetLineStippleEnableEXT in the current command buffer set stippledLineEnable to VK_TRUE, then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07639", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08673", - "text": " If the depthClipControl feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the depthClipControl feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07640", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08674", - "text": " If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07641", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08675", - "text": " If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07642", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08676", - "text": " If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07643", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08677", - "text": " If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetCoverageToColorEnableNV in the current command buffer set coverageToColorEnable to VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetCoverageToColorEnableNV in the current command buffer set coverageToColorEnable to VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07644", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08678", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_framebuffer_mixed_samples extension is 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, then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07645", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08679", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_framebuffer_mixed_samples extension is 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 vkCmdSetCoverageModulationModeNV in the current command buffer set coverageModulationMode to any value other than VK_COVERAGE_MODULATION_MODE_NONE_NV, then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07646", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08680", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetCoverageModulationTableEnableNV in the current command buffer set coverageModulationTableEnable to VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_framebuffer_mixed_samples extension is 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 vkCmdSetCoverageModulationTableEnableNV in the current command buffer set coverageModulationTableEnable to VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07647", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirect-pipelineFragmentShadingRate-09238", + "text": "If the pipelineFragmentShadingRate feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetFragmentShadingRateKHR must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08681", - "text": " If the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the shadingRateImage feature is 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, then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07648", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08682", - "text": " If the representativeFragmentTest feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the representativeFragmentTest feature is 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, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07649", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08683", - "text": " If the coverageReductionMode feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the coverageReductionMode feature is 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, then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-pColorBlendEnables-07470", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT state enabled and the last call to vkCmdSetColorBlendEnableEXT set pColorBlendEnables for any attachment to VK_TRUE, then for those attachments in the subpass the corresponding image view’s format features must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT state enabled and the last call to vkCmdSetColorBlendEnableEXT set pColorBlendEnables for any attachment to VK_TRUE, then for those attachments in the subpass the corresponding image view’s format features must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-rasterizationSamples-07471", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must follow the rules for a zero-attachment subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must follow the rules for a zero-attachment subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-samples-07472", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the VkPipelineMultisampleStateCreateInfo::rasterizationSamples parameter used to create the bound graphics pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the VkPipelineMultisampleStateCreateInfo::rasterizationSamples parameter used to create the bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-samples-07473", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the rasterizationSamples parameter in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the rasterizationSamples parameter in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { - "vuid": "VUID-vkCmdDrawIndirect-multisampledRenderToSingleSampled-07475", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and none of the VK_AMD_mixed_attachment_samples extension, VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the current subpass color and/or depth/stencil attachments" + "vuid": "VUID-vkCmdDrawIndirect-rasterizationSamples-07474", + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples extensions are enabled, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the current subpass color and/or depth/stencil attachments", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirect-None-09211", + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the rasterizationSamples member of that structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-firstAttachment-07476", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-firstAttachment-07477", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-firstAttachment-07478", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-firstAttachment-07479", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-advancedBlendMaxColorAttachments-07480", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT and VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic states enabled and the last calls to vkCmdSetColorBlendEnableEXT and vkCmdSetColorBlendAdvancedEXT have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed advancedBlendMaxColorAttachments" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT and VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic states enabled and the last calls to vkCmdSetColorBlendEnableEXT and vkCmdSetColorBlendAdvancedEXT have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed advancedBlendMaxColorAttachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-primitivesGeneratedQueryWithNonZeroStreams-07481", - "text": " If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, and the bound graphics pipeline was created with VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT state enabled, the last call to vkCmdSetRasterizationStreamEXT must have set the rasterizationStream to zero" + "text": "If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, and the bound graphics pipeline was created with VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT state enabled, the last call to vkCmdSetRasterizationStreamEXT must have set the rasterizationStream to zero", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-sampleLocationsPerPixel-07482", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-sampleLocationsPerPixel-07483", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples parameter of the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples parameter of the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-sampleLocationsEnable-07484", - "text": " If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set" + "text": "If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-sampleLocationsEnable-07485", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.width in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.width in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-sampleLocationsEnable-07486", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.height in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.height in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-sampleLocationsEnable-07487", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, the fragment shader code must not statically use the extended instruction InterpolateAtSample" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, the fragment shader code must not statically use the extended instruction InterpolateAtSample", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-sampleLocationsEnable-07936", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.width must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.width must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-sampleLocationsEnable-07937", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.height must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.height must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-sampleLocationsEnable-07938", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-coverageModulationTableEnable-07488", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-rasterizationSamples-07489", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment" + "text": "If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-coverageToColorEnable-07490", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-coverageReductionMode-07491", - "text": " If this VK_NV_coverage_reduction_mode extension is enabled, the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, the current coverage reduction mode coverageReductionMode, then the current rasterizationSamples, and the sample counts for the color and depth/stencil attachments (if the subpass has them) must be a valid combination returned by vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV" + "text": "If this VK_NV_coverage_reduction_mode extension is enabled, the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, the current coverage reduction mode coverageReductionMode, then the current rasterizationSamples, and the sample counts for the color and depth/stencil attachments (if the subpass has them) must be a valid combination returned by vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-viewportCount-07492", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-viewportCount-07493", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-rasterizationSamples-07494", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE" + "text": "If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-stippledLineEnable-07495", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-stippledLineEnable-07496", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-stippledLineEnable-07497", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-stippledLineEnable-07498", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-conservativePointAndLineRasterization-07499", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, conservativePointAndLineRasterization is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the conservativeRasterizationMode set by the last call to vkCmdSetConservativeRasterizationModeEXT must be VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, conservativePointAndLineRasterization is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the conservativeRasterizationMode set by the last call to vkCmdSetConservativeRasterizationModeEXT must be VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-stage-07073", - "text": " If the currently bound pipeline was created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT, then Mesh Shader Queries must not be active" + "text": "If the currently bound pipeline was created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT, then Mesh Shader Queries must not be active", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08877", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07850", - "text": " If dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command" + "text": "If dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08684", - "text": " If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_VERTEX_BIT" + "text": "If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_VERTEX_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08685", - "text": " If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT" + "text": "If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08686", - "text": " If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT" + "text": "If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08687", - "text": " If there is no bound graphics pipeline, and the geometryShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_GEOMETRY_BIT" + "text": "If there is no bound graphics pipeline, and the geometryShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_GEOMETRY_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08688", - "text": " If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_FRAGMENT_BIT" + "text": "If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_FRAGMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08689", - "text": " If there is no bound graphics pipeline, and the taskShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TASK_BIT_EXT" + "text": "If there is no bound graphics pipeline, and the taskShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TASK_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08690", - "text": " If there is no bound graphics pipeline, and the meshShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_MESH_BIT_EXT" + "text": "If there is no bound graphics pipeline, and the meshShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_MESH_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08693", - "text": " If there is no bound graphics pipeline, and at least one of the taskShader and meshShader features is enabled, one of the VK_SHADER_STAGE_VERTEX_BIT or VK_SHADER_STAGE_MESH_BIT_EXT stages must have a valid VkShaderEXT bound, and the other must have no VkShaderEXT bound" + "text": "If there is no bound graphics pipeline, and at least one of the taskShader and meshShader features is enabled, one of the VK_SHADER_STAGE_VERTEX_BIT or VK_SHADER_STAGE_MESH_BIT_EXT stages must have a valid VkShaderEXT bound, and the other must have no VkShaderEXT bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08694", - "text": " If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created without the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, a valid VkShaderEXT must be bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage" + "text": "If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created without the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, a valid VkShaderEXT must be bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08695", - "text": " If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created with the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, there must be no VkShaderEXT bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage" + "text": "If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created with the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, there must be no VkShaderEXT bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08696", - "text": " If there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage" + "text": "If there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08698", - "text": " If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound" + "text": "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08699", - "text": " If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound" + "text": "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08878", - "text": " All bound graphics shader objects must have been created with identical or identically defined push constant ranges" + "text": "All bound graphics shader objects must have been created with identical or identically defined push constant ranges", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08879", - "text": " All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts" + "text": "All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08880", - "text": " If there is no bound graphics pipeline and the attachmentFeedbackLoopDynamicState feature is enabled on the device, vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage and the attachmentFeedbackLoopDynamicState feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-pDynamicStates-08715", - "text": " If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable parameter in the last call to vkCmdSetDepthWriteEnable must be VK_FALSE" + "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable parameter in the last call to vkCmdSetDepthWriteEnable must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-pDynamicStates-08716", - "text": " If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_STENCIL_WRITE_MASK set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the writeMask parameter in the last call to vkCmdSetStencilWriteMask must be 0" + "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_STENCIL_WRITE_MASK set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the writeMask parameter in the last call to vkCmdSetStencilWriteMask must be 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-09116", - "text": " If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them" + "text": "If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirect-maxFragmentDualSrcAttachments-09239", + "text": "If blending is enabled for any attachment where either the source or destination blend factors for that attachment use the secondary color input, the maximum value of Location for any output attachment statically used in the Fragment Execution Model executed by this command must be less than maxFragmentDualSrcAttachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-04007", - "text": " All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must have either valid or VK_NULL_HANDLE buffers bound" + "text": "All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must have either valid or VK_NULL_HANDLE buffers bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-04008", - "text": " If the nullDescriptor feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must not be VK_NULL_HANDLE" + "text": "If the nullDescriptor feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must not be VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-02721", - "text": " For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description" + "text": "For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07842", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state enabled then vkCmdSetPrimitiveTopology must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state enabled then vkCmdSetPrimitiveTopology must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-dynamicPrimitiveTopologyUnrestricted-07500", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state enabled and the dynamicPrimitiveTopologyUnrestricted is VK_FALSE, then the primitiveTopology parameter of vkCmdSetPrimitiveTopology must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state enabled and the dynamicPrimitiveTopologyUnrestricted is VK_FALSE, then the primitiveTopology parameter of vkCmdSetPrimitiveTopology must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-04912", - "text": " If the bound graphics pipeline was created with both the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT and VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic states enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command" + "text": "If the bound graphics pipeline was created with both the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT and VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic states enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-pStrides-04913", - "text": " If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdBindVertexBuffers2EXT must have been called in the current command buffer prior to this draw command, and the pStrides parameter of vkCmdBindVertexBuffers2EXT must not be NULL" + "text": "If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdBindVertexBuffers2EXT must have been called in the current command buffer prior to this draw command, and the pStrides parameter of vkCmdBindVertexBuffers2EXT must not be NULL", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08881", - "text": " If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetPrimitiveTopology must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetPrimitiveTopology must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-04914", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-Input-07939", - "text": " If 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 {ExecutionModel} OpEntryPoint must contain a location in VkVertexInputAttributeDescription2EXT::location" + "text": "If 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": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-Input-08734", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then the numeric type associated with all Input variables of the corresponding Location in the Vertex {ExecutionModel} OpEntryPoint must be the same as VkVertexInputAttributeDescription2EXT::format" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then the numeric type associated with all Input variables of the corresponding Location in the Vertex Execution Model OpEntryPoint must be the same as VkVertexInputAttributeDescription2EXT::format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-format-08936", - "text": " If there is a shader object bound to a graphics stage or the currently bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, and VkVertexInputAttributeDescription2EXT::format has a 64-bit component, then the scalar width associated with all Input variables of the corresponding Location in the Vertex {ExecutionModel} OpEntryPoint must be 64-bit" + "text": "If there is a shader object bound to a graphics stage or the currently bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, and VkVertexInputAttributeDescription2EXT::format has a 64-bit component, then the scalar width associated with all Input variables of the corresponding Location in the Vertex Execution Model OpEntryPoint must be 64-bit", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-format-08937", - "text": " If there is a shader object bound to a graphics stage or the currently bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, and the scalar width associated with a Location decorated Input variable in the Vertex {ExecutionModel} OpEntryPoint is 64-bit, then the corresponding VkVertexInputAttributeDescription2EXT::format must have a 64-bit component" + "text": "If there is a shader object bound to a graphics stage or the currently bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, and the scalar width associated with a Location decorated Input variable in the Vertex Execution Model OpEntryPoint is 64-bit, then the corresponding VkVertexInputAttributeDescription2EXT::format must have a 64-bit component", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-09203", - "text": " If there is a shader object bound to a graphics stage or the currently bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, and VkVertexInputAttributeDescription2EXT::format has a 64-bit component, then all Input variables at the corresponding Location in the Vertex {ExecutionModel} OpEntryPoint must not use components that are not present in the format" + "text": "If there is a shader object bound to a graphics stage or the currently bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, and VkVertexInputAttributeDescription2EXT::format has a 64-bit component, then all Input variables at the corresponding Location in the Vertex Execution Model OpEntryPoint must not use components that are not present in the format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08882", - "text": " If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-04875", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT dynamic state enabled then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT dynamic state enabled then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08883", - "text": " If a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-04879", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then vkCmdSetPrimitiveRestartEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then vkCmdSetPrimitiveRestartEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-rasterizerDiscardEnable-08884", - "text": " If 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, vkCmdSetPrimitiveRestartEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, vkCmdSetPrimitiveRestartEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-stage-06481", - "text": " The bound graphics pipeline must not have been created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT" + "text": "The bound graphics pipeline must not have been created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08885", - "text": " There must be no shader object bound to either of the VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT stages" + "text": "There must be no shader object bound to either of the VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT stages", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-buffer-02708", - "text": " If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-buffer-02709", - "text": " buffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set" + "text": "buffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-offset-02710", - "text": " offset must be a multiple of 4" + "text": "offset must be a multiple of 4", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-commandBuffer-02711", - "text": " commandBuffer must not be a protected command buffer" + "text": "commandBuffer must not be a protected command buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-drawCount-02718", - "text": " If the multiDrawIndirect feature is not enabled, drawCount must be 0 or 1" + "text": "If the multiDrawIndirect feature is not enabled, drawCount must be 0 or 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-drawCount-02719", - "text": " drawCount must be less than or equal to VkPhysicalDeviceLimits::maxDrawIndirectCount" + "text": "drawCount must be less than or equal to VkPhysicalDeviceLimits::maxDrawIndirectCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-drawCount-00476", - "text": " If drawCount is greater than 1, stride must be a multiple of 4 and must be greater than or equal to sizeof(VkDrawIndirectCommand)" + "text": "If drawCount is greater than 1, stride must be a multiple of 4 and must be greater than or equal to sizeof(VkDrawIndirectCommand)", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-drawCount-00487", - "text": " If drawCount is equal to 1, (offset + sizeof(VkDrawIndirectCommand)) must be less than or equal to the size of buffer" + "text": "If drawCount is equal to 1, (offset + sizeof(VkDrawIndirectCommand)) must be less than or equal to the size of buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-drawCount-00488", - "text": " If drawCount is greater than 1, (stride {times} (drawCount - 1) + offset + sizeof(VkDrawIndirectCommand)) must be less than or equal to the size of buffer" + "text": "If drawCount is greater than 1, (stride × (drawCount - 1) + offset + sizeof(VkDrawIndirectCommand)) must be less than or equal to the size of buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-buffer-parameter", - "text": " buffer must be a valid VkBuffer handle" + "text": "buffer must be a valid VkBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-renderpass", - "text": " This command must only be called inside of a render pass instance" + "text": "This command must only be called inside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirect-commonparent", - "text": " Both of buffer, and commandBuffer must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of buffer, and commandBuffer must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -37954,11 +48693,13 @@ "core": [ { "vuid": "VUID-VkDrawIndirectCommand-None-00500", - "text": " For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description" + "text": "For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description", + "page": "vkspec" }, { "vuid": "VUID-VkDrawIndirectCommand-firstInstance-00501", - "text": " If the drawIndirectFirstInstance feature is not enabled, firstInstance must be 0" + "text": "If the drawIndirectFirstInstance feature is not enabled, firstInstance must be 0", + "page": "vkspec" } ] }, @@ -37966,1375 +48707,1848 @@ "core": [ { "vuid": "VUID-vkCmdDrawIndirectCount-magFilter-04553", - "text": " If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + "text": "If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-mipmapMode-04770", - "text": " If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + "text": "If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-06479", - "text": " If a VkImageView is sampled with depth comparison, the image view’s format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT" + "text": "If a VkImageView is sampled with depth comparison, the image view’s format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-02691", - "text": " If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT" + "text": "If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07888", - "text": " If a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer’s format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT" + "text": "If a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer’s format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-02692", - "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" + "text": "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-02693", - "text": " If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" + "text": "If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-filterCubic-02694", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" + "text": "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-filterCubicMinmax-02695", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" + "text": "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirectCount-cubicRangeClamp-09212", + "text": "If the cubicRangeClamp feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command
\n
\n
must not have a VkSamplerReductionModeCreateInfo
\n
\n

reductionMode equal to\nVK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM

\n
\n
\n
", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirectCount-reductionMode-09213", + "text": "Any VkImageView being sampled with a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM as a result of this command must sample with VK_FILTER_CUBIC_EXT", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirectCount-selectableCubicWeights-09214", + "text": "If the selectableCubicWeights feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have VkSamplerCubicWeightsCreateInfoQCOM::cubicWeights equal to VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-flags-02696", - "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE" + "text": "Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-OpTypeImage-07027", - "text": " For any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT" + "text": "For any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-OpTypeImage-07028", - "text": " For any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT" + "text": "For any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-OpTypeImage-07029", - "text": " For any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT" + "text": "For any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-OpTypeImage-07030", - "text": " Any VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT" + "text": "Any VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08600", - "text": " For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08601", - "text": " For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-maintenance4-08602", - "text": " If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08114", - "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08115", - "text": " If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08116", - "text": " Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08604", - "text": " Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command" + "text": "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08117", - "text": " If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08119", - "text": " If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident" + "text": "If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08605", - "text": " If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident" + "text": "If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08606", - "text": " If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command" + "text": "If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08607", - "text": " If the shaderObject is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command" + "text": "If the shaderObject is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08608", - "text": " If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound" + "text": "If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08609", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08610", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08611", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-uniformBuffers-06935", - "text": " If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08612", - "text": " If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-storageBuffers-06936", - "text": " If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08613", - "text": " If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-commandBuffer-02707", - "text": " If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource" + "text": "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-06550", - "text": " If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions" + "text": "If a bound shader accesses a VkSampler or VkImageView object that enables sampler Y′CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-ConstOffset-06551", - "text": " If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands" + "text": "If a bound shader accesses a VkSampler or VkImageView object that enables sampler Y′CBCR conversion, that object must not use the ConstOffset and Offset operands", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-viewType-07752", - "text": " If a VkImageView is accessed as a result of this command, then the image view’s viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation" + "text": "If a VkImageView is accessed as a result of this command, then the image view’s viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-format-07753", - "text": " If a VkImageView is accessed as a result of this command, then the numeric type of the image view’s format and the Sampled Type operand of the OpTypeImage must match" + "text": "If a VkImageView is accessed as a result of this command, then the numeric type of the image view’s format and the Sampled Type operand of the OpTypeImage must match", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-OpImageWrite-08795", - "text": " If a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format" + "text": "If a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-OpImageWrite-08796", - "text": " If a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components" + "text": "If a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-OpImageWrite-04469", - "text": " If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view’s format" + "text": "If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view’s format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-SampledType-04470", - "text": " If a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64" + "text": "If a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-SampledType-04471", - "text": " If a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32" + "text": "If a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-SampledType-04472", - "text": " If a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64" + "text": "If a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-SampledType-04473", - "text": " If a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32" + "text": "If a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-sparseImageInt64Atomics-04474", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command" + "text": "If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-sparseImageInt64Atomics-04475", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command" + "text": "If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-OpImageWeightedSampleQCOM-06971", - "text": " If OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-OpImageWeightedSampleQCOM-06972", - "text": " If OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-OpImageBoxFilterQCOM-06973", - "text": " If OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM" + "text": "If OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-OpImageBlockMatchSSDQCOM-06974", - "text": " If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM" + "text": "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-OpImageBlockMatchSADQCOM-06975", - "text": " If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM" + "text": "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-OpImageBlockMatchSADQCOM-06976", - "text": " If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation" + "text": "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-OpImageWeightedSampleQCOM-06977", - "text": " If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-OpImageWeightedSampleQCOM-06978", - "text": " If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM" + "text": "If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirectCount-OpImageBlockMatchWindow-09215", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirectCount-OpImageBlockMatchWindow-09216", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view’s format must be a single-component format.", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirectCount-OpImageBlockMatchWindow-09217", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07288", - "text": " Any shader invocation executed by this command must terminate" + "text": "Any shader invocation executed by this command must terminate", + "page": "vkspec" }, { "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" + "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", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-subpass-02685", - "text": " The subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS" + "text": "The subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07748", - "text": " If any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set" + "text": "If any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-OpTypeImage-07468", - "text": " If any shader executed by this pipeline accesses an OpTypeImage variable with a Dim operand of SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass" + "text": "If any shader executed by this pipeline accesses an OpTypeImage variable with a Dim operand of SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07469", - "text": " Input attachment views accessed in a subpass must be created with the same VkFormat as the corresponding subpass definition, and be created with a VkImageView that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound VkFramebuffer as specified by Fragment Input Attachment Compatibility" + "text": "Input attachment views accessed in a subpass must be created with the same VkFormat as the corresponding subpass definition, and be created with a VkImageView that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound VkFramebuffer as specified by Fragment Input Attachment Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-06537", - "text": " Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command" + "text": "Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command", + "page": "vkspec" }, { "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
" + "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
", + "page": "vkspec" }, { "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
" + "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
", + "page": "vkspec" }, { "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
" + "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-09003", - "text": " If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command" + "text": "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-06539", - "text": " If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment" + "text": "If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-06886", - "text": " If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled" + "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-06887", - "text": " If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back writeMask are not zero, and stencil test is enabled, all stencil ops must be VK_STENCIL_OP_KEEP" + "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back writeMask are not zero, and stencil test is enabled, all stencil ops must be VK_STENCIL_OP_KEEP", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07831", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07832", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07833", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08617", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08618", - "text": " If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08619", - "text": " If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07834", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08620", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07835", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08621", - "text": " If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07836", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled, and if the current depthBoundsTestEnable state is VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08622", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07837", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08623", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07838", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled then vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08624", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07839", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled then vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08625", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-maxMultiviewInstanceIndex-02688", - "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex" + "text": "If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-02689", - "text": " If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set" + "text": "If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-06666", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08626", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetSampleLocationsEnableEXT in the current command buffer set sampleLocationsEnable to VK_TRUE, vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetSampleLocationsEnableEXT in the current command buffer set sampleLocationsEnable to VK_TRUE, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-sampleLocationsPerPixel-07934", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07840", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08627", - "text": " If a shader object is bound to any graphics stage, vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07841", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08628", - "text": " If a shader object is bound to any graphics stage, vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07843", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08629", - "text": " If a shader object is bound to any graphics stage, vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07844", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08630", - "text": " If a shader object is bound to any graphics stage, vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07845", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08631", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthTestEnable in the current command buffer set depthTestEnable to VK_TRUE, vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetDepthTestEnable in the current command buffer set depthTestEnable to VK_TRUE, then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07846", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled then vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled then vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08632", - "text": " If a shader object is bound to any graphics stage, and the depthBounds feature is enabled, the vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the depthBounds feature is enabled, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07847", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08633", - "text": " If 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, then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07848", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08634", - "text": " If 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 vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-viewportCount-03417", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-scissorCount-03418", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the scissorCount parameter of vkCmdSetScissorWithCount must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the scissorCount parameter of vkCmdSetScissorWithCount must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-viewportCount-03419", - "text": " If the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount" + "text": "If the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08635", - "text": " If a shader object is bound to any graphics stage, then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount" + "text": "If a shader object is bound to any graphics stage, then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-viewportCount-04137", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-viewportCount-04138", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirectCount-None-09232", + "text": "If a shader object is bound to any graphics stage, and the VK_NV_clip_space_w_scaling extension is enabled on the device, then vkCmdSetViewportWScalingNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08636", - "text": " If a shader object is bound to any graphics stage, and the VK_NV_clip_space_w_scaling extension is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If a shader object is bound to any graphics stage, and the VK_NV_clip_space_w_scaling extension is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-viewportCount-04139", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-viewportCount-04140", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirectCount-shadingRateImage-09233", + "text": "If the shadingRateImage feature is enabled, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoarseSampleOrderNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirectCount-shadingRateImage-09234", + "text": "If a shader object is bound to any graphics stage, and the shadingRateImage feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetShadingRateImageEnableNV in the current command buffer set shadingRateImageEnable to VK_TRUE, then vkCmdSetViewportShadingRatePaletteNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08637", - "text": " If a shader object is bound to any graphics stage, and the shadingRateImage feature is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If a shader object is bound to any graphics stage, and the shadingRateImage feature is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-VkPipelineVieportCreateInfo-04141", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportSwizzleStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportSwizzleStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-VkPipelineVieportCreateInfo-04142", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportExclusiveScissorStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportExclusiveScissorStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07878", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07879", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirectCount-exclusiveScissor-09235", + "text": "If a shader object is bound to any graphics stage, and the exclusiveScissor feature is enabled, then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08638", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetExclusiveScissorEnableNV in the current command buffer set any element of pExclusiveScissorEnables to VK_TRUE, then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetExclusiveScissorEnableNV in the current command buffer set any element of pExclusiveScissorEnables to VK_TRUE, then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-04876", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08639", - "text": " If a shader object is bound to any graphics stage, then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-04877", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08640", - "text": " If 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, then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-logicOp-04878", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08641", - "text": " If a shader object is bound to any graphics stage, and the logicOp feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the logicOp feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-primitiveFragmentShadingRateWithMultipleViewports-04552", - "text": " If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1" + "text": "If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-primitiveFragmentShadingRateWithMultipleViewports-08642", - "text": " If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and any shader object bound to a graphics stage writes to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1" + "text": "If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and any shader object bound to a graphics stage writes to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-blendEnable-04727", - "text": " If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the blendEnable member of the corresponding element of the pAttachments member of pColorBlendState must be VK_FALSE" + "text": "If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the blendEnable member of the corresponding element of the pAttachments member of pColorBlendState must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08643", - "text": " If 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, then for each color attachment in the render pass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the corresponding member of pColorBlendEnables in the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer that affected that attachment index must have been VK_FALSE" + "text": "If 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, then for each color attachment in the render pass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the corresponding member of pColorBlendEnables in the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer that affected that attachment index must have been VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-multisampledRenderToSingleSampled-07284", - "text": " If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments" + "text": "If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08644", - "text": " If 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 none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then the most recent call to vkCmdSetRasterizationSamplesEXT in the current command buffer must have set rasterizationSamples to be the same as the number of samples for the current render pass color and/or depth/stencil attachments" + "text": "If 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 none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then the most recent call to vkCmdSetRasterizationSamplesEXT in the current command buffer must have set rasterizationSamples to be the same as the number of samples for the current render pass color and/or depth/stencil attachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08876", - "text": " If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering" + "text": "If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-imageView-06172", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-imageView-06173", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-imageView-06174", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, this command must not write any values to the depth attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, this command must not write any values to the depth attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-imageView-06175", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-imageView-06176", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-imageView-06177", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-viewMask-06178", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::viewMask equal to VkRenderingInfo::viewMask" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::viewMask equal to VkRenderingInfo::viewMask", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-colorAttachmentCount-06179", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::colorAttachmentCount equal to VkRenderingInfo::colorAttachmentCount" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::colorAttachmentCount equal to VkRenderingInfo::colorAttachmentCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08910", - "text": " If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline" + "text": "If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08911", - "text": " If the dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats, if it exists, must be VK_FORMAT_UNDEFINED" + "text": "If the dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats, if it exists, must be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08912", - "text": " If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED" + "text": "If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED", + "page": "vkspec" + }, + { + "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 currently bound graphics pipeline", + "page": "vkspec" + }, + { + "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 currently bound graphics pipeline", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirectCount-None-09364", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled, then vkCmdSetColorBlendEnableEXT must have set the blend enable to VK_FALSE prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirectCount-None-09365", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirectCount-None-09368", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirectCount-None-09369", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07749", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08646", - "text": " If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the fragment stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-attachmentCount-07750", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the attachmentCount parameter of vkCmdSetColorWriteEnableEXT must be greater than or equal to the VkPipelineColorBlendStateCreateInfo::attachmentCount of the currently bound graphics pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the attachmentCount parameter of vkCmdSetColorWriteEnableEXT must be greater than or equal to the VkPipelineColorBlendStateCreateInfo::attachmentCount of the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08647", - "text": " If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the fragment stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the attachmentCount parameter of most recent call to vkCmdSetColorWriteEnableEXT in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance" + "text": "If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the attachmentCount parameter of most recent call to vkCmdSetColorWriteEnableEXT in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07751", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07880", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirectCount-rasterizerDiscardEnable-09236", + "text": "If the VK_EXT_discard_rectangles extension is 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, then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08648", - "text": " If the VK_EXT_discard_rectangles extension is 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, then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_discard_rectangles extension is 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, then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07881", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08649", - "text": " If the VK_EXT_discard_rectangles extension is 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 vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_discard_rectangles extension is 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 vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08913", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08914", - "text": " If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView" + "text": "If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08915", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08916", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08917", - "text": " If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView" + "text": "If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08918", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-imageView-06183", - "text": " If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentShadingRateAttachmentInfoKHR::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR" + "text": "If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentShadingRateAttachmentInfoKHR::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-imageView-06184", - "text": " If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT" + "text": "If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-colorAttachmentCount-06185", - "text": " If the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline" + "text": "If the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-pDepthAttachment-06186", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-pStencilAttachment-06187", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-multisampledRenderToSingleSampled-07285", - "text": " If the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of rasterizationSamples for the currently bound graphics pipeline" + "text": "If the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of rasterizationSamples for the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-multisampledRenderToSingleSampled-07286", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-multisampledRenderToSingleSampled-07287", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-pNext-07935", - "text": " If this command has been called inside a render pass instance started with vkCmdBeginRendering, and the pNext chain of VkRenderingInfo includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the value of rasterizationSamples for the currently bound graphics pipeline must be equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples" + "text": "If this command has been called inside a render pass instance started with vkCmdBeginRendering, and the pNext chain of VkRenderingInfo includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the value of rasterizationSamples for the currently bound graphics pipeline must be equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-renderPass-06198", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline must have been created with a VkGraphicsPipelineCreateInfo::renderPass equal to VK_NULL_HANDLE" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline must have been created with a VkGraphicsPipelineCreateInfo::renderPass equal to VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-pColorAttachments-08963", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the VkRenderingInfo::pColorAttachments->imageView was not VK_NULL_HANDLE, then the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the pipeline must not be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the VkRenderingInfo::pColorAttachments->imageView was not VK_NULL_HANDLE, then the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the pipeline must not be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-pDepthAttachment-08964", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-pStencilAttachment-08965", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, stencil test is enabled and the VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, stencil test is enabled and the VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-primitivesGeneratedQueryWithRasterizerDiscard-06708", - "text": " If the primitivesGeneratedQueryWithRasterizerDiscard feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, rasterization discard must not be enabled" + "text": "If the primitivesGeneratedQueryWithRasterizerDiscard feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, rasterization discard must not be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-primitivesGeneratedQueryWithNonZeroStreams-06709", - "text": " If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, the bound graphics pipeline must not have been created with a non-zero value in VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream" + "text": "If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, the bound graphics pipeline must not have been created with a non-zero value in VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07619", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07620", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirectCount-None-09237", + "text": "If a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08650", - "text": " If the depthClamp feature is 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, then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the depthClamp feature is 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, then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07621", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08651", - "text": " If 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, then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07622", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08652", - "text": " If 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, then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07623", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08653", - "text": " If 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, then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07624", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-alphaToCoverageEnable-08919", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and alphaToCoverageEnable was VK_TRUE in the last call to vkCmdSetAlphaToCoverageEnableEXT, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and alphaToCoverageEnable was VK_TRUE in the last call to vkCmdSetAlphaToCoverageEnableEXT, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08654", - "text": " If 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, then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-alphaToCoverageEnable-08920", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetAlphaToCoverageEnableEXT in the current command buffer set alphaToCoverageEnable to VK_TRUE, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetAlphaToCoverageEnableEXT in the current command buffer set alphaToCoverageEnable to VK_TRUE, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07625", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08655", - "text": " If the alphaToOne feature is 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, then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the alphaToOne feature is 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, then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07626", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08656", - "text": " If the logicOp feature is 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, then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the logicOp feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07627", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08657", - "text": " If 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, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07628", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08658", - "text": " If 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 vkCmdSetColorBlendEnableEXT for any attachment set that attachment’s value in pColorBlendEnables to VK_TRUE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetColorBlendEnableEXT for any attachment set that attachment’s value in pColorBlendEnables to VK_TRUE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07629", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08659", - "text": " If 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, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07630", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08660", - "text": " If the geometryStreams feature is enabled, and a shader object is bound to the geometry stage, then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the geometryStreams feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_GEOMETRY_BIT stage, then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07631", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08661", - "text": " If the VK_EXT_conservative_rasterization extension is 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, then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_conservative_rasterization extension is 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, then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07632", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08662", - "text": " If the VK_EXT_conservative_rasterization extension is 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 vkCmdSetConservativeRasterizationModeEXT in the current command buffer set conservativeRasterizationMode to VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_conservative_rasterization extension is 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 vkCmdSetConservativeRasterizationModeEXT in the current command buffer set conservativeRasterizationMode to VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07633", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08663", - "text": " If the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07634", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08664", - "text": " If the VK_EXT_sample_locations extension is 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, then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_sample_locations extension is 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, then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07635", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07636", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08665", - "text": " If the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the vertex stage, then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "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 in the current command buffer prior to this drawing command" + "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 in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08666", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08667", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08668", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "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 in the current command buffer prior to this drawing command" + "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 in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08669", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08670", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08671", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07849", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_EXT dynamic state enabled then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_EXT dynamic state enabled then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08672", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetLineStippleEnableEXT in the current command buffer set stippledLineEnable to VK_TRUE, then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetLineStippleEnableEXT in the current command buffer set stippledLineEnable to VK_TRUE, then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07639", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08673", - "text": " If the depthClipControl feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the depthClipControl feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07640", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08674", - "text": " If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07641", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08675", - "text": " If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07642", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08676", - "text": " If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07643", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08677", - "text": " If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetCoverageToColorEnableNV in the current command buffer set coverageToColorEnable to VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetCoverageToColorEnableNV in the current command buffer set coverageToColorEnable to VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07644", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08678", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_framebuffer_mixed_samples extension is 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, then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07645", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08679", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_framebuffer_mixed_samples extension is 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 vkCmdSetCoverageModulationModeNV in the current command buffer set coverageModulationMode to any value other than VK_COVERAGE_MODULATION_MODE_NONE_NV, then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07646", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08680", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetCoverageModulationTableEnableNV in the current command buffer set coverageModulationTableEnable to VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_framebuffer_mixed_samples extension is 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 vkCmdSetCoverageModulationTableEnableNV in the current command buffer set coverageModulationTableEnable to VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07647", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirectCount-pipelineFragmentShadingRate-09238", + "text": "If the pipelineFragmentShadingRate feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetFragmentShadingRateKHR must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08681", - "text": " If the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the shadingRateImage feature is 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, then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07648", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08682", - "text": " If the representativeFragmentTest feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the representativeFragmentTest feature is 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, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07649", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08683", - "text": " If the coverageReductionMode feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the coverageReductionMode feature is 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, then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-pColorBlendEnables-07470", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT state enabled and the last call to vkCmdSetColorBlendEnableEXT set pColorBlendEnables for any attachment to VK_TRUE, then for those attachments in the subpass the corresponding image view’s format features must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT state enabled and the last call to vkCmdSetColorBlendEnableEXT set pColorBlendEnables for any attachment to VK_TRUE, then for those attachments in the subpass the corresponding image view’s format features must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-rasterizationSamples-07471", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must follow the rules for a zero-attachment subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must follow the rules for a zero-attachment subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-samples-07472", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the VkPipelineMultisampleStateCreateInfo::rasterizationSamples parameter used to create the bound graphics pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the VkPipelineMultisampleStateCreateInfo::rasterizationSamples parameter used to create the bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-samples-07473", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the rasterizationSamples parameter in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the rasterizationSamples parameter in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { - "vuid": "VUID-vkCmdDrawIndirectCount-multisampledRenderToSingleSampled-07475", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and none of the VK_AMD_mixed_attachment_samples extension, VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the current subpass color and/or depth/stencil attachments" + "vuid": "VUID-vkCmdDrawIndirectCount-rasterizationSamples-07474", + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples extensions are enabled, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the current subpass color and/or depth/stencil attachments", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirectCount-None-09211", + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the rasterizationSamples member of that structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-firstAttachment-07476", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-firstAttachment-07477", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-firstAttachment-07478", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-firstAttachment-07479", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-advancedBlendMaxColorAttachments-07480", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT and VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic states enabled and the last calls to vkCmdSetColorBlendEnableEXT and vkCmdSetColorBlendAdvancedEXT have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed advancedBlendMaxColorAttachments" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT and VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic states enabled and the last calls to vkCmdSetColorBlendEnableEXT and vkCmdSetColorBlendAdvancedEXT have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed advancedBlendMaxColorAttachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-primitivesGeneratedQueryWithNonZeroStreams-07481", - "text": " If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, and the bound graphics pipeline was created with VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT state enabled, the last call to vkCmdSetRasterizationStreamEXT must have set the rasterizationStream to zero" + "text": "If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, and the bound graphics pipeline was created with VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT state enabled, the last call to vkCmdSetRasterizationStreamEXT must have set the rasterizationStream to zero", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-sampleLocationsPerPixel-07482", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-sampleLocationsPerPixel-07483", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples parameter of the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples parameter of the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-07484", - "text": " If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set" + "text": "If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-07485", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.width in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.width in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-07486", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.height in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.height in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-07487", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, the fragment shader code must not statically use the extended instruction InterpolateAtSample" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, the fragment shader code must not statically use the extended instruction InterpolateAtSample", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-07936", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.width must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.width must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-07937", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.height must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.height must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-07938", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-coverageModulationTableEnable-07488", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-rasterizationSamples-07489", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment" + "text": "If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-coverageToColorEnable-07490", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-coverageReductionMode-07491", - "text": " If this VK_NV_coverage_reduction_mode extension is enabled, the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, the current coverage reduction mode coverageReductionMode, then the current rasterizationSamples, and the sample counts for the color and depth/stencil attachments (if the subpass has them) must be a valid combination returned by vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV" + "text": "If this VK_NV_coverage_reduction_mode extension is enabled, the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, the current coverage reduction mode coverageReductionMode, then the current rasterizationSamples, and the sample counts for the color and depth/stencil attachments (if the subpass has them) must be a valid combination returned by vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-viewportCount-07492", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-viewportCount-07493", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-rasterizationSamples-07494", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE" + "text": "If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-stippledLineEnable-07495", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-stippledLineEnable-07496", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-stippledLineEnable-07497", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-stippledLineEnable-07498", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-conservativePointAndLineRasterization-07499", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, conservativePointAndLineRasterization is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the conservativeRasterizationMode set by the last call to vkCmdSetConservativeRasterizationModeEXT must be VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, conservativePointAndLineRasterization is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the conservativeRasterizationMode set by the last call to vkCmdSetConservativeRasterizationModeEXT must be VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-stage-07073", - "text": " If the currently bound pipeline was created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT, then Mesh Shader Queries must not be active" + "text": "If the currently bound pipeline was created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT, then Mesh Shader Queries must not be active", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08877", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07850", - "text": " If dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command" + "text": "If dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08684", - "text": " If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_VERTEX_BIT" + "text": "If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_VERTEX_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08685", - "text": " If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT" + "text": "If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08686", - "text": " If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT" + "text": "If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08687", - "text": " If there is no bound graphics pipeline, and the geometryShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_GEOMETRY_BIT" + "text": "If there is no bound graphics pipeline, and the geometryShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_GEOMETRY_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08688", - "text": " If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_FRAGMENT_BIT" + "text": "If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_FRAGMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08689", - "text": " If there is no bound graphics pipeline, and the taskShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TASK_BIT_EXT" + "text": "If there is no bound graphics pipeline, and the taskShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TASK_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08690", - "text": " If there is no bound graphics pipeline, and the meshShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_MESH_BIT_EXT" + "text": "If there is no bound graphics pipeline, and the meshShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_MESH_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08693", - "text": " If there is no bound graphics pipeline, and at least one of the taskShader and meshShader features is enabled, one of the VK_SHADER_STAGE_VERTEX_BIT or VK_SHADER_STAGE_MESH_BIT_EXT stages must have a valid VkShaderEXT bound, and the other must have no VkShaderEXT bound" + "text": "If there is no bound graphics pipeline, and at least one of the taskShader and meshShader features is enabled, one of the VK_SHADER_STAGE_VERTEX_BIT or VK_SHADER_STAGE_MESH_BIT_EXT stages must have a valid VkShaderEXT bound, and the other must have no VkShaderEXT bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08694", - "text": " If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created without the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, a valid VkShaderEXT must be bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage" + "text": "If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created without the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, a valid VkShaderEXT must be bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08695", - "text": " If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created with the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, there must be no VkShaderEXT bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage" + "text": "If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created with the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, there must be no VkShaderEXT bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08696", - "text": " If there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage" + "text": "If there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08698", - "text": " If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound" + "text": "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08699", - "text": " If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound" + "text": "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08878", - "text": " All bound graphics shader objects must have been created with identical or identically defined push constant ranges" + "text": "All bound graphics shader objects must have been created with identical or identically defined push constant ranges", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08879", - "text": " All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts" + "text": "All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08880", - "text": " If there is no bound graphics pipeline and the attachmentFeedbackLoopDynamicState feature is enabled on the device, vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage and the attachmentFeedbackLoopDynamicState feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-pDynamicStates-08715", - "text": " If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable parameter in the last call to vkCmdSetDepthWriteEnable must be VK_FALSE" + "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable parameter in the last call to vkCmdSetDepthWriteEnable must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-pDynamicStates-08716", - "text": " If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_STENCIL_WRITE_MASK set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the writeMask parameter in the last call to vkCmdSetStencilWriteMask must be 0" + "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_STENCIL_WRITE_MASK set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the writeMask parameter in the last call to vkCmdSetStencilWriteMask must be 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-09116", - "text": " If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them" + "text": "If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirectCount-maxFragmentDualSrcAttachments-09239", + "text": "If blending is enabled for any attachment where either the source or destination blend factors for that attachment use the secondary color input, the maximum value of Location for any output attachment statically used in the Fragment Execution Model executed by this command must be less than maxFragmentDualSrcAttachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-04007", - "text": " All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must have either valid or VK_NULL_HANDLE buffers bound" + "text": "All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must have either valid or VK_NULL_HANDLE buffers bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-04008", - "text": " If the nullDescriptor feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must not be VK_NULL_HANDLE" + "text": "If the nullDescriptor feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must not be VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-02721", - "text": " For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description" + "text": "For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07842", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state enabled then vkCmdSetPrimitiveTopology must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state enabled then vkCmdSetPrimitiveTopology must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-dynamicPrimitiveTopologyUnrestricted-07500", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state enabled and the dynamicPrimitiveTopologyUnrestricted is VK_FALSE, then the primitiveTopology parameter of vkCmdSetPrimitiveTopology must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state enabled and the dynamicPrimitiveTopologyUnrestricted is VK_FALSE, then the primitiveTopology parameter of vkCmdSetPrimitiveTopology must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-04912", - "text": " If the bound graphics pipeline was created with both the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT and VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic states enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command" + "text": "If the bound graphics pipeline was created with both the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT and VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic states enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-pStrides-04913", - "text": " If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdBindVertexBuffers2EXT must have been called in the current command buffer prior to this draw command, and the pStrides parameter of vkCmdBindVertexBuffers2EXT must not be NULL" + "text": "If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdBindVertexBuffers2EXT must have been called in the current command buffer prior to this draw command, and the pStrides parameter of vkCmdBindVertexBuffers2EXT must not be NULL", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08881", - "text": " If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetPrimitiveTopology must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetPrimitiveTopology must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-04914", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-Input-07939", - "text": " If 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 {ExecutionModel} OpEntryPoint must contain a location in VkVertexInputAttributeDescription2EXT::location" + "text": "If 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": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-Input-08734", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then the numeric type associated with all Input variables of the corresponding Location in the Vertex {ExecutionModel} OpEntryPoint must be the same as VkVertexInputAttributeDescription2EXT::format" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then the numeric type associated with all Input variables of the corresponding Location in the Vertex Execution Model OpEntryPoint must be the same as VkVertexInputAttributeDescription2EXT::format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-format-08936", - "text": " If there is a shader object bound to a graphics stage or the currently bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, and VkVertexInputAttributeDescription2EXT::format has a 64-bit component, then the scalar width associated with all Input variables of the corresponding Location in the Vertex {ExecutionModel} OpEntryPoint must be 64-bit" + "text": "If there is a shader object bound to a graphics stage or the currently bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, and VkVertexInputAttributeDescription2EXT::format has a 64-bit component, then the scalar width associated with all Input variables of the corresponding Location in the Vertex Execution Model OpEntryPoint must be 64-bit", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-format-08937", - "text": " If there is a shader object bound to a graphics stage or the currently bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, and the scalar width associated with a Location decorated Input variable in the Vertex {ExecutionModel} OpEntryPoint is 64-bit, then the corresponding VkVertexInputAttributeDescription2EXT::format must have a 64-bit component" + "text": "If there is a shader object bound to a graphics stage or the currently bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, and the scalar width associated with a Location decorated Input variable in the Vertex Execution Model OpEntryPoint is 64-bit, then the corresponding VkVertexInputAttributeDescription2EXT::format must have a 64-bit component", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-09203", - "text": " If there is a shader object bound to a graphics stage or the currently bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, and VkVertexInputAttributeDescription2EXT::format has a 64-bit component, then all Input variables at the corresponding Location in the Vertex {ExecutionModel} OpEntryPoint must not use components that are not present in the format" + "text": "If there is a shader object bound to a graphics stage or the currently bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, and VkVertexInputAttributeDescription2EXT::format has a 64-bit component, then all Input variables at the corresponding Location in the Vertex Execution Model OpEntryPoint must not use components that are not present in the format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08882", - "text": " If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-04875", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT dynamic state enabled then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT dynamic state enabled then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08883", - "text": " If a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-04879", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then vkCmdSetPrimitiveRestartEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then vkCmdSetPrimitiveRestartEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-rasterizerDiscardEnable-08884", - "text": " If 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, vkCmdSetPrimitiveRestartEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, vkCmdSetPrimitiveRestartEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-stage-06481", - "text": " The bound graphics pipeline must not have been created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT" + "text": "The bound graphics pipeline must not have been created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08885", - "text": " There must be no shader object bound to either of the VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT stages" + "text": "There must be no shader object bound to either of the VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT stages", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-buffer-02708", - "text": " If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-buffer-02709", - "text": " buffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set" + "text": "buffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-offset-02710", - "text": " offset must be a multiple of 4" + "text": "offset must be a multiple of 4", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-commandBuffer-02711", - "text": " commandBuffer must not be a protected command buffer" + "text": "commandBuffer must not be a protected command buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-countBuffer-02714", - "text": " If countBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If countBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-countBuffer-02715", - "text": " countBuffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set" + "text": "countBuffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-countBufferOffset-02716", - "text": " countBufferOffset must be a multiple of 4" + "text": "countBufferOffset must be a multiple of 4", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-countBuffer-02717", - "text": " The count stored in countBuffer must be less than or equal to VkPhysicalDeviceLimits::maxDrawIndirectCount" + "text": "The count stored in countBuffer must be less than or equal to VkPhysicalDeviceLimits::maxDrawIndirectCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-countBufferOffset-04129", - "text": " (countBufferOffset + sizeof(uint32_t)) must be less than or equal to the size of countBuffer" + "text": "(countBufferOffset + sizeof(uint32_t)) must be less than or equal to the size of countBuffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-04445", - "text": " If drawIndirectCount is not enabled this function must not be used" + "text": "If drawIndirectCount is not enabled this function must not be used", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-stride-03110", - "text": " stride must be a multiple of 4 and must be greater than or equal to sizeof(VkDrawIndirectCommand)" + "text": "stride must be a multiple of 4 and must be greater than or equal to sizeof(VkDrawIndirectCommand)", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-maxDrawCount-03111", - "text": " If maxDrawCount is greater than or equal to 1, (stride {times} (maxDrawCount - 1) + offset + sizeof(VkDrawIndirectCommand)) must be less than or equal to the size of buffer" + "text": "If maxDrawCount is greater than or equal to 1, (stride × (maxDrawCount - 1) + offset + sizeof(VkDrawIndirectCommand)) must be less than or equal to the size of buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-countBuffer-03121", - "text": " If the count stored in countBuffer is equal to 1, (offset + sizeof(VkDrawIndirectCommand)) must be less than or equal to the size of buffer" + "text": "If the count stored in countBuffer is equal to 1, (offset + sizeof(VkDrawIndirectCommand)) must be less than or equal to the size of buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-countBuffer-03122", - "text": " If the count stored in countBuffer is greater than 1, (stride {times} (drawCount - 1) + offset + sizeof(VkDrawIndirectCommand)) must be less than or equal to the size of buffer" + "text": "If the count stored in countBuffer is greater than 1, (stride × (drawCount - 1) + offset + sizeof(VkDrawIndirectCommand)) must be less than or equal to the size of buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-buffer-parameter", - "text": " buffer must be a valid VkBuffer handle" + "text": "buffer must be a valid VkBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-countBuffer-parameter", - "text": " countBuffer must be a valid VkBuffer handle" + "text": "countBuffer must be a valid VkBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-renderpass", - "text": " This command must only be called inside of a render pass instance" + "text": "This command must only be called inside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectCount-commonparent", - "text": " Each of buffer, commandBuffer, and countBuffer must have been created, allocated, or retrieved from the same VkDevice" + "text": "Each of buffer, commandBuffer, and countBuffer must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -39342,1359 +50556,1828 @@ "core": [ { "vuid": "VUID-vkCmdDrawIndexedIndirect-magFilter-04553", - "text": " If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + "text": "If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-mipmapMode-04770", - "text": " If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + "text": "If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-06479", - "text": " If a VkImageView is sampled with depth comparison, the image view’s format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT" + "text": "If a VkImageView is sampled with depth comparison, the image view’s format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-02691", - "text": " If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT" + "text": "If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07888", - "text": " If a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer’s format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT" + "text": "If a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer’s format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-02692", - "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" + "text": "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-02693", - "text": " If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" + "text": "If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-filterCubic-02694", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" + "text": "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-filterCubicMinmax-02695", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" + "text": "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexedIndirect-cubicRangeClamp-09212", + "text": "If the cubicRangeClamp feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command
\n
\n
must not have a VkSamplerReductionModeCreateInfo
\n
\n

reductionMode equal to\nVK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM

\n
\n
\n
", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexedIndirect-reductionMode-09213", + "text": "Any VkImageView being sampled with a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM as a result of this command must sample with VK_FILTER_CUBIC_EXT", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexedIndirect-selectableCubicWeights-09214", + "text": "If the selectableCubicWeights feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have VkSamplerCubicWeightsCreateInfoQCOM::cubicWeights equal to VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-flags-02696", - "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE" + "text": "Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-OpTypeImage-07027", - "text": " For any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT" + "text": "For any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-OpTypeImage-07028", - "text": " For any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT" + "text": "For any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-OpTypeImage-07029", - "text": " For any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT" + "text": "For any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-OpTypeImage-07030", - "text": " Any VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT" + "text": "Any VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08600", - "text": " For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08601", - "text": " For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-maintenance4-08602", - "text": " If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08114", - "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08115", - "text": " If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08116", - "text": " Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08604", - "text": " Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command" + "text": "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08117", - "text": " If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08119", - "text": " If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident" + "text": "If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08605", - "text": " If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident" + "text": "If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08606", - "text": " If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command" + "text": "If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08607", - "text": " If the shaderObject is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command" + "text": "If the shaderObject is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08608", - "text": " If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound" + "text": "If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08609", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08610", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08611", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-uniformBuffers-06935", - "text": " If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08612", - "text": " If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-storageBuffers-06936", - "text": " If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08613", - "text": " If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-commandBuffer-02707", - "text": " If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource" + "text": "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-06550", - "text": " If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions" + "text": "If a bound shader accesses a VkSampler or VkImageView object that enables sampler Y′CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-ConstOffset-06551", - "text": " If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands" + "text": "If a bound shader accesses a VkSampler or VkImageView object that enables sampler Y′CBCR conversion, that object must not use the ConstOffset and Offset operands", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-viewType-07752", - "text": " If a VkImageView is accessed as a result of this command, then the image view’s viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation" + "text": "If a VkImageView is accessed as a result of this command, then the image view’s viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-format-07753", - "text": " If a VkImageView is accessed as a result of this command, then the numeric type of the image view’s format and the Sampled Type operand of the OpTypeImage must match" + "text": "If a VkImageView is accessed as a result of this command, then the numeric type of the image view’s format and the Sampled Type operand of the OpTypeImage must match", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-OpImageWrite-08795", - "text": " If a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format" + "text": "If a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-OpImageWrite-08796", - "text": " If a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components" + "text": "If a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-OpImageWrite-04469", - "text": " If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view’s format" + "text": "If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view’s format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-SampledType-04470", - "text": " If a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64" + "text": "If a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-SampledType-04471", - "text": " If a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32" + "text": "If a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-SampledType-04472", - "text": " If a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64" + "text": "If a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-SampledType-04473", - "text": " If a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32" + "text": "If a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-sparseImageInt64Atomics-04474", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command" + "text": "If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-sparseImageInt64Atomics-04475", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command" + "text": "If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-OpImageWeightedSampleQCOM-06971", - "text": " If OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-OpImageWeightedSampleQCOM-06972", - "text": " If OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-OpImageBoxFilterQCOM-06973", - "text": " If OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM" + "text": "If OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-OpImageBlockMatchSSDQCOM-06974", - "text": " If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM" + "text": "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-OpImageBlockMatchSADQCOM-06975", - "text": " If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM" + "text": "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-OpImageBlockMatchSADQCOM-06976", - "text": " If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation" + "text": "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-OpImageWeightedSampleQCOM-06977", - "text": " If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-OpImageWeightedSampleQCOM-06978", - "text": " If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM" + "text": "If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexedIndirect-OpImageBlockMatchWindow-09215", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexedIndirect-OpImageBlockMatchWindow-09216", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view’s format must be a single-component format.", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexedIndirect-OpImageBlockMatchWindow-09217", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07288", - "text": " Any shader invocation executed by this command must terminate" + "text": "Any shader invocation executed by this command must terminate", + "page": "vkspec" }, { "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" + "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", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-subpass-02685", - "text": " The subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS" + "text": "The subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07748", - "text": " If any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set" + "text": "If any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-OpTypeImage-07468", - "text": " If any shader executed by this pipeline accesses an OpTypeImage variable with a Dim operand of SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass" + "text": "If any shader executed by this pipeline accesses an OpTypeImage variable with a Dim operand of SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07469", - "text": " Input attachment views accessed in a subpass must be created with the same VkFormat as the corresponding subpass definition, and be created with a VkImageView that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound VkFramebuffer as specified by Fragment Input Attachment Compatibility" + "text": "Input attachment views accessed in a subpass must be created with the same VkFormat as the corresponding subpass definition, and be created with a VkImageView that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound VkFramebuffer as specified by Fragment Input Attachment Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-06537", - "text": " Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command" + "text": "Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command", + "page": "vkspec" }, { "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
" + "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
", + "page": "vkspec" }, { "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
" + "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
", + "page": "vkspec" }, { "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
" + "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-09003", - "text": " If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command" + "text": "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-06539", - "text": " If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment" + "text": "If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-06886", - "text": " If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled" + "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-06887", - "text": " If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back writeMask are not zero, and stencil test is enabled, all stencil ops must be VK_STENCIL_OP_KEEP" + "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back writeMask are not zero, and stencil test is enabled, all stencil ops must be VK_STENCIL_OP_KEEP", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07831", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07832", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07833", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08617", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08618", - "text": " If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08619", - "text": " If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07834", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08620", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07835", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08621", - "text": " If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07836", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled, and if the current depthBoundsTestEnable state is VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08622", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07837", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08623", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07838", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled then vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08624", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07839", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled then vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08625", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-maxMultiviewInstanceIndex-02688", - "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex" + "text": "If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-02689", - "text": " If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set" + "text": "If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-06666", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08626", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetSampleLocationsEnableEXT in the current command buffer set sampleLocationsEnable to VK_TRUE, vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetSampleLocationsEnableEXT in the current command buffer set sampleLocationsEnable to VK_TRUE, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-sampleLocationsPerPixel-07934", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07840", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08627", - "text": " If a shader object is bound to any graphics stage, vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07841", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08628", - "text": " If a shader object is bound to any graphics stage, vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07843", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08629", - "text": " If a shader object is bound to any graphics stage, vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07844", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08630", - "text": " If a shader object is bound to any graphics stage, vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07845", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08631", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthTestEnable in the current command buffer set depthTestEnable to VK_TRUE, vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetDepthTestEnable in the current command buffer set depthTestEnable to VK_TRUE, then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07846", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled then vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled then vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08632", - "text": " If a shader object is bound to any graphics stage, and the depthBounds feature is enabled, the vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the depthBounds feature is enabled, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07847", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08633", - "text": " If 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, then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07848", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08634", - "text": " If 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 vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-viewportCount-03417", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-scissorCount-03418", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the scissorCount parameter of vkCmdSetScissorWithCount must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the scissorCount parameter of vkCmdSetScissorWithCount must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-viewportCount-03419", - "text": " If the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount" + "text": "If the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08635", - "text": " If a shader object is bound to any graphics stage, then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount" + "text": "If a shader object is bound to any graphics stage, then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-viewportCount-04137", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-viewportCount-04138", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexedIndirect-None-09232", + "text": "If a shader object is bound to any graphics stage, and the VK_NV_clip_space_w_scaling extension is enabled on the device, then vkCmdSetViewportWScalingNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08636", - "text": " If a shader object is bound to any graphics stage, and the VK_NV_clip_space_w_scaling extension is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If a shader object is bound to any graphics stage, and the VK_NV_clip_space_w_scaling extension is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-viewportCount-04139", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-viewportCount-04140", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexedIndirect-shadingRateImage-09233", + "text": "If the shadingRateImage feature is enabled, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoarseSampleOrderNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexedIndirect-shadingRateImage-09234", + "text": "If a shader object is bound to any graphics stage, and the shadingRateImage feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetShadingRateImageEnableNV in the current command buffer set shadingRateImageEnable to VK_TRUE, then vkCmdSetViewportShadingRatePaletteNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08637", - "text": " If a shader object is bound to any graphics stage, and the shadingRateImage feature is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If a shader object is bound to any graphics stage, and the shadingRateImage feature is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-VkPipelineVieportCreateInfo-04141", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportSwizzleStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportSwizzleStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-VkPipelineVieportCreateInfo-04142", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportExclusiveScissorStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportExclusiveScissorStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07878", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07879", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexedIndirect-exclusiveScissor-09235", + "text": "If a shader object is bound to any graphics stage, and the exclusiveScissor feature is enabled, then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08638", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetExclusiveScissorEnableNV in the current command buffer set any element of pExclusiveScissorEnables to VK_TRUE, then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetExclusiveScissorEnableNV in the current command buffer set any element of pExclusiveScissorEnables to VK_TRUE, then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-04876", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08639", - "text": " If a shader object is bound to any graphics stage, then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-04877", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08640", - "text": " If 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, then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-logicOp-04878", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08641", - "text": " If a shader object is bound to any graphics stage, and the logicOp feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the logicOp feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-primitiveFragmentShadingRateWithMultipleViewports-04552", - "text": " If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1" + "text": "If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-primitiveFragmentShadingRateWithMultipleViewports-08642", - "text": " If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and any shader object bound to a graphics stage writes to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1" + "text": "If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and any shader object bound to a graphics stage writes to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-blendEnable-04727", - "text": " If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the blendEnable member of the corresponding element of the pAttachments member of pColorBlendState must be VK_FALSE" + "text": "If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the blendEnable member of the corresponding element of the pAttachments member of pColorBlendState must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08643", - "text": " If 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, then for each color attachment in the render pass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the corresponding member of pColorBlendEnables in the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer that affected that attachment index must have been VK_FALSE" + "text": "If 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, then for each color attachment in the render pass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the corresponding member of pColorBlendEnables in the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer that affected that attachment index must have been VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-multisampledRenderToSingleSampled-07284", - "text": " If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments" + "text": "If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08644", - "text": " If 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 none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then the most recent call to vkCmdSetRasterizationSamplesEXT in the current command buffer must have set rasterizationSamples to be the same as the number of samples for the current render pass color and/or depth/stencil attachments" + "text": "If 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 none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then the most recent call to vkCmdSetRasterizationSamplesEXT in the current command buffer must have set rasterizationSamples to be the same as the number of samples for the current render pass color and/or depth/stencil attachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08876", - "text": " If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering" + "text": "If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-imageView-06172", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-imageView-06173", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-imageView-06174", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, this command must not write any values to the depth attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, this command must not write any values to the depth attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-imageView-06175", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-imageView-06176", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-imageView-06177", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-viewMask-06178", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::viewMask equal to VkRenderingInfo::viewMask" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::viewMask equal to VkRenderingInfo::viewMask", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-06179", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::colorAttachmentCount equal to VkRenderingInfo::colorAttachmentCount" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::colorAttachmentCount equal to VkRenderingInfo::colorAttachmentCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08910", - "text": " If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline" + "text": "If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08911", - "text": " If the dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats, if it exists, must be VK_FORMAT_UNDEFINED" + "text": "If the dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats, if it exists, must be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08912", - "text": " If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED" + "text": "If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED", + "page": "vkspec" + }, + { + "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 currently bound graphics pipeline", + "page": "vkspec" + }, + { + "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 currently bound graphics pipeline", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexedIndirect-None-09364", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled, then vkCmdSetColorBlendEnableEXT must have set the blend enable to VK_FALSE prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexedIndirect-None-09365", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexedIndirect-None-09368", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexedIndirect-None-09369", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07749", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08646", - "text": " If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the fragment stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-attachmentCount-07750", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the attachmentCount parameter of vkCmdSetColorWriteEnableEXT must be greater than or equal to the VkPipelineColorBlendStateCreateInfo::attachmentCount of the currently bound graphics pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the attachmentCount parameter of vkCmdSetColorWriteEnableEXT must be greater than or equal to the VkPipelineColorBlendStateCreateInfo::attachmentCount of the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08647", - "text": " If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the fragment stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the attachmentCount parameter of most recent call to vkCmdSetColorWriteEnableEXT in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance" + "text": "If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the attachmentCount parameter of most recent call to vkCmdSetColorWriteEnableEXT in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07751", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07880", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexedIndirect-rasterizerDiscardEnable-09236", + "text": "If the VK_EXT_discard_rectangles extension is 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, then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08648", - "text": " If the VK_EXT_discard_rectangles extension is 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, then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_discard_rectangles extension is 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, then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07881", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08649", - "text": " If the VK_EXT_discard_rectangles extension is 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 vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_discard_rectangles extension is 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 vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08913", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08914", - "text": " If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView" + "text": "If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08915", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08916", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08917", - "text": " If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView" + "text": "If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08918", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-imageView-06183", - "text": " If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentShadingRateAttachmentInfoKHR::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR" + "text": "If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentShadingRateAttachmentInfoKHR::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-imageView-06184", - "text": " If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT" + "text": "If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-06185", - "text": " If the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline" + "text": "If the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-pDepthAttachment-06186", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-pStencilAttachment-06187", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-multisampledRenderToSingleSampled-07285", - "text": " If the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of rasterizationSamples for the currently bound graphics pipeline" + "text": "If the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of rasterizationSamples for the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-multisampledRenderToSingleSampled-07286", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-multisampledRenderToSingleSampled-07287", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-pNext-07935", - "text": " If this command has been called inside a render pass instance started with vkCmdBeginRendering, and the pNext chain of VkRenderingInfo includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the value of rasterizationSamples for the currently bound graphics pipeline must be equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples" + "text": "If this command has been called inside a render pass instance started with vkCmdBeginRendering, and the pNext chain of VkRenderingInfo includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the value of rasterizationSamples for the currently bound graphics pipeline must be equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-renderPass-06198", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline must have been created with a VkGraphicsPipelineCreateInfo::renderPass equal to VK_NULL_HANDLE" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline must have been created with a VkGraphicsPipelineCreateInfo::renderPass equal to VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-pColorAttachments-08963", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the VkRenderingInfo::pColorAttachments->imageView was not VK_NULL_HANDLE, then the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the pipeline must not be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the VkRenderingInfo::pColorAttachments->imageView was not VK_NULL_HANDLE, then the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the pipeline must not be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-pDepthAttachment-08964", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-pStencilAttachment-08965", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, stencil test is enabled and the VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, stencil test is enabled and the VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-primitivesGeneratedQueryWithRasterizerDiscard-06708", - "text": " If the primitivesGeneratedQueryWithRasterizerDiscard feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, rasterization discard must not be enabled" + "text": "If the primitivesGeneratedQueryWithRasterizerDiscard feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, rasterization discard must not be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-primitivesGeneratedQueryWithNonZeroStreams-06709", - "text": " If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, the bound graphics pipeline must not have been created with a non-zero value in VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream" + "text": "If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, the bound graphics pipeline must not have been created with a non-zero value in VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07619", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07620", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexedIndirect-None-09237", + "text": "If a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08650", - "text": " If the depthClamp feature is 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, then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the depthClamp feature is 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, then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07621", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08651", - "text": " If 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, then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07622", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08652", - "text": " If 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, then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07623", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08653", - "text": " If 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, then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07624", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-alphaToCoverageEnable-08919", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and alphaToCoverageEnable was VK_TRUE in the last call to vkCmdSetAlphaToCoverageEnableEXT, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and alphaToCoverageEnable was VK_TRUE in the last call to vkCmdSetAlphaToCoverageEnableEXT, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08654", - "text": " If 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, then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-alphaToCoverageEnable-08920", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetAlphaToCoverageEnableEXT in the current command buffer set alphaToCoverageEnable to VK_TRUE, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetAlphaToCoverageEnableEXT in the current command buffer set alphaToCoverageEnable to VK_TRUE, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07625", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08655", - "text": " If the alphaToOne feature is 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, then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the alphaToOne feature is 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, then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07626", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08656", - "text": " If the logicOp feature is 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, then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the logicOp feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07627", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08657", - "text": " If 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, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07628", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08658", - "text": " If 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 vkCmdSetColorBlendEnableEXT for any attachment set that attachment’s value in pColorBlendEnables to VK_TRUE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetColorBlendEnableEXT for any attachment set that attachment’s value in pColorBlendEnables to VK_TRUE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07629", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08659", - "text": " If 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, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07630", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08660", - "text": " If the geometryStreams feature is enabled, and a shader object is bound to the geometry stage, then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the geometryStreams feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_GEOMETRY_BIT stage, then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07631", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08661", - "text": " If the VK_EXT_conservative_rasterization extension is 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, then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_conservative_rasterization extension is 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, then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07632", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08662", - "text": " If the VK_EXT_conservative_rasterization extension is 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 vkCmdSetConservativeRasterizationModeEXT in the current command buffer set conservativeRasterizationMode to VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_conservative_rasterization extension is 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 vkCmdSetConservativeRasterizationModeEXT in the current command buffer set conservativeRasterizationMode to VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07633", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08663", - "text": " If the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07634", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08664", - "text": " If the VK_EXT_sample_locations extension is 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, then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_sample_locations extension is 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, then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07635", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07636", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08665", - "text": " If the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the vertex stage, then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "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 in the current command buffer prior to this drawing command" + "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 in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08666", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08667", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08668", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "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 in the current command buffer prior to this drawing command" + "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 in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08669", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08670", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08671", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07849", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_EXT dynamic state enabled then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_EXT dynamic state enabled then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08672", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetLineStippleEnableEXT in the current command buffer set stippledLineEnable to VK_TRUE, then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetLineStippleEnableEXT in the current command buffer set stippledLineEnable to VK_TRUE, then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07639", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08673", - "text": " If the depthClipControl feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the depthClipControl feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07640", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08674", - "text": " If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07641", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08675", - "text": " If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07642", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08676", - "text": " If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07643", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08677", - "text": " If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetCoverageToColorEnableNV in the current command buffer set coverageToColorEnable to VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetCoverageToColorEnableNV in the current command buffer set coverageToColorEnable to VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07644", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08678", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_framebuffer_mixed_samples extension is 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, then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07645", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08679", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_framebuffer_mixed_samples extension is 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 vkCmdSetCoverageModulationModeNV in the current command buffer set coverageModulationMode to any value other than VK_COVERAGE_MODULATION_MODE_NONE_NV, then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07646", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08680", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetCoverageModulationTableEnableNV in the current command buffer set coverageModulationTableEnable to VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_framebuffer_mixed_samples extension is 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 vkCmdSetCoverageModulationTableEnableNV in the current command buffer set coverageModulationTableEnable to VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07647", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexedIndirect-pipelineFragmentShadingRate-09238", + "text": "If the pipelineFragmentShadingRate feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetFragmentShadingRateKHR must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08681", - "text": " If the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the shadingRateImage feature is 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, then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07648", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08682", - "text": " If the representativeFragmentTest feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the representativeFragmentTest feature is 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, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07649", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08683", - "text": " If the coverageReductionMode feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the coverageReductionMode feature is 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, then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-pColorBlendEnables-07470", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT state enabled and the last call to vkCmdSetColorBlendEnableEXT set pColorBlendEnables for any attachment to VK_TRUE, then for those attachments in the subpass the corresponding image view’s format features must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT state enabled and the last call to vkCmdSetColorBlendEnableEXT set pColorBlendEnables for any attachment to VK_TRUE, then for those attachments in the subpass the corresponding image view’s format features must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-rasterizationSamples-07471", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must follow the rules for a zero-attachment subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must follow the rules for a zero-attachment subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-samples-07472", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the VkPipelineMultisampleStateCreateInfo::rasterizationSamples parameter used to create the bound graphics pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the VkPipelineMultisampleStateCreateInfo::rasterizationSamples parameter used to create the bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-samples-07473", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the rasterizationSamples parameter in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the rasterizationSamples parameter in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirect-multisampledRenderToSingleSampled-07475", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and none of the VK_AMD_mixed_attachment_samples extension, VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the current subpass color and/or depth/stencil attachments" + "vuid": "VUID-vkCmdDrawIndexedIndirect-rasterizationSamples-07474", + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples extensions are enabled, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the current subpass color and/or depth/stencil attachments", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexedIndirect-None-09211", + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the rasterizationSamples member of that structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-firstAttachment-07476", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-firstAttachment-07477", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-firstAttachment-07478", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-firstAttachment-07479", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-advancedBlendMaxColorAttachments-07480", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT and VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic states enabled and the last calls to vkCmdSetColorBlendEnableEXT and vkCmdSetColorBlendAdvancedEXT have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed advancedBlendMaxColorAttachments" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT and VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic states enabled and the last calls to vkCmdSetColorBlendEnableEXT and vkCmdSetColorBlendAdvancedEXT have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed advancedBlendMaxColorAttachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-primitivesGeneratedQueryWithNonZeroStreams-07481", - "text": " If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, and the bound graphics pipeline was created with VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT state enabled, the last call to vkCmdSetRasterizationStreamEXT must have set the rasterizationStream to zero" + "text": "If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, and the bound graphics pipeline was created with VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT state enabled, the last call to vkCmdSetRasterizationStreamEXT must have set the rasterizationStream to zero", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-sampleLocationsPerPixel-07482", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-sampleLocationsPerPixel-07483", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples parameter of the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples parameter of the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-07484", - "text": " If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set" + "text": "If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-07485", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.width in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.width in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-07486", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.height in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.height in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-07487", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, the fragment shader code must not statically use the extended instruction InterpolateAtSample" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, the fragment shader code must not statically use the extended instruction InterpolateAtSample", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-07936", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.width must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.width must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-07937", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.height must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.height must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-07938", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-coverageModulationTableEnable-07488", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-rasterizationSamples-07489", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment" + "text": "If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-coverageToColorEnable-07490", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-coverageReductionMode-07491", - "text": " If this VK_NV_coverage_reduction_mode extension is enabled, the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, the current coverage reduction mode coverageReductionMode, then the current rasterizationSamples, and the sample counts for the color and depth/stencil attachments (if the subpass has them) must be a valid combination returned by vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV" + "text": "If this VK_NV_coverage_reduction_mode extension is enabled, the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, the current coverage reduction mode coverageReductionMode, then the current rasterizationSamples, and the sample counts for the color and depth/stencil attachments (if the subpass has them) must be a valid combination returned by vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-viewportCount-07492", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-viewportCount-07493", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-rasterizationSamples-07494", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE" + "text": "If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-stippledLineEnable-07495", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-stippledLineEnable-07496", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-stippledLineEnable-07497", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-stippledLineEnable-07498", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-conservativePointAndLineRasterization-07499", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, conservativePointAndLineRasterization is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the conservativeRasterizationMode set by the last call to vkCmdSetConservativeRasterizationModeEXT must be VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, conservativePointAndLineRasterization is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the conservativeRasterizationMode set by the last call to vkCmdSetConservativeRasterizationModeEXT must be VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-stage-07073", - "text": " If the currently bound pipeline was created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT, then Mesh Shader Queries must not be active" + "text": "If the currently bound pipeline was created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT, then Mesh Shader Queries must not be active", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08877", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07850", - "text": " If dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command" + "text": "If dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08684", - "text": " If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_VERTEX_BIT" + "text": "If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_VERTEX_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08685", - "text": " If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT" + "text": "If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08686", - "text": " If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT" + "text": "If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08687", - "text": " If there is no bound graphics pipeline, and the geometryShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_GEOMETRY_BIT" + "text": "If there is no bound graphics pipeline, and the geometryShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_GEOMETRY_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08688", - "text": " If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_FRAGMENT_BIT" + "text": "If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_FRAGMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08689", - "text": " If there is no bound graphics pipeline, and the taskShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TASK_BIT_EXT" + "text": "If there is no bound graphics pipeline, and the taskShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TASK_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08690", - "text": " If there is no bound graphics pipeline, and the meshShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_MESH_BIT_EXT" + "text": "If there is no bound graphics pipeline, and the meshShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_MESH_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08693", - "text": " If there is no bound graphics pipeline, and at least one of the taskShader and meshShader features is enabled, one of the VK_SHADER_STAGE_VERTEX_BIT or VK_SHADER_STAGE_MESH_BIT_EXT stages must have a valid VkShaderEXT bound, and the other must have no VkShaderEXT bound" + "text": "If there is no bound graphics pipeline, and at least one of the taskShader and meshShader features is enabled, one of the VK_SHADER_STAGE_VERTEX_BIT or VK_SHADER_STAGE_MESH_BIT_EXT stages must have a valid VkShaderEXT bound, and the other must have no VkShaderEXT bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08694", - "text": " If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created without the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, a valid VkShaderEXT must be bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage" + "text": "If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created without the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, a valid VkShaderEXT must be bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08695", - "text": " If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created with the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, there must be no VkShaderEXT bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage" + "text": "If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created with the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, there must be no VkShaderEXT bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08696", - "text": " If there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage" + "text": "If there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08698", - "text": " If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound" + "text": "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08699", - "text": " If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound" + "text": "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08878", - "text": " All bound graphics shader objects must have been created with identical or identically defined push constant ranges" + "text": "All bound graphics shader objects must have been created with identical or identically defined push constant ranges", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08879", - "text": " All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts" + "text": "All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08880", - "text": " If there is no bound graphics pipeline and the attachmentFeedbackLoopDynamicState feature is enabled on the device, vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage and the attachmentFeedbackLoopDynamicState feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-pDynamicStates-08715", - "text": " If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable parameter in the last call to vkCmdSetDepthWriteEnable must be VK_FALSE" + "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable parameter in the last call to vkCmdSetDepthWriteEnable must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-pDynamicStates-08716", - "text": " If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_STENCIL_WRITE_MASK set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the writeMask parameter in the last call to vkCmdSetStencilWriteMask must be 0" + "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_STENCIL_WRITE_MASK set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the writeMask parameter in the last call to vkCmdSetStencilWriteMask must be 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-09116", - "text": " If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them" + "text": "If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexedIndirect-maxFragmentDualSrcAttachments-09239", + "text": "If blending is enabled for any attachment where either the source or destination blend factors for that attachment use the secondary color input, the maximum value of Location for any output attachment statically used in the Fragment Execution Model executed by this command must be less than maxFragmentDualSrcAttachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-04007", - "text": " All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must have either valid or VK_NULL_HANDLE buffers bound" + "text": "All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must have either valid or VK_NULL_HANDLE buffers bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-04008", - "text": " If the nullDescriptor feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must not be VK_NULL_HANDLE" + "text": "If the nullDescriptor feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must not be VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-02721", - "text": " For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description" + "text": "For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07842", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state enabled then vkCmdSetPrimitiveTopology must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state enabled then vkCmdSetPrimitiveTopology must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-dynamicPrimitiveTopologyUnrestricted-07500", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state enabled and the dynamicPrimitiveTopologyUnrestricted is VK_FALSE, then the primitiveTopology parameter of vkCmdSetPrimitiveTopology must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state enabled and the dynamicPrimitiveTopologyUnrestricted is VK_FALSE, then the primitiveTopology parameter of vkCmdSetPrimitiveTopology must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-04912", - "text": " If the bound graphics pipeline was created with both the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT and VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic states enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command" + "text": "If the bound graphics pipeline was created with both the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT and VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic states enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-pStrides-04913", - "text": " If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdBindVertexBuffers2EXT must have been called in the current command buffer prior to this draw command, and the pStrides parameter of vkCmdBindVertexBuffers2EXT must not be NULL" + "text": "If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdBindVertexBuffers2EXT must have been called in the current command buffer prior to this draw command, and the pStrides parameter of vkCmdBindVertexBuffers2EXT must not be NULL", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08881", - "text": " If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetPrimitiveTopology must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetPrimitiveTopology must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-04914", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-Input-07939", - "text": " If 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 {ExecutionModel} OpEntryPoint must contain a location in VkVertexInputAttributeDescription2EXT::location" + "text": "If 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": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-Input-08734", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then the numeric type associated with all Input variables of the corresponding Location in the Vertex {ExecutionModel} OpEntryPoint must be the same as VkVertexInputAttributeDescription2EXT::format" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then the numeric type associated with all Input variables of the corresponding Location in the Vertex Execution Model OpEntryPoint must be the same as VkVertexInputAttributeDescription2EXT::format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-format-08936", - "text": " If there is a shader object bound to a graphics stage or the currently bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, and VkVertexInputAttributeDescription2EXT::format has a 64-bit component, then the scalar width associated with all Input variables of the corresponding Location in the Vertex {ExecutionModel} OpEntryPoint must be 64-bit" + "text": "If there is a shader object bound to a graphics stage or the currently bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, and VkVertexInputAttributeDescription2EXT::format has a 64-bit component, then the scalar width associated with all Input variables of the corresponding Location in the Vertex Execution Model OpEntryPoint must be 64-bit", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-format-08937", - "text": " If there is a shader object bound to a graphics stage or the currently bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, and the scalar width associated with a Location decorated Input variable in the Vertex {ExecutionModel} OpEntryPoint is 64-bit, then the corresponding VkVertexInputAttributeDescription2EXT::format must have a 64-bit component" + "text": "If there is a shader object bound to a graphics stage or the currently bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, and the scalar width associated with a Location decorated Input variable in the Vertex Execution Model OpEntryPoint is 64-bit, then the corresponding VkVertexInputAttributeDescription2EXT::format must have a 64-bit component", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-09203", - "text": " If there is a shader object bound to a graphics stage or the currently bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, and VkVertexInputAttributeDescription2EXT::format has a 64-bit component, then all Input variables at the corresponding Location in the Vertex {ExecutionModel} OpEntryPoint must not use components that are not present in the format" + "text": "If there is a shader object bound to a graphics stage or the currently bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, and VkVertexInputAttributeDescription2EXT::format has a 64-bit component, then all Input variables at the corresponding Location in the Vertex Execution Model OpEntryPoint must not use components that are not present in the format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08882", - "text": " If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-04875", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT dynamic state enabled then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT dynamic state enabled then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08883", - "text": " If a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-04879", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then vkCmdSetPrimitiveRestartEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then vkCmdSetPrimitiveRestartEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-rasterizerDiscardEnable-08884", - "text": " If 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, vkCmdSetPrimitiveRestartEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, vkCmdSetPrimitiveRestartEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-stage-06481", - "text": " The bound graphics pipeline must not have been created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT" + "text": "The bound graphics pipeline must not have been created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08885", - "text": " There must be no shader object bound to either of the VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT stages" + "text": "There must be no shader object bound to either of the VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT stages", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-buffer-02708", - "text": " If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-buffer-02709", - "text": " buffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set" + "text": "buffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-offset-02710", - "text": " offset must be a multiple of 4" + "text": "offset must be a multiple of 4", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-commandBuffer-02711", - "text": " commandBuffer must not be a protected command buffer" + "text": "commandBuffer must not be a protected command buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-drawCount-02718", - "text": " If the multiDrawIndirect feature is not enabled, drawCount must be 0 or 1" + "text": "If the multiDrawIndirect feature is not enabled, drawCount must be 0 or 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-drawCount-02719", - "text": " drawCount must be less than or equal to VkPhysicalDeviceLimits::maxDrawIndirectCount" + "text": "drawCount must be less than or equal to VkPhysicalDeviceLimits::maxDrawIndirectCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07312", - "text": " An index buffer must be bound" + "text": "An index buffer must be bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-robustBufferAccess2-07825", - "text": " If robustBufferAccess2 is not enabled, (indexSize {times} (firstIndex + indexCount) + offset) must be less than or equal to the size of the bound index buffer, with indexSize being based on the type specified by indexType, where the index buffer, indexType, and offset are specified via vkCmdBindIndexBuffer" + "text": "If robustBufferAccess2 is not enabled, (indexSize × (firstIndex + indexCount) + offset) must be less than or equal to the size of the bound index buffer, with indexSize being based on the type specified by indexType, where the index buffer, indexType, and offset are specified via vkCmdBindIndexBuffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-drawCount-00528", - "text": " If drawCount is greater than 1, stride must be a multiple of 4 and must be greater than or equal to sizeof(VkDrawIndexedIndirectCommand)" + "text": "If drawCount is greater than 1, stride must be a multiple of 4 and must be greater than or equal to sizeof(VkDrawIndexedIndirectCommand)", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-drawCount-00539", - "text": " If drawCount is equal to 1, (offset + sizeof(VkDrawIndexedIndirectCommand)) must be less than or equal to the size of buffer" + "text": "If drawCount is equal to 1, (offset + sizeof(VkDrawIndexedIndirectCommand)) must be less than or equal to the size of buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-drawCount-00540", - "text": " If drawCount is greater than 1, (stride {times} (drawCount - 1) + offset + sizeof(VkDrawIndexedIndirectCommand)) must be less than or equal to the size of buffer" + "text": "If drawCount is greater than 1, (stride × (drawCount - 1) + offset + sizeof(VkDrawIndexedIndirectCommand)) must be less than or equal to the size of buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-buffer-parameter", - "text": " buffer must be a valid VkBuffer handle" + "text": "buffer must be a valid VkBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-renderpass", - "text": " This command must only be called inside of a render pass instance" + "text": "This command must only be called inside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-commonparent", - "text": " Both of buffer, and commandBuffer must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of buffer, and commandBuffer must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -40702,15 +52385,18 @@ "core": [ { "vuid": "VUID-VkDrawIndexedIndirectCommand-robustBufferAccess2-08798", - "text": " If robustBufferAccess2 is not enabled, (indexSize {times} (firstIndex + indexCount) + offset) must be less than or equal to the size of the bound index buffer, with indexSize being based on the type specified by indexType, where the index buffer, indexType, and offset are specified via vkCmdBindIndexBuffer or vkCmdBindIndexBuffer2KHR. If vkCmdBindIndexBuffer2KHR is used to bind the index buffer, the size of the bound index buffer is vkCmdBindIndexBuffer2KHR::size" + "text": "If robustBufferAccess2 is not enabled, (indexSize × (firstIndex + indexCount) + offset) must be less than or equal to the size of the bound index buffer, with indexSize being based on the type specified by indexType, where the index buffer, indexType, and offset are specified via vkCmdBindIndexBuffer or vkCmdBindIndexBuffer2KHR. If vkCmdBindIndexBuffer2KHR is used to bind the index buffer, the size of the bound index buffer is vkCmdBindIndexBuffer2KHR::size", + "page": "vkspec" }, { "vuid": "VUID-VkDrawIndexedIndirectCommand-None-00552", - "text": " For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description" + "text": "For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description", + "page": "vkspec" }, { "vuid": "VUID-VkDrawIndexedIndirectCommand-firstInstance-00554", - "text": " If the drawIndirectFirstInstance feature is not enabled, firstInstance must be 0" + "text": "If the drawIndirectFirstInstance feature is not enabled, firstInstance must be 0", + "page": "vkspec" } ] }, @@ -40718,1383 +52404,1858 @@ "core": [ { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-magFilter-04553", - "text": " If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + "text": "If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-mipmapMode-04770", - "text": " If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + "text": "If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-06479", - "text": " If a VkImageView is sampled with depth comparison, the image view’s format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT" + "text": "If a VkImageView is sampled with depth comparison, the image view’s format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02691", - "text": " If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT" + "text": "If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07888", - "text": " If a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer’s format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT" + "text": "If a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer’s format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02692", - "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" + "text": "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02693", - "text": " If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" + "text": "If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-filterCubic-02694", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" + "text": "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-filterCubicMinmax-02695", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" + "text": "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-cubicRangeClamp-09212", + "text": "If the cubicRangeClamp feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command
\n
\n
must not have a VkSamplerReductionModeCreateInfo
\n
\n

reductionMode equal to\nVK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM

\n
\n
\n
", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-reductionMode-09213", + "text": "Any VkImageView being sampled with a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM as a result of this command must sample with VK_FILTER_CUBIC_EXT", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-selectableCubicWeights-09214", + "text": "If the selectableCubicWeights feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have VkSamplerCubicWeightsCreateInfoQCOM::cubicWeights equal to VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-flags-02696", - "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE" + "text": "Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-OpTypeImage-07027", - "text": " For any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT" + "text": "For any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-OpTypeImage-07028", - "text": " For any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT" + "text": "For any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-OpTypeImage-07029", - "text": " For any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT" + "text": "For any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-OpTypeImage-07030", - "text": " Any VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT" + "text": "Any VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08600", - "text": " For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08601", - "text": " For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-maintenance4-08602", - "text": " If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08114", - "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08115", - "text": " If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08116", - "text": " Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08604", - "text": " Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command" + "text": "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08117", - "text": " If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08119", - "text": " If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident" + "text": "If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08605", - "text": " If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident" + "text": "If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08606", - "text": " If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command" + "text": "If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08607", - "text": " If the shaderObject is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command" + "text": "If the shaderObject is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08608", - "text": " If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound" + "text": "If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08609", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08610", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08611", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-uniformBuffers-06935", - "text": " If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08612", - "text": " If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-storageBuffers-06936", - "text": " If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08613", - "text": " If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-02707", - "text": " If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource" + "text": "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-06550", - "text": " If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions" + "text": "If a bound shader accesses a VkSampler or VkImageView object that enables sampler Y′CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-ConstOffset-06551", - "text": " If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands" + "text": "If a bound shader accesses a VkSampler or VkImageView object that enables sampler Y′CBCR conversion, that object must not use the ConstOffset and Offset operands", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-viewType-07752", - "text": " If a VkImageView is accessed as a result of this command, then the image view’s viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation" + "text": "If a VkImageView is accessed as a result of this command, then the image view’s viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-format-07753", - "text": " If a VkImageView is accessed as a result of this command, then the numeric type of the image view’s format and the Sampled Type operand of the OpTypeImage must match" + "text": "If a VkImageView is accessed as a result of this command, then the numeric type of the image view’s format and the Sampled Type operand of the OpTypeImage must match", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-OpImageWrite-08795", - "text": " If a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format" + "text": "If a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-OpImageWrite-08796", - "text": " If a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components" + "text": "If a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-OpImageWrite-04469", - "text": " If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view’s format" + "text": "If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view’s format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-SampledType-04470", - "text": " If a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64" + "text": "If a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-SampledType-04471", - "text": " If a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32" + "text": "If a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-SampledType-04472", - "text": " If a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64" + "text": "If a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-SampledType-04473", - "text": " If a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32" + "text": "If a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-sparseImageInt64Atomics-04474", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command" + "text": "If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-sparseImageInt64Atomics-04475", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command" + "text": "If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-OpImageWeightedSampleQCOM-06971", - "text": " If OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-OpImageWeightedSampleQCOM-06972", - "text": " If OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-OpImageBoxFilterQCOM-06973", - "text": " If OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM" + "text": "If OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-OpImageBlockMatchSSDQCOM-06974", - "text": " If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM" + "text": "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-OpImageBlockMatchSADQCOM-06975", - "text": " If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM" + "text": "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-OpImageBlockMatchSADQCOM-06976", - "text": " If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation" + "text": "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-OpImageWeightedSampleQCOM-06977", - "text": " If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-OpImageWeightedSampleQCOM-06978", - "text": " If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM" + "text": "If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-OpImageBlockMatchWindow-09215", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-OpImageBlockMatchWindow-09216", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view’s format must be a single-component format.", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-OpImageBlockMatchWindow-09217", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07288", - "text": " Any shader invocation executed by this command must terminate" + "text": "Any shader invocation executed by this command must terminate", + "page": "vkspec" }, { "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" + "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", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-subpass-02685", - "text": " The subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS" + "text": "The subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07748", - "text": " If any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set" + "text": "If any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-OpTypeImage-07468", - "text": " If any shader executed by this pipeline accesses an OpTypeImage variable with a Dim operand of SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass" + "text": "If any shader executed by this pipeline accesses an OpTypeImage variable with a Dim operand of SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07469", - "text": " Input attachment views accessed in a subpass must be created with the same VkFormat as the corresponding subpass definition, and be created with a VkImageView that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound VkFramebuffer as specified by Fragment Input Attachment Compatibility" + "text": "Input attachment views accessed in a subpass must be created with the same VkFormat as the corresponding subpass definition, and be created with a VkImageView that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound VkFramebuffer as specified by Fragment Input Attachment Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-06537", - "text": " Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command" + "text": "Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command", + "page": "vkspec" }, { "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
" + "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
", + "page": "vkspec" }, { "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
" + "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
", + "page": "vkspec" }, { "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
" + "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-09003", - "text": " If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command" + "text": "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-06539", - "text": " If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment" + "text": "If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-06886", - "text": " If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled" + "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-06887", - "text": " If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back writeMask are not zero, and stencil test is enabled, all stencil ops must be VK_STENCIL_OP_KEEP" + "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back writeMask are not zero, and stencil test is enabled, all stencil ops must be VK_STENCIL_OP_KEEP", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07831", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07832", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07833", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08617", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08618", - "text": " If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08619", - "text": " If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07834", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08620", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07835", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08621", - "text": " If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07836", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled, and if the current depthBoundsTestEnable state is VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08622", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07837", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08623", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07838", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled then vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08624", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07839", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled then vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08625", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-maxMultiviewInstanceIndex-02688", - "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex" + "text": "If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-02689", - "text": " If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set" + "text": "If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-06666", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08626", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetSampleLocationsEnableEXT in the current command buffer set sampleLocationsEnable to VK_TRUE, vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetSampleLocationsEnableEXT in the current command buffer set sampleLocationsEnable to VK_TRUE, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsPerPixel-07934", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07840", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08627", - "text": " If a shader object is bound to any graphics stage, vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07841", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08628", - "text": " If a shader object is bound to any graphics stage, vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07843", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08629", - "text": " If a shader object is bound to any graphics stage, vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07844", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08630", - "text": " If a shader object is bound to any graphics stage, vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07845", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08631", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthTestEnable in the current command buffer set depthTestEnable to VK_TRUE, vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetDepthTestEnable in the current command buffer set depthTestEnable to VK_TRUE, then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07846", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled then vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled then vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08632", - "text": " If a shader object is bound to any graphics stage, and the depthBounds feature is enabled, the vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the depthBounds feature is enabled, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07847", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08633", - "text": " If 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, then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07848", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08634", - "text": " If 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 vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-viewportCount-03417", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-scissorCount-03418", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the scissorCount parameter of vkCmdSetScissorWithCount must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the scissorCount parameter of vkCmdSetScissorWithCount must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-viewportCount-03419", - "text": " If the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount" + "text": "If the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08635", - "text": " If a shader object is bound to any graphics stage, then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount" + "text": "If a shader object is bound to any graphics stage, then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-viewportCount-04137", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-viewportCount-04138", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-09232", + "text": "If a shader object is bound to any graphics stage, and the VK_NV_clip_space_w_scaling extension is enabled on the device, then vkCmdSetViewportWScalingNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08636", - "text": " If a shader object is bound to any graphics stage, and the VK_NV_clip_space_w_scaling extension is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If a shader object is bound to any graphics stage, and the VK_NV_clip_space_w_scaling extension is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-viewportCount-04139", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-viewportCount-04140", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-shadingRateImage-09233", + "text": "If the shadingRateImage feature is enabled, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoarseSampleOrderNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-shadingRateImage-09234", + "text": "If a shader object is bound to any graphics stage, and the shadingRateImage feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetShadingRateImageEnableNV in the current command buffer set shadingRateImageEnable to VK_TRUE, then vkCmdSetViewportShadingRatePaletteNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08637", - "text": " If a shader object is bound to any graphics stage, and the shadingRateImage feature is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If a shader object is bound to any graphics stage, and the shadingRateImage feature is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-VkPipelineVieportCreateInfo-04141", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportSwizzleStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportSwizzleStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-VkPipelineVieportCreateInfo-04142", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportExclusiveScissorStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportExclusiveScissorStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07878", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07879", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-exclusiveScissor-09235", + "text": "If a shader object is bound to any graphics stage, and the exclusiveScissor feature is enabled, then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08638", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetExclusiveScissorEnableNV in the current command buffer set any element of pExclusiveScissorEnables to VK_TRUE, then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetExclusiveScissorEnableNV in the current command buffer set any element of pExclusiveScissorEnables to VK_TRUE, then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-04876", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08639", - "text": " If a shader object is bound to any graphics stage, then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-04877", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08640", - "text": " If 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, then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-logicOp-04878", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08641", - "text": " If a shader object is bound to any graphics stage, and the logicOp feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the logicOp feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-primitiveFragmentShadingRateWithMultipleViewports-04552", - "text": " If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1" + "text": "If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-primitiveFragmentShadingRateWithMultipleViewports-08642", - "text": " If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and any shader object bound to a graphics stage writes to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1" + "text": "If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and any shader object bound to a graphics stage writes to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-blendEnable-04727", - "text": " If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the blendEnable member of the corresponding element of the pAttachments member of pColorBlendState must be VK_FALSE" + "text": "If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the blendEnable member of the corresponding element of the pAttachments member of pColorBlendState must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08643", - "text": " If 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, then for each color attachment in the render pass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the corresponding member of pColorBlendEnables in the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer that affected that attachment index must have been VK_FALSE" + "text": "If 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, then for each color attachment in the render pass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the corresponding member of pColorBlendEnables in the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer that affected that attachment index must have been VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-multisampledRenderToSingleSampled-07284", - "text": " If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments" + "text": "If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08644", - "text": " If 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 none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then the most recent call to vkCmdSetRasterizationSamplesEXT in the current command buffer must have set rasterizationSamples to be the same as the number of samples for the current render pass color and/or depth/stencil attachments" + "text": "If 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 none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then the most recent call to vkCmdSetRasterizationSamplesEXT in the current command buffer must have set rasterizationSamples to be the same as the number of samples for the current render pass color and/or depth/stencil attachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08876", - "text": " If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering" + "text": "If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-imageView-06172", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-imageView-06173", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-imageView-06174", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, this command must not write any values to the depth attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, this command must not write any values to the depth attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-imageView-06175", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-imageView-06176", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-imageView-06177", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-viewMask-06178", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::viewMask equal to VkRenderingInfo::viewMask" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::viewMask equal to VkRenderingInfo::viewMask", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-06179", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::colorAttachmentCount equal to VkRenderingInfo::colorAttachmentCount" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::colorAttachmentCount equal to VkRenderingInfo::colorAttachmentCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-dynamicRenderingUnusedAttachments-08910", - "text": " If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline" + "text": "If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-dynamicRenderingUnusedAttachments-08911", - "text": " If the dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats, if it exists, must be VK_FORMAT_UNDEFINED" + "text": "If the dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats, if it exists, must be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-dynamicRenderingUnusedAttachments-08912", - "text": " If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED" + "text": "If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED", + "page": "vkspec" + }, + { + "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 currently bound graphics pipeline", + "page": "vkspec" + }, + { + "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 currently bound graphics pipeline", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-09364", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled, then vkCmdSetColorBlendEnableEXT must have set the blend enable to VK_FALSE prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-09365", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-09368", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-09369", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07749", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08646", - "text": " If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the fragment stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-attachmentCount-07750", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the attachmentCount parameter of vkCmdSetColorWriteEnableEXT must be greater than or equal to the VkPipelineColorBlendStateCreateInfo::attachmentCount of the currently bound graphics pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the attachmentCount parameter of vkCmdSetColorWriteEnableEXT must be greater than or equal to the VkPipelineColorBlendStateCreateInfo::attachmentCount of the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08647", - "text": " If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the fragment stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the attachmentCount parameter of most recent call to vkCmdSetColorWriteEnableEXT in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance" + "text": "If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the attachmentCount parameter of most recent call to vkCmdSetColorWriteEnableEXT in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07751", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07880", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-rasterizerDiscardEnable-09236", + "text": "If the VK_EXT_discard_rectangles extension is 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, then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08648", - "text": " If the VK_EXT_discard_rectangles extension is 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, then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_discard_rectangles extension is 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, then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07881", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08649", - "text": " If the VK_EXT_discard_rectangles extension is 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 vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_discard_rectangles extension is 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 vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-dynamicRenderingUnusedAttachments-08913", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-dynamicRenderingUnusedAttachments-08914", - "text": " If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView" + "text": "If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-dynamicRenderingUnusedAttachments-08915", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-dynamicRenderingUnusedAttachments-08916", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-dynamicRenderingUnusedAttachments-08917", - "text": " If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView" + "text": "If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-dynamicRenderingUnusedAttachments-08918", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-imageView-06183", - "text": " If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentShadingRateAttachmentInfoKHR::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR" + "text": "If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentShadingRateAttachmentInfoKHR::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-imageView-06184", - "text": " If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT" + "text": "If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-06185", - "text": " If the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline" + "text": "If the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-pDepthAttachment-06186", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-pStencilAttachment-06187", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-multisampledRenderToSingleSampled-07285", - "text": " If the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of rasterizationSamples for the currently bound graphics pipeline" + "text": "If the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of rasterizationSamples for the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-multisampledRenderToSingleSampled-07286", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-multisampledRenderToSingleSampled-07287", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-pNext-07935", - "text": " If this command has been called inside a render pass instance started with vkCmdBeginRendering, and the pNext chain of VkRenderingInfo includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the value of rasterizationSamples for the currently bound graphics pipeline must be equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples" + "text": "If this command has been called inside a render pass instance started with vkCmdBeginRendering, and the pNext chain of VkRenderingInfo includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the value of rasterizationSamples for the currently bound graphics pipeline must be equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-renderPass-06198", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline must have been created with a VkGraphicsPipelineCreateInfo::renderPass equal to VK_NULL_HANDLE" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline must have been created with a VkGraphicsPipelineCreateInfo::renderPass equal to VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-pColorAttachments-08963", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the VkRenderingInfo::pColorAttachments->imageView was not VK_NULL_HANDLE, then the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the pipeline must not be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the VkRenderingInfo::pColorAttachments->imageView was not VK_NULL_HANDLE, then the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the pipeline must not be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-pDepthAttachment-08964", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-pStencilAttachment-08965", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, stencil test is enabled and the VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, stencil test is enabled and the VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-primitivesGeneratedQueryWithRasterizerDiscard-06708", - "text": " If the primitivesGeneratedQueryWithRasterizerDiscard feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, rasterization discard must not be enabled" + "text": "If the primitivesGeneratedQueryWithRasterizerDiscard feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, rasterization discard must not be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-primitivesGeneratedQueryWithNonZeroStreams-06709", - "text": " If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, the bound graphics pipeline must not have been created with a non-zero value in VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream" + "text": "If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, the bound graphics pipeline must not have been created with a non-zero value in VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07619", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07620", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-09237", + "text": "If a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08650", - "text": " If the depthClamp feature is 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, then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the depthClamp feature is 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, then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07621", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08651", - "text": " If 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, then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07622", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08652", - "text": " If 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, then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07623", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08653", - "text": " If 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, then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07624", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-alphaToCoverageEnable-08919", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and alphaToCoverageEnable was VK_TRUE in the last call to vkCmdSetAlphaToCoverageEnableEXT, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and alphaToCoverageEnable was VK_TRUE in the last call to vkCmdSetAlphaToCoverageEnableEXT, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08654", - "text": " If 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, then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-alphaToCoverageEnable-08920", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetAlphaToCoverageEnableEXT in the current command buffer set alphaToCoverageEnable to VK_TRUE, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetAlphaToCoverageEnableEXT in the current command buffer set alphaToCoverageEnable to VK_TRUE, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07625", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08655", - "text": " If the alphaToOne feature is 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, then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the alphaToOne feature is 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, then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07626", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08656", - "text": " If the logicOp feature is 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, then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the logicOp feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07627", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08657", - "text": " If 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, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07628", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08658", - "text": " If 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 vkCmdSetColorBlendEnableEXT for any attachment set that attachment’s value in pColorBlendEnables to VK_TRUE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetColorBlendEnableEXT for any attachment set that attachment’s value in pColorBlendEnables to VK_TRUE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07629", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08659", - "text": " If 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, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07630", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08660", - "text": " If the geometryStreams feature is enabled, and a shader object is bound to the geometry stage, then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the geometryStreams feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_GEOMETRY_BIT stage, then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07631", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08661", - "text": " If the VK_EXT_conservative_rasterization extension is 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, then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_conservative_rasterization extension is 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, then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07632", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08662", - "text": " If the VK_EXT_conservative_rasterization extension is 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 vkCmdSetConservativeRasterizationModeEXT in the current command buffer set conservativeRasterizationMode to VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_conservative_rasterization extension is 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 vkCmdSetConservativeRasterizationModeEXT in the current command buffer set conservativeRasterizationMode to VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07633", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08663", - "text": " If the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07634", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08664", - "text": " If the VK_EXT_sample_locations extension is 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, then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_sample_locations extension is 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, then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07635", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07636", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08665", - "text": " If the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the vertex stage, then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "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 in the current command buffer prior to this drawing command" + "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 in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08666", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08667", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08668", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "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 in the current command buffer prior to this drawing command" + "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 in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08669", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08670", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08671", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07849", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_EXT dynamic state enabled then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_EXT dynamic state enabled then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08672", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetLineStippleEnableEXT in the current command buffer set stippledLineEnable to VK_TRUE, then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetLineStippleEnableEXT in the current command buffer set stippledLineEnable to VK_TRUE, then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07639", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08673", - "text": " If the depthClipControl feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the depthClipControl feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07640", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08674", - "text": " If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07641", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08675", - "text": " If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07642", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08676", - "text": " If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07643", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08677", - "text": " If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetCoverageToColorEnableNV in the current command buffer set coverageToColorEnable to VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetCoverageToColorEnableNV in the current command buffer set coverageToColorEnable to VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07644", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08678", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_framebuffer_mixed_samples extension is 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, then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07645", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08679", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_framebuffer_mixed_samples extension is 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 vkCmdSetCoverageModulationModeNV in the current command buffer set coverageModulationMode to any value other than VK_COVERAGE_MODULATION_MODE_NONE_NV, then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07646", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08680", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetCoverageModulationTableEnableNV in the current command buffer set coverageModulationTableEnable to VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_framebuffer_mixed_samples extension is 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 vkCmdSetCoverageModulationTableEnableNV in the current command buffer set coverageModulationTableEnable to VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07647", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-pipelineFragmentShadingRate-09238", + "text": "If the pipelineFragmentShadingRate feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetFragmentShadingRateKHR must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08681", - "text": " If the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the shadingRateImage feature is 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, then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07648", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08682", - "text": " If the representativeFragmentTest feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the representativeFragmentTest feature is 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, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07649", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08683", - "text": " If the coverageReductionMode feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the coverageReductionMode feature is 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, then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-pColorBlendEnables-07470", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT state enabled and the last call to vkCmdSetColorBlendEnableEXT set pColorBlendEnables for any attachment to VK_TRUE, then for those attachments in the subpass the corresponding image view’s format features must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT state enabled and the last call to vkCmdSetColorBlendEnableEXT set pColorBlendEnables for any attachment to VK_TRUE, then for those attachments in the subpass the corresponding image view’s format features must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-rasterizationSamples-07471", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must follow the rules for a zero-attachment subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must follow the rules for a zero-attachment subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-samples-07472", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the VkPipelineMultisampleStateCreateInfo::rasterizationSamples parameter used to create the bound graphics pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the VkPipelineMultisampleStateCreateInfo::rasterizationSamples parameter used to create the bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-samples-07473", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the rasterizationSamples parameter in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the rasterizationSamples parameter in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-multisampledRenderToSingleSampled-07475", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and none of the VK_AMD_mixed_attachment_samples extension, VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the current subpass color and/or depth/stencil attachments" + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-rasterizationSamples-07474", + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples extensions are enabled, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the current subpass color and/or depth/stencil attachments", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-09211", + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the rasterizationSamples member of that structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-firstAttachment-07476", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-firstAttachment-07477", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-firstAttachment-07478", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-firstAttachment-07479", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-advancedBlendMaxColorAttachments-07480", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT and VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic states enabled and the last calls to vkCmdSetColorBlendEnableEXT and vkCmdSetColorBlendAdvancedEXT have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed advancedBlendMaxColorAttachments" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT and VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic states enabled and the last calls to vkCmdSetColorBlendEnableEXT and vkCmdSetColorBlendAdvancedEXT have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed advancedBlendMaxColorAttachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-primitivesGeneratedQueryWithNonZeroStreams-07481", - "text": " If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, and the bound graphics pipeline was created with VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT state enabled, the last call to vkCmdSetRasterizationStreamEXT must have set the rasterizationStream to zero" + "text": "If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, and the bound graphics pipeline was created with VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT state enabled, the last call to vkCmdSetRasterizationStreamEXT must have set the rasterizationStream to zero", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsPerPixel-07482", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsPerPixel-07483", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples parameter of the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples parameter of the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-07484", - "text": " If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set" + "text": "If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-07485", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.width in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.width in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-07486", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.height in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.height in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-07487", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, the fragment shader code must not statically use the extended instruction InterpolateAtSample" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, the fragment shader code must not statically use the extended instruction InterpolateAtSample", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-07936", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.width must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.width must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-07937", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.height must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.height must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-07938", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-coverageModulationTableEnable-07488", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-rasterizationSamples-07489", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment" + "text": "If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-coverageToColorEnable-07490", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-coverageReductionMode-07491", - "text": " If this VK_NV_coverage_reduction_mode extension is enabled, the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, the current coverage reduction mode coverageReductionMode, then the current rasterizationSamples, and the sample counts for the color and depth/stencil attachments (if the subpass has them) must be a valid combination returned by vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV" + "text": "If this VK_NV_coverage_reduction_mode extension is enabled, the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, the current coverage reduction mode coverageReductionMode, then the current rasterizationSamples, and the sample counts for the color and depth/stencil attachments (if the subpass has them) must be a valid combination returned by vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-viewportCount-07492", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-viewportCount-07493", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-rasterizationSamples-07494", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE" + "text": "If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-stippledLineEnable-07495", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-stippledLineEnable-07496", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-stippledLineEnable-07497", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-stippledLineEnable-07498", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-conservativePointAndLineRasterization-07499", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, conservativePointAndLineRasterization is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the conservativeRasterizationMode set by the last call to vkCmdSetConservativeRasterizationModeEXT must be VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, conservativePointAndLineRasterization is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the conservativeRasterizationMode set by the last call to vkCmdSetConservativeRasterizationModeEXT must be VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-stage-07073", - "text": " If the currently bound pipeline was created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT, then Mesh Shader Queries must not be active" + "text": "If the currently bound pipeline was created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT, then Mesh Shader Queries must not be active", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08877", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07850", - "text": " If dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command" + "text": "If dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08684", - "text": " If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_VERTEX_BIT" + "text": "If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_VERTEX_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08685", - "text": " If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT" + "text": "If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08686", - "text": " If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT" + "text": "If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08687", - "text": " If there is no bound graphics pipeline, and the geometryShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_GEOMETRY_BIT" + "text": "If there is no bound graphics pipeline, and the geometryShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_GEOMETRY_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08688", - "text": " If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_FRAGMENT_BIT" + "text": "If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_FRAGMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08689", - "text": " If there is no bound graphics pipeline, and the taskShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TASK_BIT_EXT" + "text": "If there is no bound graphics pipeline, and the taskShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TASK_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08690", - "text": " If there is no bound graphics pipeline, and the meshShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_MESH_BIT_EXT" + "text": "If there is no bound graphics pipeline, and the meshShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_MESH_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08693", - "text": " If there is no bound graphics pipeline, and at least one of the taskShader and meshShader features is enabled, one of the VK_SHADER_STAGE_VERTEX_BIT or VK_SHADER_STAGE_MESH_BIT_EXT stages must have a valid VkShaderEXT bound, and the other must have no VkShaderEXT bound" + "text": "If there is no bound graphics pipeline, and at least one of the taskShader and meshShader features is enabled, one of the VK_SHADER_STAGE_VERTEX_BIT or VK_SHADER_STAGE_MESH_BIT_EXT stages must have a valid VkShaderEXT bound, and the other must have no VkShaderEXT bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08694", - "text": " If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created without the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, a valid VkShaderEXT must be bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage" + "text": "If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created without the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, a valid VkShaderEXT must be bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08695", - "text": " If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created with the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, there must be no VkShaderEXT bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage" + "text": "If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created with the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, there must be no VkShaderEXT bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08696", - "text": " If there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage" + "text": "If there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08698", - "text": " If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound" + "text": "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08699", - "text": " If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound" + "text": "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08878", - "text": " All bound graphics shader objects must have been created with identical or identically defined push constant ranges" + "text": "All bound graphics shader objects must have been created with identical or identically defined push constant ranges", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08879", - "text": " All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts" + "text": "All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08880", - "text": " If there is no bound graphics pipeline and the attachmentFeedbackLoopDynamicState feature is enabled on the device, vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage and the attachmentFeedbackLoopDynamicState feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-pDynamicStates-08715", - "text": " If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable parameter in the last call to vkCmdSetDepthWriteEnable must be VK_FALSE" + "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable parameter in the last call to vkCmdSetDepthWriteEnable must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-pDynamicStates-08716", - "text": " If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_STENCIL_WRITE_MASK set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the writeMask parameter in the last call to vkCmdSetStencilWriteMask must be 0" + "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_STENCIL_WRITE_MASK set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the writeMask parameter in the last call to vkCmdSetStencilWriteMask must be 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-09116", - "text": " If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them" + "text": "If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-maxFragmentDualSrcAttachments-09239", + "text": "If blending is enabled for any attachment where either the source or destination blend factors for that attachment use the secondary color input, the maximum value of Location for any output attachment statically used in the Fragment Execution Model executed by this command must be less than maxFragmentDualSrcAttachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-04007", - "text": " All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must have either valid or VK_NULL_HANDLE buffers bound" + "text": "All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must have either valid or VK_NULL_HANDLE buffers bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-04008", - "text": " If the nullDescriptor feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must not be VK_NULL_HANDLE" + "text": "If the nullDescriptor feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must not be VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02721", - "text": " For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description" + "text": "For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07842", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state enabled then vkCmdSetPrimitiveTopology must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state enabled then vkCmdSetPrimitiveTopology must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-dynamicPrimitiveTopologyUnrestricted-07500", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state enabled and the dynamicPrimitiveTopologyUnrestricted is VK_FALSE, then the primitiveTopology parameter of vkCmdSetPrimitiveTopology must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state enabled and the dynamicPrimitiveTopologyUnrestricted is VK_FALSE, then the primitiveTopology parameter of vkCmdSetPrimitiveTopology must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-04912", - "text": " If the bound graphics pipeline was created with both the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT and VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic states enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command" + "text": "If the bound graphics pipeline was created with both the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT and VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic states enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-pStrides-04913", - "text": " If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdBindVertexBuffers2EXT must have been called in the current command buffer prior to this draw command, and the pStrides parameter of vkCmdBindVertexBuffers2EXT must not be NULL" + "text": "If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdBindVertexBuffers2EXT must have been called in the current command buffer prior to this draw command, and the pStrides parameter of vkCmdBindVertexBuffers2EXT must not be NULL", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08881", - "text": " If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetPrimitiveTopology must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetPrimitiveTopology must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-04914", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-Input-07939", - "text": " If 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 {ExecutionModel} OpEntryPoint must contain a location in VkVertexInputAttributeDescription2EXT::location" + "text": "If 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": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-Input-08734", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then the numeric type associated with all Input variables of the corresponding Location in the Vertex {ExecutionModel} OpEntryPoint must be the same as VkVertexInputAttributeDescription2EXT::format" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then the numeric type associated with all Input variables of the corresponding Location in the Vertex Execution Model OpEntryPoint must be the same as VkVertexInputAttributeDescription2EXT::format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-format-08936", - "text": " If there is a shader object bound to a graphics stage or the currently bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, and VkVertexInputAttributeDescription2EXT::format has a 64-bit component, then the scalar width associated with all Input variables of the corresponding Location in the Vertex {ExecutionModel} OpEntryPoint must be 64-bit" + "text": "If there is a shader object bound to a graphics stage or the currently bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, and VkVertexInputAttributeDescription2EXT::format has a 64-bit component, then the scalar width associated with all Input variables of the corresponding Location in the Vertex Execution Model OpEntryPoint must be 64-bit", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-format-08937", - "text": " If there is a shader object bound to a graphics stage or the currently bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, and the scalar width associated with a Location decorated Input variable in the Vertex {ExecutionModel} OpEntryPoint is 64-bit, then the corresponding VkVertexInputAttributeDescription2EXT::format must have a 64-bit component" + "text": "If there is a shader object bound to a graphics stage or the currently bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, and the scalar width associated with a Location decorated Input variable in the Vertex Execution Model OpEntryPoint is 64-bit, then the corresponding VkVertexInputAttributeDescription2EXT::format must have a 64-bit component", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-09203", - "text": " If there is a shader object bound to a graphics stage or the currently bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, and VkVertexInputAttributeDescription2EXT::format has a 64-bit component, then all Input variables at the corresponding Location in the Vertex {ExecutionModel} OpEntryPoint must not use components that are not present in the format" + "text": "If there is a shader object bound to a graphics stage or the currently bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, and VkVertexInputAttributeDescription2EXT::format has a 64-bit component, then all Input variables at the corresponding Location in the Vertex Execution Model OpEntryPoint must not use components that are not present in the format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08882", - "text": " If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-04875", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT dynamic state enabled then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT dynamic state enabled then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08883", - "text": " If a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-04879", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then vkCmdSetPrimitiveRestartEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then vkCmdSetPrimitiveRestartEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-rasterizerDiscardEnable-08884", - "text": " If 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, vkCmdSetPrimitiveRestartEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, vkCmdSetPrimitiveRestartEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-stage-06481", - "text": " The bound graphics pipeline must not have been created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT" + "text": "The bound graphics pipeline must not have been created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08885", - "text": " There must be no shader object bound to either of the VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT stages" + "text": "There must be no shader object bound to either of the VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT stages", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-buffer-02708", - "text": " If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-buffer-02709", - "text": " buffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set" + "text": "buffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-offset-02710", - "text": " offset must be a multiple of 4" + "text": "offset must be a multiple of 4", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-02711", - "text": " commandBuffer must not be a protected command buffer" + "text": "commandBuffer must not be a protected command buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-countBuffer-02714", - "text": " If countBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If countBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-countBuffer-02715", - "text": " countBuffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set" + "text": "countBuffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-countBufferOffset-02716", - "text": " countBufferOffset must be a multiple of 4" + "text": "countBufferOffset must be a multiple of 4", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-countBuffer-02717", - "text": " The count stored in countBuffer must be less than or equal to VkPhysicalDeviceLimits::maxDrawIndirectCount" + "text": "The count stored in countBuffer must be less than or equal to VkPhysicalDeviceLimits::maxDrawIndirectCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-countBufferOffset-04129", - "text": " (countBufferOffset + sizeof(uint32_t)) must be less than or equal to the size of countBuffer" + "text": "(countBufferOffset + sizeof(uint32_t)) must be less than or equal to the size of countBuffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-04445", - "text": " If drawIndirectCount is not enabled this function must not be used" + "text": "If drawIndirectCount is not enabled this function must not be used", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07312", - "text": " An index buffer must be bound" + "text": "An index buffer must be bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-robustBufferAccess2-07825", - "text": " If robustBufferAccess2 is not enabled, (indexSize {times} (firstIndex + indexCount) + offset) must be less than or equal to the size of the bound index buffer, with indexSize being based on the type specified by indexType, where the index buffer, indexType, and offset are specified via vkCmdBindIndexBuffer" + "text": "If robustBufferAccess2 is not enabled, (indexSize × (firstIndex + indexCount) + offset) must be less than or equal to the size of the bound index buffer, with indexSize being based on the type specified by indexType, where the index buffer, indexType, and offset are specified via vkCmdBindIndexBuffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-stride-03142", - "text": " stride must be a multiple of 4 and must be greater than or equal to sizeof(VkDrawIndexedIndirectCommand)" + "text": "stride must be a multiple of 4 and must be greater than or equal to sizeof(VkDrawIndexedIndirectCommand)", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-maxDrawCount-03143", - "text": " If maxDrawCount is greater than or equal to 1, (stride {times} (maxDrawCount - 1) + offset + sizeof(VkDrawIndexedIndirectCommand)) must be less than or equal to the size of buffer" + "text": "If maxDrawCount is greater than or equal to 1, (stride × (maxDrawCount - 1) + offset + sizeof(VkDrawIndexedIndirectCommand)) must be less than or equal to the size of buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-countBuffer-03153", - "text": " If count stored in countBuffer is equal to 1, (offset + sizeof(VkDrawIndexedIndirectCommand)) must be less than or equal to the size of buffer" + "text": "If count stored in countBuffer is equal to 1, (offset + sizeof(VkDrawIndexedIndirectCommand)) must be less than or equal to the size of buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-countBuffer-03154", - "text": " If count stored in countBuffer is greater than 1, (stride {times} (drawCount - 1) + offset + sizeof(VkDrawIndexedIndirectCommand)) must be less than or equal to the size of buffer" + "text": "If count stored in countBuffer is greater than 1, (stride × (drawCount - 1) + offset + sizeof(VkDrawIndexedIndirectCommand)) must be less than or equal to the size of buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-buffer-parameter", - "text": " buffer must be a valid VkBuffer handle" + "text": "buffer must be a valid VkBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-countBuffer-parameter", - "text": " countBuffer must be a valid VkBuffer handle" + "text": "countBuffer must be a valid VkBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-renderpass", - "text": " This command must only be called inside of a render pass instance" + "text": "This command must only be called inside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-commonparent", - "text": " Each of buffer, commandBuffer, and countBuffer must have been created, allocated, or retrieved from the same VkDevice" + "text": "Each of buffer, commandBuffer, and countBuffer must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -42102,1343 +54263,1808 @@ "core": [ { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-magFilter-04553", - "text": " If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + "text": "If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-mipmapMode-04770", - "text": " If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + "text": "If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-06479", - "text": " If a VkImageView is sampled with depth comparison, the image view’s format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT" + "text": "If a VkImageView is sampled with depth comparison, the image view’s format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02691", - "text": " If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT" + "text": "If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07888", - "text": " If a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer’s format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT" + "text": "If a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer’s format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02692", - "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" + "text": "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02693", - "text": " If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" + "text": "If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-filterCubic-02694", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" + "text": "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-filterCubicMinmax-02695", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" + "text": "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-cubicRangeClamp-09212", + "text": "If the cubicRangeClamp feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command
\n
\n
must not have a VkSamplerReductionModeCreateInfo
\n
\n

reductionMode equal to\nVK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM

\n
\n
\n
", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-reductionMode-09213", + "text": "Any VkImageView being sampled with a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM as a result of this command must sample with VK_FILTER_CUBIC_EXT", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-selectableCubicWeights-09214", + "text": "If the selectableCubicWeights feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have VkSamplerCubicWeightsCreateInfoQCOM::cubicWeights equal to VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-flags-02696", - "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE" + "text": "Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-OpTypeImage-07027", - "text": " For any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT" + "text": "For any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-OpTypeImage-07028", - "text": " For any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT" + "text": "For any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-OpTypeImage-07029", - "text": " For any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT" + "text": "For any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-OpTypeImage-07030", - "text": " Any VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT" + "text": "Any VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08600", - "text": " For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08601", - "text": " For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-maintenance4-08602", - "text": " If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08114", - "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08115", - "text": " If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08116", - "text": " Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08604", - "text": " Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command" + "text": "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08117", - "text": " If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08119", - "text": " If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident" + "text": "If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08605", - "text": " If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident" + "text": "If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08606", - "text": " If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command" + "text": "If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08607", - "text": " If the shaderObject is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command" + "text": "If the shaderObject is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08608", - "text": " If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound" + "text": "If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08609", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08610", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08611", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-uniformBuffers-06935", - "text": " If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08612", - "text": " If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-storageBuffers-06936", - "text": " If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08613", - "text": " If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-02707", - "text": " If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource" + "text": "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-06550", - "text": " If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions" + "text": "If a bound shader accesses a VkSampler or VkImageView object that enables sampler Y′CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-ConstOffset-06551", - "text": " If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands" + "text": "If a bound shader accesses a VkSampler or VkImageView object that enables sampler Y′CBCR conversion, that object must not use the ConstOffset and Offset operands", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-viewType-07752", - "text": " If a VkImageView is accessed as a result of this command, then the image view’s viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation" + "text": "If a VkImageView is accessed as a result of this command, then the image view’s viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-format-07753", - "text": " If a VkImageView is accessed as a result of this command, then the numeric type of the image view’s format and the Sampled Type operand of the OpTypeImage must match" + "text": "If a VkImageView is accessed as a result of this command, then the numeric type of the image view’s format and the Sampled Type operand of the OpTypeImage must match", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-OpImageWrite-08795", - "text": " If a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format" + "text": "If a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-OpImageWrite-08796", - "text": " If a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components" + "text": "If a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-OpImageWrite-04469", - "text": " If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view’s format" + "text": "If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view’s format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-SampledType-04470", - "text": " If a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64" + "text": "If a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-SampledType-04471", - "text": " If a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32" + "text": "If a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-SampledType-04472", - "text": " If a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64" + "text": "If a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-SampledType-04473", - "text": " If a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32" + "text": "If a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-sparseImageInt64Atomics-04474", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command" + "text": "If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-sparseImageInt64Atomics-04475", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command" + "text": "If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-OpImageWeightedSampleQCOM-06971", - "text": " If OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-OpImageWeightedSampleQCOM-06972", - "text": " If OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-OpImageBoxFilterQCOM-06973", - "text": " If OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM" + "text": "If OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-OpImageBlockMatchSSDQCOM-06974", - "text": " If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM" + "text": "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-OpImageBlockMatchSADQCOM-06975", - "text": " If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM" + "text": "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-OpImageBlockMatchSADQCOM-06976", - "text": " If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation" + "text": "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-OpImageWeightedSampleQCOM-06977", - "text": " If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-OpImageWeightedSampleQCOM-06978", - "text": " If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM" + "text": "If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-OpImageBlockMatchWindow-09215", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-OpImageBlockMatchWindow-09216", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view’s format must be a single-component format.", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-OpImageBlockMatchWindow-09217", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07288", - "text": " Any shader invocation executed by this command must terminate" + "text": "Any shader invocation executed by this command must terminate", + "page": "vkspec" }, { "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" + "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", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-subpass-02685", - "text": " The subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS" + "text": "The subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07748", - "text": " If any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set" + "text": "If any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-OpTypeImage-07468", - "text": " If any shader executed by this pipeline accesses an OpTypeImage variable with a Dim operand of SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass" + "text": "If any shader executed by this pipeline accesses an OpTypeImage variable with a Dim operand of SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07469", - "text": " Input attachment views accessed in a subpass must be created with the same VkFormat as the corresponding subpass definition, and be created with a VkImageView that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound VkFramebuffer as specified by Fragment Input Attachment Compatibility" + "text": "Input attachment views accessed in a subpass must be created with the same VkFormat as the corresponding subpass definition, and be created with a VkImageView that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound VkFramebuffer as specified by Fragment Input Attachment Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-06537", - "text": " Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command" + "text": "Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command", + "page": "vkspec" }, { "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
" + "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
", + "page": "vkspec" }, { "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
" + "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
", + "page": "vkspec" }, { "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
" + "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-09003", - "text": " If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command" + "text": "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-06539", - "text": " If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment" + "text": "If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-06886", - "text": " If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled" + "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-06887", - "text": " If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back writeMask are not zero, and stencil test is enabled, all stencil ops must be VK_STENCIL_OP_KEEP" + "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back writeMask are not zero, and stencil test is enabled, all stencil ops must be VK_STENCIL_OP_KEEP", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07831", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07832", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07833", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08617", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08618", - "text": " If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08619", - "text": " If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07834", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08620", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07835", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08621", - "text": " If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07836", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled, and if the current depthBoundsTestEnable state is VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08622", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07837", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08623", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07838", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled then vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08624", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07839", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled then vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08625", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-maxMultiviewInstanceIndex-02688", - "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex" + "text": "If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-02689", - "text": " If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set" + "text": "If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-06666", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08626", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetSampleLocationsEnableEXT in the current command buffer set sampleLocationsEnable to VK_TRUE, vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetSampleLocationsEnableEXT in the current command buffer set sampleLocationsEnable to VK_TRUE, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsPerPixel-07934", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07840", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08627", - "text": " If a shader object is bound to any graphics stage, vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07841", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08628", - "text": " If a shader object is bound to any graphics stage, vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07843", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08629", - "text": " If a shader object is bound to any graphics stage, vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07844", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08630", - "text": " If a shader object is bound to any graphics stage, vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07845", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08631", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthTestEnable in the current command buffer set depthTestEnable to VK_TRUE, vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetDepthTestEnable in the current command buffer set depthTestEnable to VK_TRUE, then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07846", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled then vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled then vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08632", - "text": " If a shader object is bound to any graphics stage, and the depthBounds feature is enabled, the vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the depthBounds feature is enabled, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07847", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08633", - "text": " If 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, then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07848", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08634", - "text": " If 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 vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-03417", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-scissorCount-03418", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the scissorCount parameter of vkCmdSetScissorWithCount must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the scissorCount parameter of vkCmdSetScissorWithCount must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-03419", - "text": " If the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount" + "text": "If the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08635", - "text": " If a shader object is bound to any graphics stage, then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount" + "text": "If a shader object is bound to any graphics stage, then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-04137", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-04138", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-09232", + "text": "If a shader object is bound to any graphics stage, and the VK_NV_clip_space_w_scaling extension is enabled on the device, then vkCmdSetViewportWScalingNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08636", - "text": " If a shader object is bound to any graphics stage, and the VK_NV_clip_space_w_scaling extension is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If a shader object is bound to any graphics stage, and the VK_NV_clip_space_w_scaling extension is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-04139", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-04140", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-shadingRateImage-09233", + "text": "If the shadingRateImage feature is enabled, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoarseSampleOrderNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-shadingRateImage-09234", + "text": "If a shader object is bound to any graphics stage, and the shadingRateImage feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetShadingRateImageEnableNV in the current command buffer set shadingRateImageEnable to VK_TRUE, then vkCmdSetViewportShadingRatePaletteNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08637", - "text": " If a shader object is bound to any graphics stage, and the shadingRateImage feature is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If a shader object is bound to any graphics stage, and the shadingRateImage feature is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-VkPipelineVieportCreateInfo-04141", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportSwizzleStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportSwizzleStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-VkPipelineVieportCreateInfo-04142", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportExclusiveScissorStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportExclusiveScissorStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07878", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07879", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-exclusiveScissor-09235", + "text": "If a shader object is bound to any graphics stage, and the exclusiveScissor feature is enabled, then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08638", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetExclusiveScissorEnableNV in the current command buffer set any element of pExclusiveScissorEnables to VK_TRUE, then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetExclusiveScissorEnableNV in the current command buffer set any element of pExclusiveScissorEnables to VK_TRUE, then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-04876", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08639", - "text": " If a shader object is bound to any graphics stage, then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-04877", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08640", - "text": " If 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, then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-logicOp-04878", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08641", - "text": " If a shader object is bound to any graphics stage, and the logicOp feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the logicOp feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-primitiveFragmentShadingRateWithMultipleViewports-04552", - "text": " If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1" + "text": "If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-primitiveFragmentShadingRateWithMultipleViewports-08642", - "text": " If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and any shader object bound to a graphics stage writes to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1" + "text": "If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and any shader object bound to a graphics stage writes to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-blendEnable-04727", - "text": " If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the blendEnable member of the corresponding element of the pAttachments member of pColorBlendState must be VK_FALSE" + "text": "If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the blendEnable member of the corresponding element of the pAttachments member of pColorBlendState must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08643", - "text": " If 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, then for each color attachment in the render pass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the corresponding member of pColorBlendEnables in the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer that affected that attachment index must have been VK_FALSE" + "text": "If 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, then for each color attachment in the render pass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the corresponding member of pColorBlendEnables in the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer that affected that attachment index must have been VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-multisampledRenderToSingleSampled-07284", - "text": " If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments" + "text": "If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08644", - "text": " If 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 none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then the most recent call to vkCmdSetRasterizationSamplesEXT in the current command buffer must have set rasterizationSamples to be the same as the number of samples for the current render pass color and/or depth/stencil attachments" + "text": "If 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 none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then the most recent call to vkCmdSetRasterizationSamplesEXT in the current command buffer must have set rasterizationSamples to be the same as the number of samples for the current render pass color and/or depth/stencil attachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08876", - "text": " If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering" + "text": "If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-imageView-06172", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-imageView-06173", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-imageView-06174", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, this command must not write any values to the depth attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, this command must not write any values to the depth attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-imageView-06175", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-imageView-06176", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-imageView-06177", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-viewMask-06178", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::viewMask equal to VkRenderingInfo::viewMask" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::viewMask equal to VkRenderingInfo::viewMask", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06179", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::colorAttachmentCount equal to VkRenderingInfo::colorAttachmentCount" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::colorAttachmentCount equal to VkRenderingInfo::colorAttachmentCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-dynamicRenderingUnusedAttachments-08910", - "text": " If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline" + "text": "If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-dynamicRenderingUnusedAttachments-08911", - "text": " If the dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats, if it exists, must be VK_FORMAT_UNDEFINED" + "text": "If the dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats, if it exists, must be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-dynamicRenderingUnusedAttachments-08912", - "text": " If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED" + "text": "If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED", + "page": "vkspec" + }, + { + "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 currently bound graphics pipeline", + "page": "vkspec" + }, + { + "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 currently bound graphics pipeline", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-09364", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled, then vkCmdSetColorBlendEnableEXT must have set the blend enable to VK_FALSE prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-09365", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-09368", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-09369", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07749", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08646", - "text": " If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the fragment stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-attachmentCount-07750", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the attachmentCount parameter of vkCmdSetColorWriteEnableEXT must be greater than or equal to the VkPipelineColorBlendStateCreateInfo::attachmentCount of the currently bound graphics pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the attachmentCount parameter of vkCmdSetColorWriteEnableEXT must be greater than or equal to the VkPipelineColorBlendStateCreateInfo::attachmentCount of the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08647", - "text": " If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the fragment stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the attachmentCount parameter of most recent call to vkCmdSetColorWriteEnableEXT in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance" + "text": "If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the attachmentCount parameter of most recent call to vkCmdSetColorWriteEnableEXT in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07751", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07880", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-rasterizerDiscardEnable-09236", + "text": "If the VK_EXT_discard_rectangles extension is 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, then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08648", - "text": " If the VK_EXT_discard_rectangles extension is 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, then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_discard_rectangles extension is 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, then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07881", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08649", - "text": " If the VK_EXT_discard_rectangles extension is 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 vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_discard_rectangles extension is 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 vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-dynamicRenderingUnusedAttachments-08913", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-dynamicRenderingUnusedAttachments-08914", - "text": " If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView" + "text": "If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-dynamicRenderingUnusedAttachments-08915", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-dynamicRenderingUnusedAttachments-08916", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-dynamicRenderingUnusedAttachments-08917", - "text": " If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView" + "text": "If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-dynamicRenderingUnusedAttachments-08918", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-imageView-06183", - "text": " If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentShadingRateAttachmentInfoKHR::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR" + "text": "If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentShadingRateAttachmentInfoKHR::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-imageView-06184", - "text": " If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT" + "text": "If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06185", - "text": " If the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline" + "text": "If the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-06186", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-06187", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-multisampledRenderToSingleSampled-07285", - "text": " If the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of rasterizationSamples for the currently bound graphics pipeline" + "text": "If the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of rasterizationSamples for the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-multisampledRenderToSingleSampled-07286", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-multisampledRenderToSingleSampled-07287", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-pNext-07935", - "text": " If this command has been called inside a render pass instance started with vkCmdBeginRendering, and the pNext chain of VkRenderingInfo includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the value of rasterizationSamples for the currently bound graphics pipeline must be equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples" + "text": "If this command has been called inside a render pass instance started with vkCmdBeginRendering, and the pNext chain of VkRenderingInfo includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the value of rasterizationSamples for the currently bound graphics pipeline must be equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-renderPass-06198", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline must have been created with a VkGraphicsPipelineCreateInfo::renderPass equal to VK_NULL_HANDLE" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline must have been created with a VkGraphicsPipelineCreateInfo::renderPass equal to VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-pColorAttachments-08963", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the VkRenderingInfo::pColorAttachments->imageView was not VK_NULL_HANDLE, then the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the pipeline must not be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the VkRenderingInfo::pColorAttachments->imageView was not VK_NULL_HANDLE, then the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the pipeline must not be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-08964", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-08965", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, stencil test is enabled and the VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, stencil test is enabled and the VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-primitivesGeneratedQueryWithRasterizerDiscard-06708", - "text": " If the primitivesGeneratedQueryWithRasterizerDiscard feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, rasterization discard must not be enabled" + "text": "If the primitivesGeneratedQueryWithRasterizerDiscard feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, rasterization discard must not be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-primitivesGeneratedQueryWithNonZeroStreams-06709", - "text": " If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, the bound graphics pipeline must not have been created with a non-zero value in VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream" + "text": "If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, the bound graphics pipeline must not have been created with a non-zero value in VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07619", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07620", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-09237", + "text": "If a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08650", - "text": " If the depthClamp feature is 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, then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the depthClamp feature is 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, then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07621", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08651", - "text": " If 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, then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07622", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08652", - "text": " If 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, then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07623", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08653", - "text": " If 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, then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07624", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-alphaToCoverageEnable-08919", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and alphaToCoverageEnable was VK_TRUE in the last call to vkCmdSetAlphaToCoverageEnableEXT, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and alphaToCoverageEnable was VK_TRUE in the last call to vkCmdSetAlphaToCoverageEnableEXT, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08654", - "text": " If 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, then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-alphaToCoverageEnable-08920", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetAlphaToCoverageEnableEXT in the current command buffer set alphaToCoverageEnable to VK_TRUE, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetAlphaToCoverageEnableEXT in the current command buffer set alphaToCoverageEnable to VK_TRUE, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07625", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08655", - "text": " If the alphaToOne feature is 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, then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the alphaToOne feature is 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, then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07626", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08656", - "text": " If the logicOp feature is 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, then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the logicOp feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07627", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08657", - "text": " If 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, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07628", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08658", - "text": " If 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 vkCmdSetColorBlendEnableEXT for any attachment set that attachment’s value in pColorBlendEnables to VK_TRUE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetColorBlendEnableEXT for any attachment set that attachment’s value in pColorBlendEnables to VK_TRUE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07629", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08659", - "text": " If 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, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07630", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08660", - "text": " If the geometryStreams feature is enabled, and a shader object is bound to the geometry stage, then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the geometryStreams feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_GEOMETRY_BIT stage, then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07631", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08661", - "text": " If the VK_EXT_conservative_rasterization extension is 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, then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_conservative_rasterization extension is 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, then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07632", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08662", - "text": " If the VK_EXT_conservative_rasterization extension is 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 vkCmdSetConservativeRasterizationModeEXT in the current command buffer set conservativeRasterizationMode to VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_conservative_rasterization extension is 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 vkCmdSetConservativeRasterizationModeEXT in the current command buffer set conservativeRasterizationMode to VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07633", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08663", - "text": " If the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07634", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08664", - "text": " If the VK_EXT_sample_locations extension is 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, then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_sample_locations extension is 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, then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07635", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07636", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08665", - "text": " If the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the vertex stage, then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "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 in the current command buffer prior to this drawing command" + "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 in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08666", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08667", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08668", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "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 in the current command buffer prior to this drawing command" + "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 in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08669", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08670", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08671", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07849", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_EXT dynamic state enabled then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_EXT dynamic state enabled then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08672", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetLineStippleEnableEXT in the current command buffer set stippledLineEnable to VK_TRUE, then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetLineStippleEnableEXT in the current command buffer set stippledLineEnable to VK_TRUE, then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07639", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08673", - "text": " If the depthClipControl feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the depthClipControl feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07640", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08674", - "text": " If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07641", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08675", - "text": " If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07642", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08676", - "text": " If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07643", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08677", - "text": " If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetCoverageToColorEnableNV in the current command buffer set coverageToColorEnable to VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetCoverageToColorEnableNV in the current command buffer set coverageToColorEnable to VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07644", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08678", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_framebuffer_mixed_samples extension is 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, then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07645", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08679", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_framebuffer_mixed_samples extension is 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 vkCmdSetCoverageModulationModeNV in the current command buffer set coverageModulationMode to any value other than VK_COVERAGE_MODULATION_MODE_NONE_NV, then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07646", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08680", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetCoverageModulationTableEnableNV in the current command buffer set coverageModulationTableEnable to VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_framebuffer_mixed_samples extension is 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 vkCmdSetCoverageModulationTableEnableNV in the current command buffer set coverageModulationTableEnable to VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07647", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-pipelineFragmentShadingRate-09238", + "text": "If the pipelineFragmentShadingRate feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetFragmentShadingRateKHR must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08681", - "text": " If the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the shadingRateImage feature is 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, then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07648", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08682", - "text": " If the representativeFragmentTest feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the representativeFragmentTest feature is 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, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07649", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08683", - "text": " If the coverageReductionMode feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the coverageReductionMode feature is 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, then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-pColorBlendEnables-07470", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT state enabled and the last call to vkCmdSetColorBlendEnableEXT set pColorBlendEnables for any attachment to VK_TRUE, then for those attachments in the subpass the corresponding image view’s format features must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT state enabled and the last call to vkCmdSetColorBlendEnableEXT set pColorBlendEnables for any attachment to VK_TRUE, then for those attachments in the subpass the corresponding image view’s format features must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-rasterizationSamples-07471", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must follow the rules for a zero-attachment subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must follow the rules for a zero-attachment subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-samples-07472", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the VkPipelineMultisampleStateCreateInfo::rasterizationSamples parameter used to create the bound graphics pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the VkPipelineMultisampleStateCreateInfo::rasterizationSamples parameter used to create the bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-samples-07473", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the rasterizationSamples parameter in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the rasterizationSamples parameter in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-multisampledRenderToSingleSampled-07475", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and none of the VK_AMD_mixed_attachment_samples extension, VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the current subpass color and/or depth/stencil attachments" + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-rasterizationSamples-07474", + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples extensions are enabled, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the current subpass color and/or depth/stencil attachments", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-09211", + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the rasterizationSamples member of that structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-firstAttachment-07476", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-firstAttachment-07477", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-firstAttachment-07478", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-firstAttachment-07479", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-advancedBlendMaxColorAttachments-07480", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT and VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic states enabled and the last calls to vkCmdSetColorBlendEnableEXT and vkCmdSetColorBlendAdvancedEXT have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed advancedBlendMaxColorAttachments" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT and VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic states enabled and the last calls to vkCmdSetColorBlendEnableEXT and vkCmdSetColorBlendAdvancedEXT have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed advancedBlendMaxColorAttachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-primitivesGeneratedQueryWithNonZeroStreams-07481", - "text": " If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, and the bound graphics pipeline was created with VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT state enabled, the last call to vkCmdSetRasterizationStreamEXT must have set the rasterizationStream to zero" + "text": "If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, and the bound graphics pipeline was created with VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT state enabled, the last call to vkCmdSetRasterizationStreamEXT must have set the rasterizationStream to zero", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsPerPixel-07482", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsPerPixel-07483", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples parameter of the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples parameter of the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-07484", - "text": " If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set" + "text": "If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-07485", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.width in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.width in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-07486", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.height in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.height in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-07487", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, the fragment shader code must not statically use the extended instruction InterpolateAtSample" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, the fragment shader code must not statically use the extended instruction InterpolateAtSample", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-07936", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.width must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.width must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-07937", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.height must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.height must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-07938", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-coverageModulationTableEnable-07488", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-rasterizationSamples-07489", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment" + "text": "If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-coverageToColorEnable-07490", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-coverageReductionMode-07491", - "text": " If this VK_NV_coverage_reduction_mode extension is enabled, the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, the current coverage reduction mode coverageReductionMode, then the current rasterizationSamples, and the sample counts for the color and depth/stencil attachments (if the subpass has them) must be a valid combination returned by vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV" + "text": "If this VK_NV_coverage_reduction_mode extension is enabled, the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, the current coverage reduction mode coverageReductionMode, then the current rasterizationSamples, and the sample counts for the color and depth/stencil attachments (if the subpass has them) must be a valid combination returned by vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-07492", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-07493", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-rasterizationSamples-07494", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE" + "text": "If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-stippledLineEnable-07495", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-stippledLineEnable-07496", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-stippledLineEnable-07497", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-stippledLineEnable-07498", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-conservativePointAndLineRasterization-07499", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, conservativePointAndLineRasterization is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the conservativeRasterizationMode set by the last call to vkCmdSetConservativeRasterizationModeEXT must be VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, conservativePointAndLineRasterization is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the conservativeRasterizationMode set by the last call to vkCmdSetConservativeRasterizationModeEXT must be VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-stage-07073", - "text": " If the currently bound pipeline was created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT, then Mesh Shader Queries must not be active" + "text": "If the currently bound pipeline was created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT, then Mesh Shader Queries must not be active", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08877", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07850", - "text": " If dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command" + "text": "If dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08684", - "text": " If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_VERTEX_BIT" + "text": "If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_VERTEX_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08685", - "text": " If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT" + "text": "If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08686", - "text": " If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT" + "text": "If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08687", - "text": " If there is no bound graphics pipeline, and the geometryShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_GEOMETRY_BIT" + "text": "If there is no bound graphics pipeline, and the geometryShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_GEOMETRY_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08688", - "text": " If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_FRAGMENT_BIT" + "text": "If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_FRAGMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08689", - "text": " If there is no bound graphics pipeline, and the taskShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TASK_BIT_EXT" + "text": "If there is no bound graphics pipeline, and the taskShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TASK_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08690", - "text": " If there is no bound graphics pipeline, and the meshShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_MESH_BIT_EXT" + "text": "If there is no bound graphics pipeline, and the meshShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_MESH_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08693", - "text": " If there is no bound graphics pipeline, and at least one of the taskShader and meshShader features is enabled, one of the VK_SHADER_STAGE_VERTEX_BIT or VK_SHADER_STAGE_MESH_BIT_EXT stages must have a valid VkShaderEXT bound, and the other must have no VkShaderEXT bound" + "text": "If there is no bound graphics pipeline, and at least one of the taskShader and meshShader features is enabled, one of the VK_SHADER_STAGE_VERTEX_BIT or VK_SHADER_STAGE_MESH_BIT_EXT stages must have a valid VkShaderEXT bound, and the other must have no VkShaderEXT bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08694", - "text": " If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created without the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, a valid VkShaderEXT must be bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage" + "text": "If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created without the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, a valid VkShaderEXT must be bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08695", - "text": " If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created with the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, there must be no VkShaderEXT bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage" + "text": "If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created with the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, there must be no VkShaderEXT bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08696", - "text": " If there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage" + "text": "If there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08698", - "text": " If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound" + "text": "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08699", - "text": " If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound" + "text": "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08878", - "text": " All bound graphics shader objects must have been created with identical or identically defined push constant ranges" + "text": "All bound graphics shader objects must have been created with identical or identically defined push constant ranges", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08879", - "text": " All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts" + "text": "All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08880", - "text": " If there is no bound graphics pipeline and the attachmentFeedbackLoopDynamicState feature is enabled on the device, vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage and the attachmentFeedbackLoopDynamicState feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-pDynamicStates-08715", - "text": " If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable parameter in the last call to vkCmdSetDepthWriteEnable must be VK_FALSE" + "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable parameter in the last call to vkCmdSetDepthWriteEnable must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-pDynamicStates-08716", - "text": " If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_STENCIL_WRITE_MASK set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the writeMask parameter in the last call to vkCmdSetStencilWriteMask must be 0" + "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_STENCIL_WRITE_MASK set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the writeMask parameter in the last call to vkCmdSetStencilWriteMask must be 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-09116", - "text": " If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them" + "text": "If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-maxFragmentDualSrcAttachments-09239", + "text": "If blending is enabled for any attachment where either the source or destination blend factors for that attachment use the secondary color input, the maximum value of Location for any output attachment statically used in the Fragment Execution Model executed by this command must be less than maxFragmentDualSrcAttachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-04007", - "text": " All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must have either valid or VK_NULL_HANDLE buffers bound" + "text": "All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must have either valid or VK_NULL_HANDLE buffers bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-04008", - "text": " If the nullDescriptor feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must not be VK_NULL_HANDLE" + "text": "If the nullDescriptor feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must not be VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02721", - "text": " For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description" + "text": "For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07842", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state enabled then vkCmdSetPrimitiveTopology must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state enabled then vkCmdSetPrimitiveTopology must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-dynamicPrimitiveTopologyUnrestricted-07500", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state enabled and the dynamicPrimitiveTopologyUnrestricted is VK_FALSE, then the primitiveTopology parameter of vkCmdSetPrimitiveTopology must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state enabled and the dynamicPrimitiveTopologyUnrestricted is VK_FALSE, then the primitiveTopology parameter of vkCmdSetPrimitiveTopology must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-04912", - "text": " If the bound graphics pipeline was created with both the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT and VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic states enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command" + "text": "If the bound graphics pipeline was created with both the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT and VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic states enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-pStrides-04913", - "text": " If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdBindVertexBuffers2EXT must have been called in the current command buffer prior to this draw command, and the pStrides parameter of vkCmdBindVertexBuffers2EXT must not be NULL" + "text": "If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdBindVertexBuffers2EXT must have been called in the current command buffer prior to this draw command, and the pStrides parameter of vkCmdBindVertexBuffers2EXT must not be NULL", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08881", - "text": " If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetPrimitiveTopology must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetPrimitiveTopology must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-04914", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-Input-07939", - "text": " If 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 {ExecutionModel} OpEntryPoint must contain a location in VkVertexInputAttributeDescription2EXT::location" + "text": "If 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": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-Input-08734", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then the numeric type associated with all Input variables of the corresponding Location in the Vertex {ExecutionModel} OpEntryPoint must be the same as VkVertexInputAttributeDescription2EXT::format" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then the numeric type associated with all Input variables of the corresponding Location in the Vertex Execution Model OpEntryPoint must be the same as VkVertexInputAttributeDescription2EXT::format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-format-08936", - "text": " If there is a shader object bound to a graphics stage or the currently bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, and VkVertexInputAttributeDescription2EXT::format has a 64-bit component, then the scalar width associated with all Input variables of the corresponding Location in the Vertex {ExecutionModel} OpEntryPoint must be 64-bit" + "text": "If there is a shader object bound to a graphics stage or the currently bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, and VkVertexInputAttributeDescription2EXT::format has a 64-bit component, then the scalar width associated with all Input variables of the corresponding Location in the Vertex Execution Model OpEntryPoint must be 64-bit", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-format-08937", - "text": " If there is a shader object bound to a graphics stage or the currently bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, and the scalar width associated with a Location decorated Input variable in the Vertex {ExecutionModel} OpEntryPoint is 64-bit, then the corresponding VkVertexInputAttributeDescription2EXT::format must have a 64-bit component" + "text": "If there is a shader object bound to a graphics stage or the currently bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, and the scalar width associated with a Location decorated Input variable in the Vertex Execution Model OpEntryPoint is 64-bit, then the corresponding VkVertexInputAttributeDescription2EXT::format must have a 64-bit component", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-09203", - "text": " If there is a shader object bound to a graphics stage or the currently bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, and VkVertexInputAttributeDescription2EXT::format has a 64-bit component, then all Input variables at the corresponding Location in the Vertex {ExecutionModel} OpEntryPoint must not use components that are not present in the format" + "text": "If there is a shader object bound to a graphics stage or the currently bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, and VkVertexInputAttributeDescription2EXT::format has a 64-bit component, then all Input variables at the corresponding Location in the Vertex Execution Model OpEntryPoint must not use components that are not present in the format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08882", - "text": " If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-04875", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT dynamic state enabled then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT dynamic state enabled then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08883", - "text": " If a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-04879", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then vkCmdSetPrimitiveRestartEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then vkCmdSetPrimitiveRestartEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-rasterizerDiscardEnable-08884", - "text": " If 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, vkCmdSetPrimitiveRestartEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, vkCmdSetPrimitiveRestartEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-stage-06481", - "text": " The bound graphics pipeline must not have been created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT" + "text": "The bound graphics pipeline must not have been created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08885", - "text": " There must be no shader object bound to either of the VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT stages" + "text": "There must be no shader object bound to either of the VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT stages", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-transformFeedback-02287", - "text": " VkPhysicalDeviceTransformFeedbackFeaturesEXT::transformFeedback must be enabled" + "text": "VkPhysicalDeviceTransformFeedbackFeaturesEXT::transformFeedback must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-transformFeedbackDraw-02288", - "text": " The implementation must support VkPhysicalDeviceTransformFeedbackPropertiesEXT::transformFeedbackDraw" + "text": "The implementation must support VkPhysicalDeviceTransformFeedbackPropertiesEXT::transformFeedbackDraw", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-vertexStride-02289", - "text": " vertexStride must be greater than 0 and less than or equal to VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBufferDataStride" + "text": "vertexStride must be greater than 0 and less than or equal to VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBufferDataStride", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-counterBuffer-04567", - "text": " If counterBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If counterBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-counterBuffer-02290", - "text": " counterBuffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set" + "text": "counterBuffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-counterBufferOffset-04568", - "text": " counterBufferOffset must be a multiple of 4" + "text": "counterBufferOffset must be a multiple of 4", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-02646", - "text": " commandBuffer must not be a protected command buffer" + "text": "commandBuffer must not be a protected command buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-counterBuffer-parameter", - "text": " counterBuffer must be a valid VkBuffer handle" + "text": "counterBuffer must be a valid VkBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-renderpass", - "text": " This command must only be called inside of a render pass instance" + "text": "This command must only be called inside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-commonparent", - "text": " Both of commandBuffer, and counterBuffer must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of commandBuffer, and counterBuffer must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -43446,27 +56072,33 @@ "core": [ { "vuid": "VUID-vkCmdBeginConditionalRenderingEXT-None-01980", - "text": " Conditional rendering must not already be active" + "text": "Conditional rendering must not already be active", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginConditionalRenderingEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginConditionalRenderingEXT-pConditionalRenderingBegin-parameter", - "text": " pConditionalRenderingBegin must be a valid pointer to a valid VkConditionalRenderingBeginInfoEXT structure" + "text": "pConditionalRenderingBegin must be a valid pointer to a valid VkConditionalRenderingBeginInfoEXT structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginConditionalRenderingEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginConditionalRenderingEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginConditionalRenderingEXT-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -43474,35 +56106,43 @@ "core": [ { "vuid": "VUID-VkConditionalRenderingBeginInfoEXT-buffer-01981", - "text": " If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-VkConditionalRenderingBeginInfoEXT-buffer-01982", - "text": " buffer must have been created with the VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT bit set" + "text": "buffer must have been created with the VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT bit set", + "page": "vkspec" }, { "vuid": "VUID-VkConditionalRenderingBeginInfoEXT-offset-01983", - "text": " offset must be less than the size of buffer by at least 32 bits" + "text": "offset must be less than the size of buffer by at least 32 bits", + "page": "vkspec" }, { "vuid": "VUID-VkConditionalRenderingBeginInfoEXT-offset-01984", - "text": " offset must be a multiple of 4" + "text": "offset must be a multiple of 4", + "page": "vkspec" }, { "vuid": "VUID-VkConditionalRenderingBeginInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkConditionalRenderingBeginInfoEXT-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkConditionalRenderingBeginInfoEXT-buffer-parameter", - "text": " buffer must be a valid VkBuffer handle" + "text": "buffer must be a valid VkBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-VkConditionalRenderingBeginInfoEXT-flags-parameter", - "text": " flags must be a valid combination of VkConditionalRenderingFlagBitsEXT values" + "text": "flags must be a valid combination of VkConditionalRenderingFlagBitsEXT values", + "page": "vkspec" } ] }, @@ -43510,31 +56150,38 @@ "core": [ { "vuid": "VUID-vkCmdEndConditionalRenderingEXT-None-01985", - "text": " Conditional rendering must be active" + "text": "Conditional rendering must be active", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndConditionalRenderingEXT-None-01986", - "text": " If conditional rendering was made active outside of a render pass instance, it must not be ended inside a render pass instance" + "text": "If conditional rendering was made active outside of a render pass instance, it must not be ended inside a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndConditionalRenderingEXT-None-01987", - "text": " If conditional rendering was made active within a subpass it must be ended in the same subpass" + "text": "If conditional rendering was made active within a subpass it must be ended in the same subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndConditionalRenderingEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndConditionalRenderingEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndConditionalRenderingEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndConditionalRenderingEXT-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -43542,1247 +56189,1688 @@ "core": [ { "vuid": "VUID-vkCmdDrawMeshTasksNV-magFilter-04553", - "text": " If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + "text": "If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-mipmapMode-04770", - "text": " If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + "text": "If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-06479", - "text": " If a VkImageView is sampled with depth comparison, the image view’s format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT" + "text": "If a VkImageView is sampled with depth comparison, the image view’s format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02691", - "text": " If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT" + "text": "If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07888", - "text": " If a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer’s format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT" + "text": "If a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer’s format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02692", - "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" + "text": "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02693", - "text": " If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" + "text": "If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-filterCubic-02694", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" + "text": "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-filterCubicMinmax-02695", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" + "text": "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksNV-cubicRangeClamp-09212", + "text": "If the cubicRangeClamp feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command
\n
\n
must not have a VkSamplerReductionModeCreateInfo
\n
\n

reductionMode equal to\nVK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM

\n
\n
\n
", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksNV-reductionMode-09213", + "text": "Any VkImageView being sampled with a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM as a result of this command must sample with VK_FILTER_CUBIC_EXT", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksNV-selectableCubicWeights-09214", + "text": "If the selectableCubicWeights feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have VkSamplerCubicWeightsCreateInfoQCOM::cubicWeights equal to VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-flags-02696", - "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE" + "text": "Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-OpTypeImage-07027", - "text": " For any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT" + "text": "For any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-OpTypeImage-07028", - "text": " For any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT" + "text": "For any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-OpTypeImage-07029", - "text": " For any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT" + "text": "For any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-OpTypeImage-07030", - "text": " Any VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT" + "text": "Any VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08600", - "text": " For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08601", - "text": " For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-maintenance4-08602", - "text": " If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08114", - "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08115", - "text": " If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08116", - "text": " Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08604", - "text": " Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command" + "text": "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08117", - "text": " If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08119", - "text": " If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident" + "text": "If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08605", - "text": " If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident" + "text": "If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08606", - "text": " If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command" + "text": "If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08607", - "text": " If the shaderObject is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command" + "text": "If the shaderObject is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08608", - "text": " If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound" + "text": "If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08609", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08610", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08611", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-uniformBuffers-06935", - "text": " If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08612", - "text": " If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-storageBuffers-06936", - "text": " If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08613", - "text": " If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-commandBuffer-02707", - "text": " If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource" + "text": "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-06550", - "text": " If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions" + "text": "If a bound shader accesses a VkSampler or VkImageView object that enables sampler Y′CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-ConstOffset-06551", - "text": " If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands" + "text": "If a bound shader accesses a VkSampler or VkImageView object that enables sampler Y′CBCR conversion, that object must not use the ConstOffset and Offset operands", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-viewType-07752", - "text": " If a VkImageView is accessed as a result of this command, then the image view’s viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation" + "text": "If a VkImageView is accessed as a result of this command, then the image view’s viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-format-07753", - "text": " If a VkImageView is accessed as a result of this command, then the numeric type of the image view’s format and the Sampled Type operand of the OpTypeImage must match" + "text": "If a VkImageView is accessed as a result of this command, then the numeric type of the image view’s format and the Sampled Type operand of the OpTypeImage must match", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-OpImageWrite-08795", - "text": " If a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format" + "text": "If a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-OpImageWrite-08796", - "text": " If a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components" + "text": "If a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-OpImageWrite-04469", - "text": " If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view’s format" + "text": "If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view’s format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-SampledType-04470", - "text": " If a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64" + "text": "If a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-SampledType-04471", - "text": " If a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32" + "text": "If a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-SampledType-04472", - "text": " If a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64" + "text": "If a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-SampledType-04473", - "text": " If a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32" + "text": "If a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-sparseImageInt64Atomics-04474", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command" + "text": "If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-sparseImageInt64Atomics-04475", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command" + "text": "If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-OpImageWeightedSampleQCOM-06971", - "text": " If OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-OpImageWeightedSampleQCOM-06972", - "text": " If OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-OpImageBoxFilterQCOM-06973", - "text": " If OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM" + "text": "If OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-OpImageBlockMatchSSDQCOM-06974", - "text": " If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM" + "text": "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-OpImageBlockMatchSADQCOM-06975", - "text": " If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM" + "text": "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-OpImageBlockMatchSADQCOM-06976", - "text": " If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation" + "text": "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-OpImageWeightedSampleQCOM-06977", - "text": " If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-OpImageWeightedSampleQCOM-06978", - "text": " If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM" + "text": "If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksNV-OpImageBlockMatchWindow-09215", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksNV-OpImageBlockMatchWindow-09216", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view’s format must be a single-component format.", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksNV-OpImageBlockMatchWindow-09217", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07288", - "text": " Any shader invocation executed by this command must terminate" + "text": "Any shader invocation executed by this command must terminate", + "page": "vkspec" }, { "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" + "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", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-subpass-02685", - "text": " The subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS" + "text": "The subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07748", - "text": " If any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set" + "text": "If any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-OpTypeImage-07468", - "text": " If any shader executed by this pipeline accesses an OpTypeImage variable with a Dim operand of SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass" + "text": "If any shader executed by this pipeline accesses an OpTypeImage variable with a Dim operand of SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07469", - "text": " Input attachment views accessed in a subpass must be created with the same VkFormat as the corresponding subpass definition, and be created with a VkImageView that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound VkFramebuffer as specified by Fragment Input Attachment Compatibility" + "text": "Input attachment views accessed in a subpass must be created with the same VkFormat as the corresponding subpass definition, and be created with a VkImageView that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound VkFramebuffer as specified by Fragment Input Attachment Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-06537", - "text": " Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command" + "text": "Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command", + "page": "vkspec" }, { "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
" + "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
", + "page": "vkspec" }, { "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
" + "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
", + "page": "vkspec" }, { "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
" + "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-09003", - "text": " If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command" + "text": "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-06539", - "text": " If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment" + "text": "If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-06886", - "text": " If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled" + "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-06887", - "text": " If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back writeMask are not zero, and stencil test is enabled, all stencil ops must be VK_STENCIL_OP_KEEP" + "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back writeMask are not zero, and stencil test is enabled, all stencil ops must be VK_STENCIL_OP_KEEP", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07831", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07832", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07833", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08617", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08618", - "text": " If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08619", - "text": " If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07834", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08620", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07835", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08621", - "text": " If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07836", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled, and if the current depthBoundsTestEnable state is VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08622", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07837", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08623", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07838", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled then vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08624", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07839", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled then vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08625", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-maxMultiviewInstanceIndex-02688", - "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex" + "text": "If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-02689", - "text": " If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set" + "text": "If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-06666", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08626", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetSampleLocationsEnableEXT in the current command buffer set sampleLocationsEnable to VK_TRUE, vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetSampleLocationsEnableEXT in the current command buffer set sampleLocationsEnable to VK_TRUE, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-sampleLocationsPerPixel-07934", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07840", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08627", - "text": " If a shader object is bound to any graphics stage, vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07841", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08628", - "text": " If a shader object is bound to any graphics stage, vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07843", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08629", - "text": " If a shader object is bound to any graphics stage, vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07844", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08630", - "text": " If a shader object is bound to any graphics stage, vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07845", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08631", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthTestEnable in the current command buffer set depthTestEnable to VK_TRUE, vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetDepthTestEnable in the current command buffer set depthTestEnable to VK_TRUE, then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07846", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled then vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled then vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08632", - "text": " If a shader object is bound to any graphics stage, and the depthBounds feature is enabled, the vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the depthBounds feature is enabled, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07847", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08633", - "text": " If 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, then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07848", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08634", - "text": " If 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 vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-viewportCount-03417", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-scissorCount-03418", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the scissorCount parameter of vkCmdSetScissorWithCount must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the scissorCount parameter of vkCmdSetScissorWithCount must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-viewportCount-03419", - "text": " If the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount" + "text": "If the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08635", - "text": " If a shader object is bound to any graphics stage, then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount" + "text": "If a shader object is bound to any graphics stage, then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-viewportCount-04137", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-viewportCount-04138", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksNV-None-09232", + "text": "If a shader object is bound to any graphics stage, and the VK_NV_clip_space_w_scaling extension is enabled on the device, then vkCmdSetViewportWScalingNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08636", - "text": " If a shader object is bound to any graphics stage, and the VK_NV_clip_space_w_scaling extension is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If a shader object is bound to any graphics stage, and the VK_NV_clip_space_w_scaling extension is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-viewportCount-04139", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-viewportCount-04140", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksNV-shadingRateImage-09233", + "text": "If the shadingRateImage feature is enabled, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoarseSampleOrderNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksNV-shadingRateImage-09234", + "text": "If a shader object is bound to any graphics stage, and the shadingRateImage feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetShadingRateImageEnableNV in the current command buffer set shadingRateImageEnable to VK_TRUE, then vkCmdSetViewportShadingRatePaletteNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08637", - "text": " If a shader object is bound to any graphics stage, and the shadingRateImage feature is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If a shader object is bound to any graphics stage, and the shadingRateImage feature is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-VkPipelineVieportCreateInfo-04141", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportSwizzleStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportSwizzleStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-VkPipelineVieportCreateInfo-04142", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportExclusiveScissorStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportExclusiveScissorStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07878", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07879", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksNV-exclusiveScissor-09235", + "text": "If a shader object is bound to any graphics stage, and the exclusiveScissor feature is enabled, then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08638", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetExclusiveScissorEnableNV in the current command buffer set any element of pExclusiveScissorEnables to VK_TRUE, then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetExclusiveScissorEnableNV in the current command buffer set any element of pExclusiveScissorEnables to VK_TRUE, then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-04876", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08639", - "text": " If a shader object is bound to any graphics stage, then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-04877", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08640", - "text": " If 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, then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-logicOp-04878", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08641", - "text": " If a shader object is bound to any graphics stage, and the logicOp feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the logicOp feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-primitiveFragmentShadingRateWithMultipleViewports-04552", - "text": " If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1" + "text": "If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-primitiveFragmentShadingRateWithMultipleViewports-08642", - "text": " If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and any shader object bound to a graphics stage writes to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1" + "text": "If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and any shader object bound to a graphics stage writes to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-blendEnable-04727", - "text": " If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the blendEnable member of the corresponding element of the pAttachments member of pColorBlendState must be VK_FALSE" + "text": "If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the blendEnable member of the corresponding element of the pAttachments member of pColorBlendState must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08643", - "text": " If 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, then for each color attachment in the render pass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the corresponding member of pColorBlendEnables in the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer that affected that attachment index must have been VK_FALSE" + "text": "If 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, then for each color attachment in the render pass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the corresponding member of pColorBlendEnables in the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer that affected that attachment index must have been VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-multisampledRenderToSingleSampled-07284", - "text": " If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments" + "text": "If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08644", - "text": " If 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 none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then the most recent call to vkCmdSetRasterizationSamplesEXT in the current command buffer must have set rasterizationSamples to be the same as the number of samples for the current render pass color and/or depth/stencil attachments" + "text": "If 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 none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then the most recent call to vkCmdSetRasterizationSamplesEXT in the current command buffer must have set rasterizationSamples to be the same as the number of samples for the current render pass color and/or depth/stencil attachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08876", - "text": " If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering" + "text": "If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-imageView-06172", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-imageView-06173", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-imageView-06174", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, this command must not write any values to the depth attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, this command must not write any values to the depth attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-imageView-06175", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-imageView-06176", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-imageView-06177", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-viewMask-06178", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::viewMask equal to VkRenderingInfo::viewMask" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::viewMask equal to VkRenderingInfo::viewMask", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-06179", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::colorAttachmentCount equal to VkRenderingInfo::colorAttachmentCount" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::colorAttachmentCount equal to VkRenderingInfo::colorAttachmentCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-dynamicRenderingUnusedAttachments-08910", - "text": " If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline" + "text": "If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-dynamicRenderingUnusedAttachments-08911", - "text": " If the dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats, if it exists, must be VK_FORMAT_UNDEFINED" + "text": "If the dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats, if it exists, must be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-dynamicRenderingUnusedAttachments-08912", - "text": " If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED" + "text": "If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED", + "page": "vkspec" + }, + { + "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 currently bound graphics pipeline", + "page": "vkspec" + }, + { + "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 currently bound graphics pipeline", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksNV-None-09364", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled, then vkCmdSetColorBlendEnableEXT must have set the blend enable to VK_FALSE prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksNV-None-09365", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksNV-None-09368", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksNV-None-09369", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07749", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08646", - "text": " If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the fragment stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-attachmentCount-07750", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the attachmentCount parameter of vkCmdSetColorWriteEnableEXT must be greater than or equal to the VkPipelineColorBlendStateCreateInfo::attachmentCount of the currently bound graphics pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the attachmentCount parameter of vkCmdSetColorWriteEnableEXT must be greater than or equal to the VkPipelineColorBlendStateCreateInfo::attachmentCount of the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08647", - "text": " If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the fragment stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the attachmentCount parameter of most recent call to vkCmdSetColorWriteEnableEXT in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance" + "text": "If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the attachmentCount parameter of most recent call to vkCmdSetColorWriteEnableEXT in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07751", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07880", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksNV-rasterizerDiscardEnable-09236", + "text": "If the VK_EXT_discard_rectangles extension is 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, then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08648", - "text": " If the VK_EXT_discard_rectangles extension is 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, then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_discard_rectangles extension is 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, then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07881", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08649", - "text": " If the VK_EXT_discard_rectangles extension is 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 vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_discard_rectangles extension is 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 vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-dynamicRenderingUnusedAttachments-08913", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-dynamicRenderingUnusedAttachments-08914", - "text": " If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView" + "text": "If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-dynamicRenderingUnusedAttachments-08915", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-dynamicRenderingUnusedAttachments-08916", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-dynamicRenderingUnusedAttachments-08917", - "text": " If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView" + "text": "If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-dynamicRenderingUnusedAttachments-08918", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-imageView-06183", - "text": " If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentShadingRateAttachmentInfoKHR::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR" + "text": "If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentShadingRateAttachmentInfoKHR::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-imageView-06184", - "text": " If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT" + "text": "If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-06185", - "text": " If the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline" + "text": "If the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-pDepthAttachment-06186", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-pStencilAttachment-06187", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-multisampledRenderToSingleSampled-07285", - "text": " If the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of rasterizationSamples for the currently bound graphics pipeline" + "text": "If the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of rasterizationSamples for the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-multisampledRenderToSingleSampled-07286", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-multisampledRenderToSingleSampled-07287", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-pNext-07935", - "text": " If this command has been called inside a render pass instance started with vkCmdBeginRendering, and the pNext chain of VkRenderingInfo includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the value of rasterizationSamples for the currently bound graphics pipeline must be equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples" + "text": "If this command has been called inside a render pass instance started with vkCmdBeginRendering, and the pNext chain of VkRenderingInfo includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the value of rasterizationSamples for the currently bound graphics pipeline must be equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-renderPass-06198", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline must have been created with a VkGraphicsPipelineCreateInfo::renderPass equal to VK_NULL_HANDLE" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline must have been created with a VkGraphicsPipelineCreateInfo::renderPass equal to VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-pColorAttachments-08963", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the VkRenderingInfo::pColorAttachments->imageView was not VK_NULL_HANDLE, then the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the pipeline must not be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the VkRenderingInfo::pColorAttachments->imageView was not VK_NULL_HANDLE, then the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the pipeline must not be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-pDepthAttachment-08964", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-pStencilAttachment-08965", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, stencil test is enabled and the VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, stencil test is enabled and the VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-primitivesGeneratedQueryWithRasterizerDiscard-06708", - "text": " If the primitivesGeneratedQueryWithRasterizerDiscard feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, rasterization discard must not be enabled" + "text": "If the primitivesGeneratedQueryWithRasterizerDiscard feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, rasterization discard must not be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-primitivesGeneratedQueryWithNonZeroStreams-06709", - "text": " If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, the bound graphics pipeline must not have been created with a non-zero value in VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream" + "text": "If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, the bound graphics pipeline must not have been created with a non-zero value in VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07619", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07620", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksNV-None-09237", + "text": "If a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08650", - "text": " If the depthClamp feature is 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, then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the depthClamp feature is 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, then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07621", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08651", - "text": " If 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, then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07622", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08652", - "text": " If 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, then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07623", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08653", - "text": " If 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, then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07624", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-alphaToCoverageEnable-08919", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and alphaToCoverageEnable was VK_TRUE in the last call to vkCmdSetAlphaToCoverageEnableEXT, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and alphaToCoverageEnable was VK_TRUE in the last call to vkCmdSetAlphaToCoverageEnableEXT, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08654", - "text": " If 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, then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-alphaToCoverageEnable-08920", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetAlphaToCoverageEnableEXT in the current command buffer set alphaToCoverageEnable to VK_TRUE, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetAlphaToCoverageEnableEXT in the current command buffer set alphaToCoverageEnable to VK_TRUE, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07625", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08655", - "text": " If the alphaToOne feature is 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, then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the alphaToOne feature is 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, then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07626", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08656", - "text": " If the logicOp feature is 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, then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the logicOp feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07627", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08657", - "text": " If 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, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07628", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08658", - "text": " If 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 vkCmdSetColorBlendEnableEXT for any attachment set that attachment’s value in pColorBlendEnables to VK_TRUE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetColorBlendEnableEXT for any attachment set that attachment’s value in pColorBlendEnables to VK_TRUE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07629", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08659", - "text": " If 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, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07630", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08660", - "text": " If the geometryStreams feature is enabled, and a shader object is bound to the geometry stage, then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the geometryStreams feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_GEOMETRY_BIT stage, then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07631", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08661", - "text": " If the VK_EXT_conservative_rasterization extension is 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, then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_conservative_rasterization extension is 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, then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07632", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08662", - "text": " If the VK_EXT_conservative_rasterization extension is 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 vkCmdSetConservativeRasterizationModeEXT in the current command buffer set conservativeRasterizationMode to VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_conservative_rasterization extension is 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 vkCmdSetConservativeRasterizationModeEXT in the current command buffer set conservativeRasterizationMode to VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07633", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08663", - "text": " If the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07634", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08664", - "text": " If the VK_EXT_sample_locations extension is 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, then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_sample_locations extension is 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, then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07635", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07636", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08665", - "text": " If the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the vertex stage, then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "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 in the current command buffer prior to this drawing command" + "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 in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08666", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08667", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08668", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "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 in the current command buffer prior to this drawing command" + "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 in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08669", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08670", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08671", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07849", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_EXT dynamic state enabled then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_EXT dynamic state enabled then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08672", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetLineStippleEnableEXT in the current command buffer set stippledLineEnable to VK_TRUE, then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetLineStippleEnableEXT in the current command buffer set stippledLineEnable to VK_TRUE, then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07639", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08673", - "text": " If the depthClipControl feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the depthClipControl feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07640", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08674", - "text": " If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07641", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08675", - "text": " If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07642", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08676", - "text": " If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07643", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08677", - "text": " If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetCoverageToColorEnableNV in the current command buffer set coverageToColorEnable to VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetCoverageToColorEnableNV in the current command buffer set coverageToColorEnable to VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07644", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08678", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_framebuffer_mixed_samples extension is 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, then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07645", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08679", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_framebuffer_mixed_samples extension is 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 vkCmdSetCoverageModulationModeNV in the current command buffer set coverageModulationMode to any value other than VK_COVERAGE_MODULATION_MODE_NONE_NV, then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07646", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08680", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetCoverageModulationTableEnableNV in the current command buffer set coverageModulationTableEnable to VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_framebuffer_mixed_samples extension is 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 vkCmdSetCoverageModulationTableEnableNV in the current command buffer set coverageModulationTableEnable to VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07647", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksNV-pipelineFragmentShadingRate-09238", + "text": "If the pipelineFragmentShadingRate feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetFragmentShadingRateKHR must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08681", - "text": " If the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the shadingRateImage feature is 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, then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07648", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08682", - "text": " If the representativeFragmentTest feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the representativeFragmentTest feature is 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, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07649", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08683", - "text": " If the coverageReductionMode feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the coverageReductionMode feature is 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, then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-pColorBlendEnables-07470", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT state enabled and the last call to vkCmdSetColorBlendEnableEXT set pColorBlendEnables for any attachment to VK_TRUE, then for those attachments in the subpass the corresponding image view’s format features must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT state enabled and the last call to vkCmdSetColorBlendEnableEXT set pColorBlendEnables for any attachment to VK_TRUE, then for those attachments in the subpass the corresponding image view’s format features must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-rasterizationSamples-07471", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must follow the rules for a zero-attachment subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must follow the rules for a zero-attachment subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-samples-07472", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the VkPipelineMultisampleStateCreateInfo::rasterizationSamples parameter used to create the bound graphics pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the VkPipelineMultisampleStateCreateInfo::rasterizationSamples parameter used to create the bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-samples-07473", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the rasterizationSamples parameter in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the rasterizationSamples parameter in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { - "vuid": "VUID-vkCmdDrawMeshTasksNV-multisampledRenderToSingleSampled-07475", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and none of the VK_AMD_mixed_attachment_samples extension, VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the current subpass color and/or depth/stencil attachments" + "vuid": "VUID-vkCmdDrawMeshTasksNV-rasterizationSamples-07474", + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples extensions are enabled, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the current subpass color and/or depth/stencil attachments", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksNV-None-09211", + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the rasterizationSamples member of that structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-firstAttachment-07476", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-firstAttachment-07477", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-firstAttachment-07478", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-firstAttachment-07479", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-advancedBlendMaxColorAttachments-07480", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT and VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic states enabled and the last calls to vkCmdSetColorBlendEnableEXT and vkCmdSetColorBlendAdvancedEXT have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed advancedBlendMaxColorAttachments" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT and VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic states enabled and the last calls to vkCmdSetColorBlendEnableEXT and vkCmdSetColorBlendAdvancedEXT have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed advancedBlendMaxColorAttachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-primitivesGeneratedQueryWithNonZeroStreams-07481", - "text": " If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, and the bound graphics pipeline was created with VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT state enabled, the last call to vkCmdSetRasterizationStreamEXT must have set the rasterizationStream to zero" + "text": "If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, and the bound graphics pipeline was created with VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT state enabled, the last call to vkCmdSetRasterizationStreamEXT must have set the rasterizationStream to zero", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-sampleLocationsPerPixel-07482", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-sampleLocationsPerPixel-07483", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples parameter of the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples parameter of the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-07484", - "text": " If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set" + "text": "If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-07485", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.width in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.width in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-07486", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.height in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.height in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-07487", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, the fragment shader code must not statically use the extended instruction InterpolateAtSample" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, the fragment shader code must not statically use the extended instruction InterpolateAtSample", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-07936", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.width must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.width must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-07937", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.height must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.height must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-07938", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-coverageModulationTableEnable-07488", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-rasterizationSamples-07489", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment" + "text": "If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-coverageToColorEnable-07490", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-coverageReductionMode-07491", - "text": " If this VK_NV_coverage_reduction_mode extension is enabled, the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, the current coverage reduction mode coverageReductionMode, then the current rasterizationSamples, and the sample counts for the color and depth/stencil attachments (if the subpass has them) must be a valid combination returned by vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV" + "text": "If this VK_NV_coverage_reduction_mode extension is enabled, the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, the current coverage reduction mode coverageReductionMode, then the current rasterizationSamples, and the sample counts for the color and depth/stencil attachments (if the subpass has them) must be a valid combination returned by vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-viewportCount-07492", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-viewportCount-07493", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-rasterizationSamples-07494", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE" + "text": "If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-stippledLineEnable-07495", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-stippledLineEnable-07496", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-stippledLineEnable-07497", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-stippledLineEnable-07498", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-conservativePointAndLineRasterization-07499", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, conservativePointAndLineRasterization is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the conservativeRasterizationMode set by the last call to vkCmdSetConservativeRasterizationModeEXT must be VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, conservativePointAndLineRasterization is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the conservativeRasterizationMode set by the last call to vkCmdSetConservativeRasterizationModeEXT must be VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-stage-07073", - "text": " If the currently bound pipeline was created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT, then Mesh Shader Queries must not be active" + "text": "If the currently bound pipeline was created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT, then Mesh Shader Queries must not be active", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08877", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07850", - "text": " If dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command" + "text": "If dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08684", - "text": " If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_VERTEX_BIT" + "text": "If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_VERTEX_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08685", - "text": " If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT" + "text": "If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08686", - "text": " If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT" + "text": "If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08687", - "text": " If there is no bound graphics pipeline, and the geometryShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_GEOMETRY_BIT" + "text": "If there is no bound graphics pipeline, and the geometryShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_GEOMETRY_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08688", - "text": " If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_FRAGMENT_BIT" + "text": "If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_FRAGMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08689", - "text": " If there is no bound graphics pipeline, and the taskShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TASK_BIT_EXT" + "text": "If there is no bound graphics pipeline, and the taskShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TASK_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08690", - "text": " If there is no bound graphics pipeline, and the meshShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_MESH_BIT_EXT" + "text": "If there is no bound graphics pipeline, and the meshShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_MESH_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08693", - "text": " If there is no bound graphics pipeline, and at least one of the taskShader and meshShader features is enabled, one of the VK_SHADER_STAGE_VERTEX_BIT or VK_SHADER_STAGE_MESH_BIT_EXT stages must have a valid VkShaderEXT bound, and the other must have no VkShaderEXT bound" + "text": "If there is no bound graphics pipeline, and at least one of the taskShader and meshShader features is enabled, one of the VK_SHADER_STAGE_VERTEX_BIT or VK_SHADER_STAGE_MESH_BIT_EXT stages must have a valid VkShaderEXT bound, and the other must have no VkShaderEXT bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08694", - "text": " If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created without the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, a valid VkShaderEXT must be bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage" + "text": "If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created without the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, a valid VkShaderEXT must be bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08695", - "text": " If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created with the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, there must be no VkShaderEXT bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage" + "text": "If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created with the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, there must be no VkShaderEXT bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08696", - "text": " If there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage" + "text": "If there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08698", - "text": " If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound" + "text": "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08699", - "text": " If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound" + "text": "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08878", - "text": " All bound graphics shader objects must have been created with identical or identically defined push constant ranges" + "text": "All bound graphics shader objects must have been created with identical or identically defined push constant ranges", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08879", - "text": " All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts" + "text": "All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08880", - "text": " If there is no bound graphics pipeline and the attachmentFeedbackLoopDynamicState feature is enabled on the device, vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage and the attachmentFeedbackLoopDynamicState feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-pDynamicStates-08715", - "text": " If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable parameter in the last call to vkCmdSetDepthWriteEnable must be VK_FALSE" + "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable parameter in the last call to vkCmdSetDepthWriteEnable must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-pDynamicStates-08716", - "text": " If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_STENCIL_WRITE_MASK set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the writeMask parameter in the last call to vkCmdSetStencilWriteMask must be 0" + "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_STENCIL_WRITE_MASK set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the writeMask parameter in the last call to vkCmdSetStencilWriteMask must be 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-09116", - "text": " If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them" + "text": "If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksNV-maxFragmentDualSrcAttachments-09239", + "text": "If blending is enabled for any attachment where either the source or destination blend factors for that attachment use the secondary color input, the maximum value of Location for any output attachment statically used in the Fragment Execution Model executed by this command must be less than maxFragmentDualSrcAttachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-stage-06480", - "text": " The bound graphics pipeline must not have been created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT" + "text": "The bound graphics pipeline must not have been created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07074", - "text": " Transform Feedback Queries must not be active" + "text": "Transform Feedback Queries must not be active", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07075", - "text": " Primitives Generated Queries must not be active" + "text": "Primitives Generated Queries must not be active", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-pipelineStatistics-07076", - "text": " The pipelineStatistics member used to create any active Pipeline Statistics Query must not contain VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT, VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT, or VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT" + "text": "The pipelineStatistics member used to create any active Pipeline Statistics Query must not contain VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT, VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT, or VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-taskCount-02119", - "text": " taskCount must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesNV::maxDrawMeshTasksCount" + "text": "taskCount must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesNV::maxDrawMeshTasksCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-MeshNV-07080", - "text": " The current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS must contain a shader stage using the MeshNV {ExecutionModel}" + "text": "The current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS must contain a shader stage using the MeshNV Execution Model", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-renderpass", - "text": " This command must only be called inside of a render pass instance" + "text": "This command must only be called inside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -44790,1287 +57878,1738 @@ "core": [ { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-magFilter-04553", - "text": " If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + "text": "If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-mipmapMode-04770", - "text": " If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + "text": "If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-06479", - "text": " If a VkImageView is sampled with depth comparison, the image view’s format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT" + "text": "If a VkImageView is sampled with depth comparison, the image view’s format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02691", - "text": " If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT" + "text": "If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07888", - "text": " If a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer’s format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT" + "text": "If a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer’s format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02692", - "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" + "text": "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02693", - "text": " If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" + "text": "If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-filterCubic-02694", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" + "text": "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-filterCubicMinmax-02695", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" + "text": "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-cubicRangeClamp-09212", + "text": "If the cubicRangeClamp feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command
\n
\n
must not have a VkSamplerReductionModeCreateInfo
\n
\n

reductionMode equal to\nVK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM

\n
\n
\n
", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-reductionMode-09213", + "text": "Any VkImageView being sampled with a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM as a result of this command must sample with VK_FILTER_CUBIC_EXT", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-selectableCubicWeights-09214", + "text": "If the selectableCubicWeights feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have VkSamplerCubicWeightsCreateInfoQCOM::cubicWeights equal to VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-flags-02696", - "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE" + "text": "Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-OpTypeImage-07027", - "text": " For any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT" + "text": "For any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-OpTypeImage-07028", - "text": " For any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT" + "text": "For any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-OpTypeImage-07029", - "text": " For any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT" + "text": "For any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-OpTypeImage-07030", - "text": " Any VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT" + "text": "Any VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08600", - "text": " For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08601", - "text": " For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-maintenance4-08602", - "text": " If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08114", - "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08115", - "text": " If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08116", - "text": " Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08604", - "text": " Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command" + "text": "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08117", - "text": " If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08119", - "text": " If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident" + "text": "If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08605", - "text": " If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident" + "text": "If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08606", - "text": " If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command" + "text": "If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08607", - "text": " If the shaderObject is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command" + "text": "If the shaderObject is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08608", - "text": " If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound" + "text": "If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08609", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08610", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08611", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-uniformBuffers-06935", - "text": " If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08612", - "text": " If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-storageBuffers-06936", - "text": " If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08613", - "text": " If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-02707", - "text": " If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource" + "text": "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-06550", - "text": " If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions" + "text": "If a bound shader accesses a VkSampler or VkImageView object that enables sampler Y′CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-ConstOffset-06551", - "text": " If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands" + "text": "If a bound shader accesses a VkSampler or VkImageView object that enables sampler Y′CBCR conversion, that object must not use the ConstOffset and Offset operands", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-viewType-07752", - "text": " If a VkImageView is accessed as a result of this command, then the image view’s viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation" + "text": "If a VkImageView is accessed as a result of this command, then the image view’s viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-format-07753", - "text": " If a VkImageView is accessed as a result of this command, then the numeric type of the image view’s format and the Sampled Type operand of the OpTypeImage must match" + "text": "If a VkImageView is accessed as a result of this command, then the numeric type of the image view’s format and the Sampled Type operand of the OpTypeImage must match", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-OpImageWrite-08795", - "text": " If a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format" + "text": "If a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-OpImageWrite-08796", - "text": " If a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components" + "text": "If a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-OpImageWrite-04469", - "text": " If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view’s format" + "text": "If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view’s format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-SampledType-04470", - "text": " If a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64" + "text": "If a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-SampledType-04471", - "text": " If a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32" + "text": "If a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-SampledType-04472", - "text": " If a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64" + "text": "If a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-SampledType-04473", - "text": " If a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32" + "text": "If a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-sparseImageInt64Atomics-04474", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command" + "text": "If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-sparseImageInt64Atomics-04475", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command" + "text": "If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-OpImageWeightedSampleQCOM-06971", - "text": " If OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-OpImageWeightedSampleQCOM-06972", - "text": " If OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-OpImageBoxFilterQCOM-06973", - "text": " If OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM" + "text": "If OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-OpImageBlockMatchSSDQCOM-06974", - "text": " If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM" + "text": "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-OpImageBlockMatchSADQCOM-06975", - "text": " If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM" + "text": "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-OpImageBlockMatchSADQCOM-06976", - "text": " If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation" + "text": "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-OpImageWeightedSampleQCOM-06977", - "text": " If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-OpImageWeightedSampleQCOM-06978", - "text": " If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM" + "text": "If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-OpImageBlockMatchWindow-09215", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-OpImageBlockMatchWindow-09216", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view’s format must be a single-component format.", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-OpImageBlockMatchWindow-09217", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07288", - "text": " Any shader invocation executed by this command must terminate" + "text": "Any shader invocation executed by this command must terminate", + "page": "vkspec" }, { "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" + "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", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-subpass-02685", - "text": " The subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS" + "text": "The subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07748", - "text": " If any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set" + "text": "If any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-OpTypeImage-07468", - "text": " If any shader executed by this pipeline accesses an OpTypeImage variable with a Dim operand of SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass" + "text": "If any shader executed by this pipeline accesses an OpTypeImage variable with a Dim operand of SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07469", - "text": " Input attachment views accessed in a subpass must be created with the same VkFormat as the corresponding subpass definition, and be created with a VkImageView that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound VkFramebuffer as specified by Fragment Input Attachment Compatibility" + "text": "Input attachment views accessed in a subpass must be created with the same VkFormat as the corresponding subpass definition, and be created with a VkImageView that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound VkFramebuffer as specified by Fragment Input Attachment Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-06537", - "text": " Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command" + "text": "Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command", + "page": "vkspec" }, { "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
" + "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
", + "page": "vkspec" }, { "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
" + "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
", + "page": "vkspec" }, { "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
" + "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-09003", - "text": " If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command" + "text": "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-06539", - "text": " If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment" + "text": "If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-06886", - "text": " If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled" + "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-06887", - "text": " If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back writeMask are not zero, and stencil test is enabled, all stencil ops must be VK_STENCIL_OP_KEEP" + "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back writeMask are not zero, and stencil test is enabled, all stencil ops must be VK_STENCIL_OP_KEEP", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07831", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07832", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07833", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08617", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08618", - "text": " If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08619", - "text": " If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07834", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08620", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07835", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08621", - "text": " If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07836", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled, and if the current depthBoundsTestEnable state is VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08622", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07837", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08623", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07838", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled then vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08624", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07839", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled then vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08625", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-maxMultiviewInstanceIndex-02688", - "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex" + "text": "If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsEnable-02689", - "text": " If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set" + "text": "If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-06666", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08626", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetSampleLocationsEnableEXT in the current command buffer set sampleLocationsEnable to VK_TRUE, vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetSampleLocationsEnableEXT in the current command buffer set sampleLocationsEnable to VK_TRUE, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsPerPixel-07934", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07840", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08627", - "text": " If a shader object is bound to any graphics stage, vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07841", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08628", - "text": " If a shader object is bound to any graphics stage, vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07843", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08629", - "text": " If a shader object is bound to any graphics stage, vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07844", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08630", - "text": " If a shader object is bound to any graphics stage, vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07845", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08631", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthTestEnable in the current command buffer set depthTestEnable to VK_TRUE, vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetDepthTestEnable in the current command buffer set depthTestEnable to VK_TRUE, then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07846", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled then vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled then vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08632", - "text": " If a shader object is bound to any graphics stage, and the depthBounds feature is enabled, the vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the depthBounds feature is enabled, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07847", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08633", - "text": " If 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, then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07848", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08634", - "text": " If 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 vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-03417", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-scissorCount-03418", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the scissorCount parameter of vkCmdSetScissorWithCount must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the scissorCount parameter of vkCmdSetScissorWithCount must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-03419", - "text": " If the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount" + "text": "If the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08635", - "text": " If a shader object is bound to any graphics stage, then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount" + "text": "If a shader object is bound to any graphics stage, then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-04137", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-04138", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-09232", + "text": "If a shader object is bound to any graphics stage, and the VK_NV_clip_space_w_scaling extension is enabled on the device, then vkCmdSetViewportWScalingNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08636", - "text": " If a shader object is bound to any graphics stage, and the VK_NV_clip_space_w_scaling extension is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If a shader object is bound to any graphics stage, and the VK_NV_clip_space_w_scaling extension is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-04139", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-04140", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-shadingRateImage-09233", + "text": "If the shadingRateImage feature is enabled, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoarseSampleOrderNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-shadingRateImage-09234", + "text": "If a shader object is bound to any graphics stage, and the shadingRateImage feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetShadingRateImageEnableNV in the current command buffer set shadingRateImageEnable to VK_TRUE, then vkCmdSetViewportShadingRatePaletteNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08637", - "text": " If a shader object is bound to any graphics stage, and the shadingRateImage feature is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If a shader object is bound to any graphics stage, and the shadingRateImage feature is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-VkPipelineVieportCreateInfo-04141", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportSwizzleStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportSwizzleStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-VkPipelineVieportCreateInfo-04142", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportExclusiveScissorStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportExclusiveScissorStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07878", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07879", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-exclusiveScissor-09235", + "text": "If a shader object is bound to any graphics stage, and the exclusiveScissor feature is enabled, then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08638", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetExclusiveScissorEnableNV in the current command buffer set any element of pExclusiveScissorEnables to VK_TRUE, then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetExclusiveScissorEnableNV in the current command buffer set any element of pExclusiveScissorEnables to VK_TRUE, then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-04876", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08639", - "text": " If a shader object is bound to any graphics stage, then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-04877", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08640", - "text": " If 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, then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-logicOp-04878", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08641", - "text": " If a shader object is bound to any graphics stage, and the logicOp feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the logicOp feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-primitiveFragmentShadingRateWithMultipleViewports-04552", - "text": " If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1" + "text": "If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-primitiveFragmentShadingRateWithMultipleViewports-08642", - "text": " If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and any shader object bound to a graphics stage writes to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1" + "text": "If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and any shader object bound to a graphics stage writes to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-blendEnable-04727", - "text": " If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the blendEnable member of the corresponding element of the pAttachments member of pColorBlendState must be VK_FALSE" + "text": "If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the blendEnable member of the corresponding element of the pAttachments member of pColorBlendState must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08643", - "text": " If 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, then for each color attachment in the render pass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the corresponding member of pColorBlendEnables in the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer that affected that attachment index must have been VK_FALSE" + "text": "If 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, then for each color attachment in the render pass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the corresponding member of pColorBlendEnables in the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer that affected that attachment index must have been VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-multisampledRenderToSingleSampled-07284", - "text": " If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments" + "text": "If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08644", - "text": " If 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 none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then the most recent call to vkCmdSetRasterizationSamplesEXT in the current command buffer must have set rasterizationSamples to be the same as the number of samples for the current render pass color and/or depth/stencil attachments" + "text": "If 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 none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then the most recent call to vkCmdSetRasterizationSamplesEXT in the current command buffer must have set rasterizationSamples to be the same as the number of samples for the current render pass color and/or depth/stencil attachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08876", - "text": " If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering" + "text": "If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06172", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06173", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06174", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, this command must not write any values to the depth attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, this command must not write any values to the depth attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06175", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06176", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06177", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-viewMask-06178", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::viewMask equal to VkRenderingInfo::viewMask" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::viewMask equal to VkRenderingInfo::viewMask", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06179", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::colorAttachmentCount equal to VkRenderingInfo::colorAttachmentCount" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::colorAttachmentCount equal to VkRenderingInfo::colorAttachmentCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-dynamicRenderingUnusedAttachments-08910", - "text": " If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline" + "text": "If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-dynamicRenderingUnusedAttachments-08911", - "text": " If the dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats, if it exists, must be VK_FORMAT_UNDEFINED" + "text": "If the dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats, if it exists, must be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-dynamicRenderingUnusedAttachments-08912", - "text": " If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED" + "text": "If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED", + "page": "vkspec" + }, + { + "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 currently bound graphics pipeline", + "page": "vkspec" + }, + { + "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 currently bound graphics pipeline", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-09364", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled, then vkCmdSetColorBlendEnableEXT must have set the blend enable to VK_FALSE prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-09365", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-09368", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-09369", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07749", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08646", - "text": " If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the fragment stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-attachmentCount-07750", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the attachmentCount parameter of vkCmdSetColorWriteEnableEXT must be greater than or equal to the VkPipelineColorBlendStateCreateInfo::attachmentCount of the currently bound graphics pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the attachmentCount parameter of vkCmdSetColorWriteEnableEXT must be greater than or equal to the VkPipelineColorBlendStateCreateInfo::attachmentCount of the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08647", - "text": " If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the fragment stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the attachmentCount parameter of most recent call to vkCmdSetColorWriteEnableEXT in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance" + "text": "If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the attachmentCount parameter of most recent call to vkCmdSetColorWriteEnableEXT in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07751", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07880", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-rasterizerDiscardEnable-09236", + "text": "If the VK_EXT_discard_rectangles extension is 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, then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08648", - "text": " If the VK_EXT_discard_rectangles extension is 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, then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_discard_rectangles extension is 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, then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07881", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08649", - "text": " If the VK_EXT_discard_rectangles extension is 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 vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_discard_rectangles extension is 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 vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-dynamicRenderingUnusedAttachments-08913", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-dynamicRenderingUnusedAttachments-08914", - "text": " If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView" + "text": "If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-dynamicRenderingUnusedAttachments-08915", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-dynamicRenderingUnusedAttachments-08916", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-dynamicRenderingUnusedAttachments-08917", - "text": " If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView" + "text": "If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-dynamicRenderingUnusedAttachments-08918", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06183", - "text": " If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentShadingRateAttachmentInfoKHR::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR" + "text": "If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentShadingRateAttachmentInfoKHR::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06184", - "text": " If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT" + "text": "If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06185", - "text": " If the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline" + "text": "If the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-pDepthAttachment-06186", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-pStencilAttachment-06187", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-multisampledRenderToSingleSampled-07285", - "text": " If the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of rasterizationSamples for the currently bound graphics pipeline" + "text": "If the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of rasterizationSamples for the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-multisampledRenderToSingleSampled-07286", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-multisampledRenderToSingleSampled-07287", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-pNext-07935", - "text": " If this command has been called inside a render pass instance started with vkCmdBeginRendering, and the pNext chain of VkRenderingInfo includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the value of rasterizationSamples for the currently bound graphics pipeline must be equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples" + "text": "If this command has been called inside a render pass instance started with vkCmdBeginRendering, and the pNext chain of VkRenderingInfo includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the value of rasterizationSamples for the currently bound graphics pipeline must be equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-renderPass-06198", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline must have been created with a VkGraphicsPipelineCreateInfo::renderPass equal to VK_NULL_HANDLE" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline must have been created with a VkGraphicsPipelineCreateInfo::renderPass equal to VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-pColorAttachments-08963", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the VkRenderingInfo::pColorAttachments->imageView was not VK_NULL_HANDLE, then the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the pipeline must not be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the VkRenderingInfo::pColorAttachments->imageView was not VK_NULL_HANDLE, then the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the pipeline must not be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-pDepthAttachment-08964", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-pStencilAttachment-08965", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, stencil test is enabled and the VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, stencil test is enabled and the VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-primitivesGeneratedQueryWithRasterizerDiscard-06708", - "text": " If the primitivesGeneratedQueryWithRasterizerDiscard feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, rasterization discard must not be enabled" + "text": "If the primitivesGeneratedQueryWithRasterizerDiscard feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, rasterization discard must not be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-primitivesGeneratedQueryWithNonZeroStreams-06709", - "text": " If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, the bound graphics pipeline must not have been created with a non-zero value in VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream" + "text": "If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, the bound graphics pipeline must not have been created with a non-zero value in VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07619", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07620", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-09237", + "text": "If a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08650", - "text": " If the depthClamp feature is 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, then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the depthClamp feature is 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, then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07621", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08651", - "text": " If 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, then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07622", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08652", - "text": " If 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, then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07623", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08653", - "text": " If 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, then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07624", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-alphaToCoverageEnable-08919", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and alphaToCoverageEnable was VK_TRUE in the last call to vkCmdSetAlphaToCoverageEnableEXT, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and alphaToCoverageEnable was VK_TRUE in the last call to vkCmdSetAlphaToCoverageEnableEXT, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08654", - "text": " If 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, then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-alphaToCoverageEnable-08920", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetAlphaToCoverageEnableEXT in the current command buffer set alphaToCoverageEnable to VK_TRUE, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetAlphaToCoverageEnableEXT in the current command buffer set alphaToCoverageEnable to VK_TRUE, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07625", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08655", - "text": " If the alphaToOne feature is 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, then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the alphaToOne feature is 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, then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07626", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08656", - "text": " If the logicOp feature is 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, then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the logicOp feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07627", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08657", - "text": " If 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, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07628", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08658", - "text": " If 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 vkCmdSetColorBlendEnableEXT for any attachment set that attachment’s value in pColorBlendEnables to VK_TRUE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetColorBlendEnableEXT for any attachment set that attachment’s value in pColorBlendEnables to VK_TRUE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07629", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08659", - "text": " If 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, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07630", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08660", - "text": " If the geometryStreams feature is enabled, and a shader object is bound to the geometry stage, then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the geometryStreams feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_GEOMETRY_BIT stage, then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07631", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08661", - "text": " If the VK_EXT_conservative_rasterization extension is 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, then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_conservative_rasterization extension is 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, then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07632", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08662", - "text": " If the VK_EXT_conservative_rasterization extension is 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 vkCmdSetConservativeRasterizationModeEXT in the current command buffer set conservativeRasterizationMode to VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_conservative_rasterization extension is 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 vkCmdSetConservativeRasterizationModeEXT in the current command buffer set conservativeRasterizationMode to VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07633", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08663", - "text": " If the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07634", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08664", - "text": " If the VK_EXT_sample_locations extension is 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, then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_sample_locations extension is 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, then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07635", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07636", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08665", - "text": " If the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the vertex stage, then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "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 in the current command buffer prior to this drawing command" + "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 in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08666", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08667", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08668", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "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 in the current command buffer prior to this drawing command" + "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 in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08669", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08670", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08671", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07849", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_EXT dynamic state enabled then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_EXT dynamic state enabled then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08672", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetLineStippleEnableEXT in the current command buffer set stippledLineEnable to VK_TRUE, then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetLineStippleEnableEXT in the current command buffer set stippledLineEnable to VK_TRUE, then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07639", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08673", - "text": " If the depthClipControl feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the depthClipControl feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07640", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08674", - "text": " If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07641", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08675", - "text": " If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07642", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08676", - "text": " If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07643", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08677", - "text": " If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetCoverageToColorEnableNV in the current command buffer set coverageToColorEnable to VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetCoverageToColorEnableNV in the current command buffer set coverageToColorEnable to VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07644", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08678", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_framebuffer_mixed_samples extension is 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, then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07645", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08679", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_framebuffer_mixed_samples extension is 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 vkCmdSetCoverageModulationModeNV in the current command buffer set coverageModulationMode to any value other than VK_COVERAGE_MODULATION_MODE_NONE_NV, then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07646", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08680", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetCoverageModulationTableEnableNV in the current command buffer set coverageModulationTableEnable to VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_framebuffer_mixed_samples extension is 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 vkCmdSetCoverageModulationTableEnableNV in the current command buffer set coverageModulationTableEnable to VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07647", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-pipelineFragmentShadingRate-09238", + "text": "If the pipelineFragmentShadingRate feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetFragmentShadingRateKHR must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08681", - "text": " If the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the shadingRateImage feature is 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, then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07648", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08682", - "text": " If the representativeFragmentTest feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the representativeFragmentTest feature is 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, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07649", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08683", - "text": " If the coverageReductionMode feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the coverageReductionMode feature is 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, then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-pColorBlendEnables-07470", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT state enabled and the last call to vkCmdSetColorBlendEnableEXT set pColorBlendEnables for any attachment to VK_TRUE, then for those attachments in the subpass the corresponding image view’s format features must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT state enabled and the last call to vkCmdSetColorBlendEnableEXT set pColorBlendEnables for any attachment to VK_TRUE, then for those attachments in the subpass the corresponding image view’s format features must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-rasterizationSamples-07471", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must follow the rules for a zero-attachment subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must follow the rules for a zero-attachment subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-samples-07472", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the VkPipelineMultisampleStateCreateInfo::rasterizationSamples parameter used to create the bound graphics pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the VkPipelineMultisampleStateCreateInfo::rasterizationSamples parameter used to create the bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-samples-07473", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the rasterizationSamples parameter in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the rasterizationSamples parameter in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-multisampledRenderToSingleSampled-07475", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and none of the VK_AMD_mixed_attachment_samples extension, VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the current subpass color and/or depth/stencil attachments" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-rasterizationSamples-07474", + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples extensions are enabled, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the current subpass color and/or depth/stencil attachments", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-09211", + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the rasterizationSamples member of that structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-firstAttachment-07476", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-firstAttachment-07477", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-firstAttachment-07478", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-firstAttachment-07479", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-advancedBlendMaxColorAttachments-07480", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT and VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic states enabled and the last calls to vkCmdSetColorBlendEnableEXT and vkCmdSetColorBlendAdvancedEXT have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed advancedBlendMaxColorAttachments" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT and VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic states enabled and the last calls to vkCmdSetColorBlendEnableEXT and vkCmdSetColorBlendAdvancedEXT have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed advancedBlendMaxColorAttachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-primitivesGeneratedQueryWithNonZeroStreams-07481", - "text": " If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, and the bound graphics pipeline was created with VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT state enabled, the last call to vkCmdSetRasterizationStreamEXT must have set the rasterizationStream to zero" + "text": "If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, and the bound graphics pipeline was created with VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT state enabled, the last call to vkCmdSetRasterizationStreamEXT must have set the rasterizationStream to zero", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsPerPixel-07482", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsPerPixel-07483", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples parameter of the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples parameter of the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsEnable-07484", - "text": " If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set" + "text": "If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsEnable-07485", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.width in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.width in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsEnable-07486", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.height in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.height in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsEnable-07487", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, the fragment shader code must not statically use the extended instruction InterpolateAtSample" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, the fragment shader code must not statically use the extended instruction InterpolateAtSample", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsEnable-07936", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.width must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.width must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsEnable-07937", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.height must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.height must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsEnable-07938", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-coverageModulationTableEnable-07488", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-rasterizationSamples-07489", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment" + "text": "If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-coverageToColorEnable-07490", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-coverageReductionMode-07491", - "text": " If this VK_NV_coverage_reduction_mode extension is enabled, the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, the current coverage reduction mode coverageReductionMode, then the current rasterizationSamples, and the sample counts for the color and depth/stencil attachments (if the subpass has them) must be a valid combination returned by vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV" + "text": "If this VK_NV_coverage_reduction_mode extension is enabled, the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, the current coverage reduction mode coverageReductionMode, then the current rasterizationSamples, and the sample counts for the color and depth/stencil attachments (if the subpass has them) must be a valid combination returned by vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-07492", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-07493", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-rasterizationSamples-07494", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE" + "text": "If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-stippledLineEnable-07495", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-stippledLineEnable-07496", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-stippledLineEnable-07497", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-stippledLineEnable-07498", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-conservativePointAndLineRasterization-07499", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, conservativePointAndLineRasterization is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the conservativeRasterizationMode set by the last call to vkCmdSetConservativeRasterizationModeEXT must be VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, conservativePointAndLineRasterization is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the conservativeRasterizationMode set by the last call to vkCmdSetConservativeRasterizationModeEXT must be VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-stage-07073", - "text": " If the currently bound pipeline was created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT, then Mesh Shader Queries must not be active" + "text": "If the currently bound pipeline was created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT, then Mesh Shader Queries must not be active", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08877", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07850", - "text": " If dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command" + "text": "If dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08684", - "text": " If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_VERTEX_BIT" + "text": "If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_VERTEX_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08685", - "text": " If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT" + "text": "If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08686", - "text": " If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT" + "text": "If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08687", - "text": " If there is no bound graphics pipeline, and the geometryShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_GEOMETRY_BIT" + "text": "If there is no bound graphics pipeline, and the geometryShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_GEOMETRY_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08688", - "text": " If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_FRAGMENT_BIT" + "text": "If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_FRAGMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08689", - "text": " If there is no bound graphics pipeline, and the taskShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TASK_BIT_EXT" + "text": "If there is no bound graphics pipeline, and the taskShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TASK_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08690", - "text": " If there is no bound graphics pipeline, and the meshShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_MESH_BIT_EXT" + "text": "If there is no bound graphics pipeline, and the meshShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_MESH_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08693", - "text": " If there is no bound graphics pipeline, and at least one of the taskShader and meshShader features is enabled, one of the VK_SHADER_STAGE_VERTEX_BIT or VK_SHADER_STAGE_MESH_BIT_EXT stages must have a valid VkShaderEXT bound, and the other must have no VkShaderEXT bound" + "text": "If there is no bound graphics pipeline, and at least one of the taskShader and meshShader features is enabled, one of the VK_SHADER_STAGE_VERTEX_BIT or VK_SHADER_STAGE_MESH_BIT_EXT stages must have a valid VkShaderEXT bound, and the other must have no VkShaderEXT bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08694", - "text": " If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created without the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, a valid VkShaderEXT must be bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage" + "text": "If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created without the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, a valid VkShaderEXT must be bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08695", - "text": " If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created with the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, there must be no VkShaderEXT bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage" + "text": "If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created with the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, there must be no VkShaderEXT bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08696", - "text": " If there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage" + "text": "If there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08698", - "text": " If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound" + "text": "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08699", - "text": " If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound" + "text": "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08878", - "text": " All bound graphics shader objects must have been created with identical or identically defined push constant ranges" + "text": "All bound graphics shader objects must have been created with identical or identically defined push constant ranges", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08879", - "text": " All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts" + "text": "All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08880", - "text": " If there is no bound graphics pipeline and the attachmentFeedbackLoopDynamicState feature is enabled on the device, vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage and the attachmentFeedbackLoopDynamicState feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-pDynamicStates-08715", - "text": " If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable parameter in the last call to vkCmdSetDepthWriteEnable must be VK_FALSE" + "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable parameter in the last call to vkCmdSetDepthWriteEnable must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-pDynamicStates-08716", - "text": " If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_STENCIL_WRITE_MASK set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the writeMask parameter in the last call to vkCmdSetStencilWriteMask must be 0" + "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_STENCIL_WRITE_MASK set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the writeMask parameter in the last call to vkCmdSetStencilWriteMask must be 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-09116", - "text": " If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them" + "text": "If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-maxFragmentDualSrcAttachments-09239", + "text": "If blending is enabled for any attachment where either the source or destination blend factors for that attachment use the secondary color input, the maximum value of Location for any output attachment statically used in the Fragment Execution Model executed by this command must be less than maxFragmentDualSrcAttachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-stage-06480", - "text": " The bound graphics pipeline must not have been created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT" + "text": "The bound graphics pipeline must not have been created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07074", - "text": " Transform Feedback Queries must not be active" + "text": "Transform Feedback Queries must not be active", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07075", - "text": " Primitives Generated Queries must not be active" + "text": "Primitives Generated Queries must not be active", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-pipelineStatistics-07076", - "text": " The pipelineStatistics member used to create any active Pipeline Statistics Query must not contain VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT, VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT, or VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT" + "text": "The pipelineStatistics member used to create any active Pipeline Statistics Query must not contain VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT, VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT, or VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-buffer-02708", - "text": " If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-buffer-02709", - "text": " buffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set" + "text": "buffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-offset-02710", - "text": " offset must be a multiple of 4" + "text": "offset must be a multiple of 4", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-02711", - "text": " commandBuffer must not be a protected command buffer" + "text": "commandBuffer must not be a protected command buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02718", - "text": " If the multiDrawIndirect feature is not enabled, drawCount must be 0 or 1" + "text": "If the multiDrawIndirect feature is not enabled, drawCount must be 0 or 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02719", - "text": " drawCount must be less than or equal to VkPhysicalDeviceLimits::maxDrawIndirectCount" + "text": "drawCount must be less than or equal to VkPhysicalDeviceLimits::maxDrawIndirectCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02146", - "text": " If drawCount is greater than 1, stride must be a multiple of 4 and must be greater than or equal to sizeof(VkDrawMeshTasksIndirectCommandNV)" + "text": "If drawCount is greater than 1, stride must be a multiple of 4 and must be greater than or equal to sizeof(VkDrawMeshTasksIndirectCommandNV)", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02156", - "text": " If drawCount is equal to 1, (offset + sizeof(VkDrawMeshTasksIndirectCommandNV)) must be less than or equal to the size of buffer" + "text": "If drawCount is equal to 1, (offset + sizeof(VkDrawMeshTasksIndirectCommandNV)) must be less than or equal to the size of buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02157", - "text": " If drawCount is greater than 1, (stride {times} (drawCount - 1) + offset + sizeof(VkDrawMeshTasksIndirectCommandNV)) must be less than or equal to the size of buffer" + "text": "If drawCount is greater than 1, (stride × (drawCount - 1) + offset + sizeof(VkDrawMeshTasksIndirectCommandNV)) must be less than or equal to the size of buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-MeshNV-07081", - "text": " The current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS must contain a shader stage using the MeshNV {ExecutionModel}" + "text": "The current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS must contain a shader stage using the MeshNV Execution Model", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-buffer-parameter", - "text": " buffer must be a valid VkBuffer handle" + "text": "buffer must be a valid VkBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-renderpass", - "text": " This command must only be called inside of a render pass instance" + "text": "This command must only be called inside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-commonparent", - "text": " Both of buffer, and commandBuffer must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of buffer, and commandBuffer must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -46078,7 +59617,8 @@ "core": [ { "vuid": "VUID-VkDrawMeshTasksIndirectCommandNV-taskCount-02175", - "text": " taskCount must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesNV::maxDrawMeshTasksCount" + "text": "taskCount must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesNV::maxDrawMeshTasksCount", + "page": "vkspec" } ] }, @@ -46086,1311 +59626,1768 @@ "core": [ { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-magFilter-04553", - "text": " If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + "text": "If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-mipmapMode-04770", - "text": " If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + "text": "If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06479", - "text": " If a VkImageView is sampled with depth comparison, the image view’s format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT" + "text": "If a VkImageView is sampled with depth comparison, the image view’s format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02691", - "text": " If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT" + "text": "If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07888", - "text": " If a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer’s format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT" + "text": "If a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer’s format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02692", - "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" + "text": "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02693", - "text": " If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" + "text": "If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-filterCubic-02694", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" + "text": "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-filterCubicMinmax-02695", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" + "text": "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-cubicRangeClamp-09212", + "text": "If the cubicRangeClamp feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command
\n
\n
must not have a VkSamplerReductionModeCreateInfo
\n
\n

reductionMode equal to\nVK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM

\n
\n
\n
", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-reductionMode-09213", + "text": "Any VkImageView being sampled with a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM as a result of this command must sample with VK_FILTER_CUBIC_EXT", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-selectableCubicWeights-09214", + "text": "If the selectableCubicWeights feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have VkSamplerCubicWeightsCreateInfoQCOM::cubicWeights equal to VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-flags-02696", - "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE" + "text": "Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpTypeImage-07027", - "text": " For any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT" + "text": "For any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpTypeImage-07028", - "text": " For any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT" + "text": "For any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpTypeImage-07029", - "text": " For any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT" + "text": "For any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpTypeImage-07030", - "text": " Any VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT" + "text": "Any VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08600", - "text": " For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08601", - "text": " For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-maintenance4-08602", - "text": " If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08114", - "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08115", - "text": " If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08116", - "text": " Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08604", - "text": " Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command" + "text": "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08117", - "text": " If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08119", - "text": " If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident" + "text": "If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08605", - "text": " If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident" + "text": "If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08606", - "text": " If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command" + "text": "If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08607", - "text": " If the shaderObject is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command" + "text": "If the shaderObject is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08608", - "text": " If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound" + "text": "If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08609", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08610", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08611", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-uniformBuffers-06935", - "text": " If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08612", - "text": " If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-storageBuffers-06936", - "text": " If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08613", - "text": " If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-02707", - "text": " If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource" + "text": "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06550", - "text": " If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions" + "text": "If a bound shader accesses a VkSampler or VkImageView object that enables sampler Y′CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-ConstOffset-06551", - "text": " If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands" + "text": "If a bound shader accesses a VkSampler or VkImageView object that enables sampler Y′CBCR conversion, that object must not use the ConstOffset and Offset operands", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewType-07752", - "text": " If a VkImageView is accessed as a result of this command, then the image view’s viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation" + "text": "If a VkImageView is accessed as a result of this command, then the image view’s viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-format-07753", - "text": " If a VkImageView is accessed as a result of this command, then the numeric type of the image view’s format and the Sampled Type operand of the OpTypeImage must match" + "text": "If a VkImageView is accessed as a result of this command, then the numeric type of the image view’s format and the Sampled Type operand of the OpTypeImage must match", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageWrite-08795", - "text": " If a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format" + "text": "If a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageWrite-08796", - "text": " If a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components" + "text": "If a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageWrite-04469", - "text": " If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view’s format" + "text": "If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view’s format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-SampledType-04470", - "text": " If a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64" + "text": "If a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-SampledType-04471", - "text": " If a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32" + "text": "If a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-SampledType-04472", - "text": " If a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64" + "text": "If a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-SampledType-04473", - "text": " If a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32" + "text": "If a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-sparseImageInt64Atomics-04474", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command" + "text": "If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-sparseImageInt64Atomics-04475", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command" + "text": "If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageWeightedSampleQCOM-06971", - "text": " If OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageWeightedSampleQCOM-06972", - "text": " If OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageBoxFilterQCOM-06973", - "text": " If OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM" + "text": "If OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageBlockMatchSSDQCOM-06974", - "text": " If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM" + "text": "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageBlockMatchSADQCOM-06975", - "text": " If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM" + "text": "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageBlockMatchSADQCOM-06976", - "text": " If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation" + "text": "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageWeightedSampleQCOM-06977", - "text": " If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageWeightedSampleQCOM-06978", - "text": " If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM" + "text": "If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageBlockMatchWindow-09215", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageBlockMatchWindow-09216", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view’s format must be a single-component format.", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageBlockMatchWindow-09217", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07288", - "text": " Any shader invocation executed by this command must terminate" + "text": "Any shader invocation executed by this command must terminate", + "page": "vkspec" }, { "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" + "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", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-subpass-02685", - "text": " The subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS" + "text": "The subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07748", - "text": " If any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set" + "text": "If any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpTypeImage-07468", - "text": " If any shader executed by this pipeline accesses an OpTypeImage variable with a Dim operand of SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass" + "text": "If any shader executed by this pipeline accesses an OpTypeImage variable with a Dim operand of SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07469", - "text": " Input attachment views accessed in a subpass must be created with the same VkFormat as the corresponding subpass definition, and be created with a VkImageView that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound VkFramebuffer as specified by Fragment Input Attachment Compatibility" + "text": "Input attachment views accessed in a subpass must be created with the same VkFormat as the corresponding subpass definition, and be created with a VkImageView that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound VkFramebuffer as specified by Fragment Input Attachment Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06537", - "text": " Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command" + "text": "Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command", + "page": "vkspec" }, { "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
" + "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
", + "page": "vkspec" }, { "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
" + "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
", + "page": "vkspec" }, { "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
" + "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09003", - "text": " If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command" + "text": "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06539", - "text": " If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment" + "text": "If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06886", - "text": " If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled" + "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06887", - "text": " If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back writeMask are not zero, and stencil test is enabled, all stencil ops must be VK_STENCIL_OP_KEEP" + "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back writeMask are not zero, and stencil test is enabled, all stencil ops must be VK_STENCIL_OP_KEEP", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07831", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07832", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07833", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08617", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08618", - "text": " If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08619", - "text": " If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07834", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08620", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07835", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08621", - "text": " If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07836", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled, and if the current depthBoundsTestEnable state is VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08622", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07837", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08623", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07838", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled then vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08624", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07839", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled then vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08625", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-maxMultiviewInstanceIndex-02688", - "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex" + "text": "If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsEnable-02689", - "text": " If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set" + "text": "If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06666", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08626", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetSampleLocationsEnableEXT in the current command buffer set sampleLocationsEnable to VK_TRUE, vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetSampleLocationsEnableEXT in the current command buffer set sampleLocationsEnable to VK_TRUE, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsPerPixel-07934", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07840", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08627", - "text": " If a shader object is bound to any graphics stage, vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07841", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08628", - "text": " If a shader object is bound to any graphics stage, vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07843", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08629", - "text": " If a shader object is bound to any graphics stage, vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07844", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08630", - "text": " If a shader object is bound to any graphics stage, vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07845", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08631", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthTestEnable in the current command buffer set depthTestEnable to VK_TRUE, vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetDepthTestEnable in the current command buffer set depthTestEnable to VK_TRUE, then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07846", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled then vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled then vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08632", - "text": " If a shader object is bound to any graphics stage, and the depthBounds feature is enabled, the vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the depthBounds feature is enabled, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07847", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08633", - "text": " If 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, then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07848", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08634", - "text": " If 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 vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-03417", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-scissorCount-03418", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the scissorCount parameter of vkCmdSetScissorWithCount must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the scissorCount parameter of vkCmdSetScissorWithCount must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-03419", - "text": " If the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount" + "text": "If the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08635", - "text": " If a shader object is bound to any graphics stage, then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount" + "text": "If a shader object is bound to any graphics stage, then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-04137", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-04138", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09232", + "text": "If a shader object is bound to any graphics stage, and the VK_NV_clip_space_w_scaling extension is enabled on the device, then vkCmdSetViewportWScalingNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08636", - "text": " If a shader object is bound to any graphics stage, and the VK_NV_clip_space_w_scaling extension is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If a shader object is bound to any graphics stage, and the VK_NV_clip_space_w_scaling extension is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-04139", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-04140", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-shadingRateImage-09233", + "text": "If the shadingRateImage feature is enabled, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoarseSampleOrderNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-shadingRateImage-09234", + "text": "If a shader object is bound to any graphics stage, and the shadingRateImage feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetShadingRateImageEnableNV in the current command buffer set shadingRateImageEnable to VK_TRUE, then vkCmdSetViewportShadingRatePaletteNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08637", - "text": " If a shader object is bound to any graphics stage, and the shadingRateImage feature is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If a shader object is bound to any graphics stage, and the shadingRateImage feature is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-VkPipelineVieportCreateInfo-04141", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportSwizzleStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportSwizzleStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-VkPipelineVieportCreateInfo-04142", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportExclusiveScissorStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportExclusiveScissorStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07878", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07879", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-exclusiveScissor-09235", + "text": "If a shader object is bound to any graphics stage, and the exclusiveScissor feature is enabled, then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08638", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetExclusiveScissorEnableNV in the current command buffer set any element of pExclusiveScissorEnables to VK_TRUE, then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetExclusiveScissorEnableNV in the current command buffer set any element of pExclusiveScissorEnables to VK_TRUE, then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-04876", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08639", - "text": " If a shader object is bound to any graphics stage, then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-04877", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08640", - "text": " If 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, then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-logicOp-04878", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08641", - "text": " If a shader object is bound to any graphics stage, and the logicOp feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the logicOp feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-primitiveFragmentShadingRateWithMultipleViewports-04552", - "text": " If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1" + "text": "If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-primitiveFragmentShadingRateWithMultipleViewports-08642", - "text": " If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and any shader object bound to a graphics stage writes to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1" + "text": "If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and any shader object bound to a graphics stage writes to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-blendEnable-04727", - "text": " If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the blendEnable member of the corresponding element of the pAttachments member of pColorBlendState must be VK_FALSE" + "text": "If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the blendEnable member of the corresponding element of the pAttachments member of pColorBlendState must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08643", - "text": " If 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, then for each color attachment in the render pass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the corresponding member of pColorBlendEnables in the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer that affected that attachment index must have been VK_FALSE" + "text": "If 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, then for each color attachment in the render pass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the corresponding member of pColorBlendEnables in the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer that affected that attachment index must have been VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-multisampledRenderToSingleSampled-07284", - "text": " If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments" + "text": "If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08644", - "text": " If 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 none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then the most recent call to vkCmdSetRasterizationSamplesEXT in the current command buffer must have set rasterizationSamples to be the same as the number of samples for the current render pass color and/or depth/stencil attachments" + "text": "If 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 none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then the most recent call to vkCmdSetRasterizationSamplesEXT in the current command buffer must have set rasterizationSamples to be the same as the number of samples for the current render pass color and/or depth/stencil attachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08876", - "text": " If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering" + "text": "If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06172", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06173", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06174", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, this command must not write any values to the depth attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, this command must not write any values to the depth attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06175", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06176", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06177", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewMask-06178", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::viewMask equal to VkRenderingInfo::viewMask" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::viewMask equal to VkRenderingInfo::viewMask", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06179", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::colorAttachmentCount equal to VkRenderingInfo::colorAttachmentCount" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::colorAttachmentCount equal to VkRenderingInfo::colorAttachmentCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-dynamicRenderingUnusedAttachments-08910", - "text": " If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline" + "text": "If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-dynamicRenderingUnusedAttachments-08911", - "text": " If the dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats, if it exists, must be VK_FORMAT_UNDEFINED" + "text": "If the dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats, if it exists, must be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-dynamicRenderingUnusedAttachments-08912", - "text": " If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED" + "text": "If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED", + "page": "vkspec" + }, + { + "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 currently bound graphics pipeline", + "page": "vkspec" + }, + { + "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 currently bound graphics pipeline", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09364", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled, then vkCmdSetColorBlendEnableEXT must have set the blend enable to VK_FALSE prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09365", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09368", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09369", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07749", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08646", - "text": " If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the fragment stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-attachmentCount-07750", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the attachmentCount parameter of vkCmdSetColorWriteEnableEXT must be greater than or equal to the VkPipelineColorBlendStateCreateInfo::attachmentCount of the currently bound graphics pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the attachmentCount parameter of vkCmdSetColorWriteEnableEXT must be greater than or equal to the VkPipelineColorBlendStateCreateInfo::attachmentCount of the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08647", - "text": " If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the fragment stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the attachmentCount parameter of most recent call to vkCmdSetColorWriteEnableEXT in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance" + "text": "If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the attachmentCount parameter of most recent call to vkCmdSetColorWriteEnableEXT in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07751", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07880", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-rasterizerDiscardEnable-09236", + "text": "If the VK_EXT_discard_rectangles extension is 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, then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08648", - "text": " If the VK_EXT_discard_rectangles extension is 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, then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_discard_rectangles extension is 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, then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07881", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08649", - "text": " If the VK_EXT_discard_rectangles extension is 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 vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_discard_rectangles extension is 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 vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-dynamicRenderingUnusedAttachments-08913", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-dynamicRenderingUnusedAttachments-08914", - "text": " If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView" + "text": "If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-dynamicRenderingUnusedAttachments-08915", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-dynamicRenderingUnusedAttachments-08916", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-dynamicRenderingUnusedAttachments-08917", - "text": " If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView" + "text": "If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-dynamicRenderingUnusedAttachments-08918", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06183", - "text": " If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentShadingRateAttachmentInfoKHR::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR" + "text": "If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentShadingRateAttachmentInfoKHR::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06184", - "text": " If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT" + "text": "If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06185", - "text": " If the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline" + "text": "If the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthAttachment-06186", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-pStencilAttachment-06187", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-multisampledRenderToSingleSampled-07285", - "text": " If the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of rasterizationSamples for the currently bound graphics pipeline" + "text": "If the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of rasterizationSamples for the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-multisampledRenderToSingleSampled-07286", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-multisampledRenderToSingleSampled-07287", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-pNext-07935", - "text": " If this command has been called inside a render pass instance started with vkCmdBeginRendering, and the pNext chain of VkRenderingInfo includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the value of rasterizationSamples for the currently bound graphics pipeline must be equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples" + "text": "If this command has been called inside a render pass instance started with vkCmdBeginRendering, and the pNext chain of VkRenderingInfo includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the value of rasterizationSamples for the currently bound graphics pipeline must be equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-renderPass-06198", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline must have been created with a VkGraphicsPipelineCreateInfo::renderPass equal to VK_NULL_HANDLE" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline must have been created with a VkGraphicsPipelineCreateInfo::renderPass equal to VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-pColorAttachments-08963", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the VkRenderingInfo::pColorAttachments->imageView was not VK_NULL_HANDLE, then the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the pipeline must not be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the VkRenderingInfo::pColorAttachments->imageView was not VK_NULL_HANDLE, then the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the pipeline must not be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthAttachment-08964", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-pStencilAttachment-08965", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, stencil test is enabled and the VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, stencil test is enabled and the VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-primitivesGeneratedQueryWithRasterizerDiscard-06708", - "text": " If the primitivesGeneratedQueryWithRasterizerDiscard feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, rasterization discard must not be enabled" + "text": "If the primitivesGeneratedQueryWithRasterizerDiscard feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, rasterization discard must not be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-primitivesGeneratedQueryWithNonZeroStreams-06709", - "text": " If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, the bound graphics pipeline must not have been created with a non-zero value in VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream" + "text": "If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, the bound graphics pipeline must not have been created with a non-zero value in VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07619", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07620", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09237", + "text": "If a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08650", - "text": " If the depthClamp feature is 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, then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the depthClamp feature is 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, then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07621", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08651", - "text": " If 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, then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07622", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08652", - "text": " If 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, then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07623", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08653", - "text": " If 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, then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07624", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-alphaToCoverageEnable-08919", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and alphaToCoverageEnable was VK_TRUE in the last call to vkCmdSetAlphaToCoverageEnableEXT, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and alphaToCoverageEnable was VK_TRUE in the last call to vkCmdSetAlphaToCoverageEnableEXT, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08654", - "text": " If 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, then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-alphaToCoverageEnable-08920", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetAlphaToCoverageEnableEXT in the current command buffer set alphaToCoverageEnable to VK_TRUE, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetAlphaToCoverageEnableEXT in the current command buffer set alphaToCoverageEnable to VK_TRUE, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07625", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08655", - "text": " If the alphaToOne feature is 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, then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the alphaToOne feature is 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, then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07626", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08656", - "text": " If the logicOp feature is 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, then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the logicOp feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07627", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08657", - "text": " If 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, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07628", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08658", - "text": " If 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 vkCmdSetColorBlendEnableEXT for any attachment set that attachment’s value in pColorBlendEnables to VK_TRUE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetColorBlendEnableEXT for any attachment set that attachment’s value in pColorBlendEnables to VK_TRUE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07629", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08659", - "text": " If 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, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07630", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08660", - "text": " If the geometryStreams feature is enabled, and a shader object is bound to the geometry stage, then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the geometryStreams feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_GEOMETRY_BIT stage, then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07631", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08661", - "text": " If the VK_EXT_conservative_rasterization extension is 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, then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_conservative_rasterization extension is 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, then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07632", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08662", - "text": " If the VK_EXT_conservative_rasterization extension is 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 vkCmdSetConservativeRasterizationModeEXT in the current command buffer set conservativeRasterizationMode to VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_conservative_rasterization extension is 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 vkCmdSetConservativeRasterizationModeEXT in the current command buffer set conservativeRasterizationMode to VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07633", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08663", - "text": " If the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07634", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08664", - "text": " If the VK_EXT_sample_locations extension is 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, then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_sample_locations extension is 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, then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07635", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07636", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08665", - "text": " If the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the vertex stage, then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "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 in the current command buffer prior to this drawing command" + "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 in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08666", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08667", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08668", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "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 in the current command buffer prior to this drawing command" + "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 in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08669", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08670", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08671", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07849", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_EXT dynamic state enabled then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_EXT dynamic state enabled then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08672", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetLineStippleEnableEXT in the current command buffer set stippledLineEnable to VK_TRUE, then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetLineStippleEnableEXT in the current command buffer set stippledLineEnable to VK_TRUE, then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07639", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08673", - "text": " If the depthClipControl feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the depthClipControl feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07640", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08674", - "text": " If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07641", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08675", - "text": " If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07642", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08676", - "text": " If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07643", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08677", - "text": " If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetCoverageToColorEnableNV in the current command buffer set coverageToColorEnable to VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetCoverageToColorEnableNV in the current command buffer set coverageToColorEnable to VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07644", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08678", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_framebuffer_mixed_samples extension is 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, then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07645", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08679", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_framebuffer_mixed_samples extension is 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 vkCmdSetCoverageModulationModeNV in the current command buffer set coverageModulationMode to any value other than VK_COVERAGE_MODULATION_MODE_NONE_NV, then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07646", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08680", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetCoverageModulationTableEnableNV in the current command buffer set coverageModulationTableEnable to VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_framebuffer_mixed_samples extension is 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 vkCmdSetCoverageModulationTableEnableNV in the current command buffer set coverageModulationTableEnable to VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07647", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-pipelineFragmentShadingRate-09238", + "text": "If the pipelineFragmentShadingRate feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetFragmentShadingRateKHR must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08681", - "text": " If the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the shadingRateImage feature is 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, then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07648", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08682", - "text": " If the representativeFragmentTest feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the representativeFragmentTest feature is 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, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07649", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08683", - "text": " If the coverageReductionMode feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the coverageReductionMode feature is 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, then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-pColorBlendEnables-07470", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT state enabled and the last call to vkCmdSetColorBlendEnableEXT set pColorBlendEnables for any attachment to VK_TRUE, then for those attachments in the subpass the corresponding image view’s format features must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT state enabled and the last call to vkCmdSetColorBlendEnableEXT set pColorBlendEnables for any attachment to VK_TRUE, then for those attachments in the subpass the corresponding image view’s format features must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-rasterizationSamples-07471", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must follow the rules for a zero-attachment subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must follow the rules for a zero-attachment subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-samples-07472", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the VkPipelineMultisampleStateCreateInfo::rasterizationSamples parameter used to create the bound graphics pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the VkPipelineMultisampleStateCreateInfo::rasterizationSamples parameter used to create the bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-samples-07473", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the rasterizationSamples parameter in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the rasterizationSamples parameter in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-multisampledRenderToSingleSampled-07475", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and none of the VK_AMD_mixed_attachment_samples extension, VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the current subpass color and/or depth/stencil attachments" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-rasterizationSamples-07474", + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples extensions are enabled, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the current subpass color and/or depth/stencil attachments", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09211", + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the rasterizationSamples member of that structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-firstAttachment-07476", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-firstAttachment-07477", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-firstAttachment-07478", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-firstAttachment-07479", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-advancedBlendMaxColorAttachments-07480", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT and VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic states enabled and the last calls to vkCmdSetColorBlendEnableEXT and vkCmdSetColorBlendAdvancedEXT have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed advancedBlendMaxColorAttachments" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT and VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic states enabled and the last calls to vkCmdSetColorBlendEnableEXT and vkCmdSetColorBlendAdvancedEXT have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed advancedBlendMaxColorAttachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-primitivesGeneratedQueryWithNonZeroStreams-07481", - "text": " If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, and the bound graphics pipeline was created with VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT state enabled, the last call to vkCmdSetRasterizationStreamEXT must have set the rasterizationStream to zero" + "text": "If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, and the bound graphics pipeline was created with VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT state enabled, the last call to vkCmdSetRasterizationStreamEXT must have set the rasterizationStream to zero", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsPerPixel-07482", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsPerPixel-07483", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples parameter of the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples parameter of the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsEnable-07484", - "text": " If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set" + "text": "If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsEnable-07485", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.width in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.width in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsEnable-07486", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.height in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.height in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsEnable-07487", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, the fragment shader code must not statically use the extended instruction InterpolateAtSample" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, the fragment shader code must not statically use the extended instruction InterpolateAtSample", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsEnable-07936", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.width must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.width must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsEnable-07937", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.height must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.height must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsEnable-07938", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-coverageModulationTableEnable-07488", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-rasterizationSamples-07489", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment" + "text": "If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-coverageToColorEnable-07490", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-coverageReductionMode-07491", - "text": " If this VK_NV_coverage_reduction_mode extension is enabled, the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, the current coverage reduction mode coverageReductionMode, then the current rasterizationSamples, and the sample counts for the color and depth/stencil attachments (if the subpass has them) must be a valid combination returned by vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV" + "text": "If this VK_NV_coverage_reduction_mode extension is enabled, the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, the current coverage reduction mode coverageReductionMode, then the current rasterizationSamples, and the sample counts for the color and depth/stencil attachments (if the subpass has them) must be a valid combination returned by vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-07492", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-07493", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-rasterizationSamples-07494", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE" + "text": "If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-stippledLineEnable-07495", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-stippledLineEnable-07496", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-stippledLineEnable-07497", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-stippledLineEnable-07498", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-conservativePointAndLineRasterization-07499", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, conservativePointAndLineRasterization is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the conservativeRasterizationMode set by the last call to vkCmdSetConservativeRasterizationModeEXT must be VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, conservativePointAndLineRasterization is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the conservativeRasterizationMode set by the last call to vkCmdSetConservativeRasterizationModeEXT must be VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-stage-07073", - "text": " If the currently bound pipeline was created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT, then Mesh Shader Queries must not be active" + "text": "If the currently bound pipeline was created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT, then Mesh Shader Queries must not be active", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08877", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07850", - "text": " If dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command" + "text": "If dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08684", - "text": " If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_VERTEX_BIT" + "text": "If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_VERTEX_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08685", - "text": " If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT" + "text": "If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08686", - "text": " If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT" + "text": "If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08687", - "text": " If there is no bound graphics pipeline, and the geometryShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_GEOMETRY_BIT" + "text": "If there is no bound graphics pipeline, and the geometryShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_GEOMETRY_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08688", - "text": " If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_FRAGMENT_BIT" + "text": "If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_FRAGMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08689", - "text": " If there is no bound graphics pipeline, and the taskShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TASK_BIT_EXT" + "text": "If there is no bound graphics pipeline, and the taskShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TASK_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08690", - "text": " If there is no bound graphics pipeline, and the meshShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_MESH_BIT_EXT" + "text": "If there is no bound graphics pipeline, and the meshShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_MESH_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08693", - "text": " If there is no bound graphics pipeline, and at least one of the taskShader and meshShader features is enabled, one of the VK_SHADER_STAGE_VERTEX_BIT or VK_SHADER_STAGE_MESH_BIT_EXT stages must have a valid VkShaderEXT bound, and the other must have no VkShaderEXT bound" + "text": "If there is no bound graphics pipeline, and at least one of the taskShader and meshShader features is enabled, one of the VK_SHADER_STAGE_VERTEX_BIT or VK_SHADER_STAGE_MESH_BIT_EXT stages must have a valid VkShaderEXT bound, and the other must have no VkShaderEXT bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08694", - "text": " If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created without the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, a valid VkShaderEXT must be bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage" + "text": "If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created without the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, a valid VkShaderEXT must be bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08695", - "text": " If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created with the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, there must be no VkShaderEXT bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage" + "text": "If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created with the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, there must be no VkShaderEXT bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08696", - "text": " If there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage" + "text": "If there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08698", - "text": " If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound" + "text": "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08699", - "text": " If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound" + "text": "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08878", - "text": " All bound graphics shader objects must have been created with identical or identically defined push constant ranges" + "text": "All bound graphics shader objects must have been created with identical or identically defined push constant ranges", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08879", - "text": " All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts" + "text": "All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08880", - "text": " If there is no bound graphics pipeline and the attachmentFeedbackLoopDynamicState feature is enabled on the device, vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage and the attachmentFeedbackLoopDynamicState feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-pDynamicStates-08715", - "text": " If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable parameter in the last call to vkCmdSetDepthWriteEnable must be VK_FALSE" + "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable parameter in the last call to vkCmdSetDepthWriteEnable must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-pDynamicStates-08716", - "text": " If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_STENCIL_WRITE_MASK set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the writeMask parameter in the last call to vkCmdSetStencilWriteMask must be 0" + "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_STENCIL_WRITE_MASK set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the writeMask parameter in the last call to vkCmdSetStencilWriteMask must be 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09116", - "text": " If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them" + "text": "If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-maxFragmentDualSrcAttachments-09239", + "text": "If blending is enabled for any attachment where either the source or destination blend factors for that attachment use the secondary color input, the maximum value of Location for any output attachment statically used in the Fragment Execution Model executed by this command must be less than maxFragmentDualSrcAttachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-stage-06480", - "text": " The bound graphics pipeline must not have been created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT" + "text": "The bound graphics pipeline must not have been created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07074", - "text": " Transform Feedback Queries must not be active" + "text": "Transform Feedback Queries must not be active", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07075", - "text": " Primitives Generated Queries must not be active" + "text": "Primitives Generated Queries must not be active", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-pipelineStatistics-07076", - "text": " The pipelineStatistics member used to create any active Pipeline Statistics Query must not contain VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT, VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT, or VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT" + "text": "The pipelineStatistics member used to create any active Pipeline Statistics Query must not contain VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT, VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT, or VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-buffer-02708", - "text": " If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-buffer-02709", - "text": " buffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set" + "text": "buffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-offset-02710", - "text": " offset must be a multiple of 4" + "text": "offset must be a multiple of 4", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-02711", - "text": " commandBuffer must not be a protected command buffer" + "text": "commandBuffer must not be a protected command buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02714", - "text": " If countBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If countBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02715", - "text": " countBuffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set" + "text": "countBuffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBufferOffset-02716", - "text": " countBufferOffset must be a multiple of 4" + "text": "countBufferOffset must be a multiple of 4", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02717", - "text": " The count stored in countBuffer must be less than or equal to VkPhysicalDeviceLimits::maxDrawIndirectCount" + "text": "The count stored in countBuffer must be less than or equal to VkPhysicalDeviceLimits::maxDrawIndirectCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBufferOffset-04129", - "text": " (countBufferOffset + sizeof(uint32_t)) must be less than or equal to the size of countBuffer" + "text": "(countBufferOffset + sizeof(uint32_t)) must be less than or equal to the size of countBuffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-04445", - "text": " If drawIndirectCount is not enabled this function must not be used" + "text": "If drawIndirectCount is not enabled this function must not be used", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-stride-02182", - "text": " stride must be a multiple of 4 and must be greater than or equal to sizeof(VkDrawMeshTasksIndirectCommandNV)" + "text": "stride must be a multiple of 4 and must be greater than or equal to sizeof(VkDrawMeshTasksIndirectCommandNV)", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-maxDrawCount-02183", - "text": " If maxDrawCount is greater than or equal to 1, (stride {times} (maxDrawCount - 1) + offset + sizeof(VkDrawMeshTasksIndirectCommandNV)) must be less than or equal to the size of buffer" + "text": "If maxDrawCount is greater than or equal to 1, (stride × (maxDrawCount - 1) + offset + sizeof(VkDrawMeshTasksIndirectCommandNV)) must be less than or equal to the size of buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02191", - "text": " If the count stored in countBuffer is equal to 1, (offset + sizeof(VkDrawMeshTasksIndirectCommandNV)) must be less than or equal to the size of buffer" + "text": "If the count stored in countBuffer is equal to 1, (offset + sizeof(VkDrawMeshTasksIndirectCommandNV)) must be less than or equal to the size of buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02192", - "text": " If the count stored in countBuffer is greater than 1, (stride {times} (drawCount - 1) + offset + sizeof(VkDrawMeshTasksIndirectCommandNV)) must be less than or equal to the size of buffer" + "text": "If the count stored in countBuffer is greater than 1, (stride × (drawCount - 1) + offset + sizeof(VkDrawMeshTasksIndirectCommandNV)) must be less than or equal to the size of buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-MeshNV-07082", - "text": " The current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS must contain a shader stage using the MeshNV {ExecutionModel}" + "text": "The current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS must contain a shader stage using the MeshNV Execution Model", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-buffer-parameter", - "text": " buffer must be a valid VkBuffer handle" + "text": "buffer must be a valid VkBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-parameter", - "text": " countBuffer must be a valid VkBuffer handle" + "text": "countBuffer must be a valid VkBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-renderpass", - "text": " This command must only be called inside of a render pass instance" + "text": "This command must only be called inside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-commonparent", - "text": " Each of buffer, commandBuffer, and countBuffer must have been created, allocated, or retrieved from the same VkDevice" + "text": "Each of buffer, commandBuffer, and countBuffer must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -47398,1275 +61395,1723 @@ "core": [ { "vuid": "VUID-vkCmdDrawMeshTasksEXT-magFilter-04553", - "text": " If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + "text": "If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-mipmapMode-04770", - "text": " If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + "text": "If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-06479", - "text": " If a VkImageView is sampled with depth comparison, the image view’s format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT" + "text": "If a VkImageView is sampled with depth comparison, the image view’s format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-02691", - "text": " If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT" + "text": "If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07888", - "text": " If a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer’s format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT" + "text": "If a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer’s format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-02692", - "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" + "text": "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-02693", - "text": " If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" + "text": "If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-filterCubic-02694", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" + "text": "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-filterCubicMinmax-02695", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" + "text": "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksEXT-cubicRangeClamp-09212", + "text": "If the cubicRangeClamp feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command
\n
\n
must not have a VkSamplerReductionModeCreateInfo
\n
\n

reductionMode equal to\nVK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM

\n
\n
\n
", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksEXT-reductionMode-09213", + "text": "Any VkImageView being sampled with a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM as a result of this command must sample with VK_FILTER_CUBIC_EXT", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksEXT-selectableCubicWeights-09214", + "text": "If the selectableCubicWeights feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have VkSamplerCubicWeightsCreateInfoQCOM::cubicWeights equal to VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-flags-02696", - "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE" + "text": "Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-OpTypeImage-07027", - "text": " For any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT" + "text": "For any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-OpTypeImage-07028", - "text": " For any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT" + "text": "For any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-OpTypeImage-07029", - "text": " For any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT" + "text": "For any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-OpTypeImage-07030", - "text": " Any VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT" + "text": "Any VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08600", - "text": " For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08601", - "text": " For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-maintenance4-08602", - "text": " If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08114", - "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08115", - "text": " If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08116", - "text": " Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08604", - "text": " Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command" + "text": "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08117", - "text": " If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08119", - "text": " If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident" + "text": "If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08605", - "text": " If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident" + "text": "If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08606", - "text": " If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command" + "text": "If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08607", - "text": " If the shaderObject is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command" + "text": "If the shaderObject is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08608", - "text": " If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound" + "text": "If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08609", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08610", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08611", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-uniformBuffers-06935", - "text": " If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08612", - "text": " If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-storageBuffers-06936", - "text": " If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08613", - "text": " If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-commandBuffer-02707", - "text": " If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource" + "text": "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-06550", - "text": " If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions" + "text": "If a bound shader accesses a VkSampler or VkImageView object that enables sampler Y′CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-ConstOffset-06551", - "text": " If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands" + "text": "If a bound shader accesses a VkSampler or VkImageView object that enables sampler Y′CBCR conversion, that object must not use the ConstOffset and Offset operands", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-viewType-07752", - "text": " If a VkImageView is accessed as a result of this command, then the image view’s viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation" + "text": "If a VkImageView is accessed as a result of this command, then the image view’s viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-format-07753", - "text": " If a VkImageView is accessed as a result of this command, then the numeric type of the image view’s format and the Sampled Type operand of the OpTypeImage must match" + "text": "If a VkImageView is accessed as a result of this command, then the numeric type of the image view’s format and the Sampled Type operand of the OpTypeImage must match", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-OpImageWrite-08795", - "text": " If a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format" + "text": "If a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-OpImageWrite-08796", - "text": " If a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components" + "text": "If a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-OpImageWrite-04469", - "text": " If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view’s format" + "text": "If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view’s format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-SampledType-04470", - "text": " If a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64" + "text": "If a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-SampledType-04471", - "text": " If a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32" + "text": "If a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-SampledType-04472", - "text": " If a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64" + "text": "If a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-SampledType-04473", - "text": " If a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32" + "text": "If a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-sparseImageInt64Atomics-04474", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command" + "text": "If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-sparseImageInt64Atomics-04475", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command" + "text": "If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-OpImageWeightedSampleQCOM-06971", - "text": " If OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-OpImageWeightedSampleQCOM-06972", - "text": " If OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-OpImageBoxFilterQCOM-06973", - "text": " If OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM" + "text": "If OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-OpImageBlockMatchSSDQCOM-06974", - "text": " If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM" + "text": "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-OpImageBlockMatchSADQCOM-06975", - "text": " If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM" + "text": "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-OpImageBlockMatchSADQCOM-06976", - "text": " If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation" + "text": "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-OpImageWeightedSampleQCOM-06977", - "text": " If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-OpImageWeightedSampleQCOM-06978", - "text": " If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM" + "text": "If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksEXT-OpImageBlockMatchWindow-09215", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksEXT-OpImageBlockMatchWindow-09216", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view’s format must be a single-component format.", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksEXT-OpImageBlockMatchWindow-09217", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07288", - "text": " Any shader invocation executed by this command must terminate" + "text": "Any shader invocation executed by this command must terminate", + "page": "vkspec" }, { "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" + "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", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-subpass-02685", - "text": " The subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS" + "text": "The subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07748", - "text": " If any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set" + "text": "If any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-OpTypeImage-07468", - "text": " If any shader executed by this pipeline accesses an OpTypeImage variable with a Dim operand of SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass" + "text": "If any shader executed by this pipeline accesses an OpTypeImage variable with a Dim operand of SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07469", - "text": " Input attachment views accessed in a subpass must be created with the same VkFormat as the corresponding subpass definition, and be created with a VkImageView that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound VkFramebuffer as specified by Fragment Input Attachment Compatibility" + "text": "Input attachment views accessed in a subpass must be created with the same VkFormat as the corresponding subpass definition, and be created with a VkImageView that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound VkFramebuffer as specified by Fragment Input Attachment Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-06537", - "text": " Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command" + "text": "Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command", + "page": "vkspec" }, { "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
" + "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
", + "page": "vkspec" }, { "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
" + "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
", + "page": "vkspec" }, { "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
" + "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-09003", - "text": " If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command" + "text": "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-06539", - "text": " If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment" + "text": "If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-06886", - "text": " If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled" + "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-06887", - "text": " If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back writeMask are not zero, and stencil test is enabled, all stencil ops must be VK_STENCIL_OP_KEEP" + "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back writeMask are not zero, and stencil test is enabled, all stencil ops must be VK_STENCIL_OP_KEEP", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07831", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07832", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07833", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08617", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08618", - "text": " If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08619", - "text": " If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07834", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08620", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07835", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08621", - "text": " If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07836", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled, and if the current depthBoundsTestEnable state is VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08622", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07837", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08623", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07838", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled then vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08624", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07839", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled then vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08625", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-maxMultiviewInstanceIndex-02688", - "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex" + "text": "If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-sampleLocationsEnable-02689", - "text": " If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set" + "text": "If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-06666", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08626", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetSampleLocationsEnableEXT in the current command buffer set sampleLocationsEnable to VK_TRUE, vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetSampleLocationsEnableEXT in the current command buffer set sampleLocationsEnable to VK_TRUE, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-sampleLocationsPerPixel-07934", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07840", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08627", - "text": " If a shader object is bound to any graphics stage, vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07841", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08628", - "text": " If a shader object is bound to any graphics stage, vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07843", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08629", - "text": " If a shader object is bound to any graphics stage, vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07844", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08630", - "text": " If a shader object is bound to any graphics stage, vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07845", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08631", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthTestEnable in the current command buffer set depthTestEnable to VK_TRUE, vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetDepthTestEnable in the current command buffer set depthTestEnable to VK_TRUE, then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07846", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled then vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled then vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08632", - "text": " If a shader object is bound to any graphics stage, and the depthBounds feature is enabled, the vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the depthBounds feature is enabled, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07847", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08633", - "text": " If 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, then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07848", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08634", - "text": " If 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 vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-viewportCount-03417", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-scissorCount-03418", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the scissorCount parameter of vkCmdSetScissorWithCount must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the scissorCount parameter of vkCmdSetScissorWithCount must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-viewportCount-03419", - "text": " If the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount" + "text": "If the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08635", - "text": " If a shader object is bound to any graphics stage, then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount" + "text": "If a shader object is bound to any graphics stage, then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-viewportCount-04137", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-viewportCount-04138", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-09232", + "text": "If a shader object is bound to any graphics stage, and the VK_NV_clip_space_w_scaling extension is enabled on the device, then vkCmdSetViewportWScalingNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08636", - "text": " If a shader object is bound to any graphics stage, and the VK_NV_clip_space_w_scaling extension is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If a shader object is bound to any graphics stage, and the VK_NV_clip_space_w_scaling extension is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-viewportCount-04139", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-viewportCount-04140", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksEXT-shadingRateImage-09233", + "text": "If the shadingRateImage feature is enabled, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoarseSampleOrderNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksEXT-shadingRateImage-09234", + "text": "If a shader object is bound to any graphics stage, and the shadingRateImage feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetShadingRateImageEnableNV in the current command buffer set shadingRateImageEnable to VK_TRUE, then vkCmdSetViewportShadingRatePaletteNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08637", - "text": " If a shader object is bound to any graphics stage, and the shadingRateImage feature is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If a shader object is bound to any graphics stage, and the shadingRateImage feature is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-VkPipelineVieportCreateInfo-04141", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportSwizzleStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportSwizzleStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-VkPipelineVieportCreateInfo-04142", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportExclusiveScissorStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportExclusiveScissorStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07878", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07879", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksEXT-exclusiveScissor-09235", + "text": "If a shader object is bound to any graphics stage, and the exclusiveScissor feature is enabled, then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08638", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetExclusiveScissorEnableNV in the current command buffer set any element of pExclusiveScissorEnables to VK_TRUE, then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetExclusiveScissorEnableNV in the current command buffer set any element of pExclusiveScissorEnables to VK_TRUE, then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-04876", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08639", - "text": " If a shader object is bound to any graphics stage, then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-04877", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08640", - "text": " If 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, then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-logicOp-04878", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08641", - "text": " If a shader object is bound to any graphics stage, and the logicOp feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the logicOp feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-primitiveFragmentShadingRateWithMultipleViewports-04552", - "text": " If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1" + "text": "If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-primitiveFragmentShadingRateWithMultipleViewports-08642", - "text": " If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and any shader object bound to a graphics stage writes to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1" + "text": "If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and any shader object bound to a graphics stage writes to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-blendEnable-04727", - "text": " If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the blendEnable member of the corresponding element of the pAttachments member of pColorBlendState must be VK_FALSE" + "text": "If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the blendEnable member of the corresponding element of the pAttachments member of pColorBlendState must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08643", - "text": " If 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, then for each color attachment in the render pass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the corresponding member of pColorBlendEnables in the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer that affected that attachment index must have been VK_FALSE" + "text": "If 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, then for each color attachment in the render pass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the corresponding member of pColorBlendEnables in the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer that affected that attachment index must have been VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-multisampledRenderToSingleSampled-07284", - "text": " If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments" + "text": "If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08644", - "text": " If 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 none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then the most recent call to vkCmdSetRasterizationSamplesEXT in the current command buffer must have set rasterizationSamples to be the same as the number of samples for the current render pass color and/or depth/stencil attachments" + "text": "If 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 none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then the most recent call to vkCmdSetRasterizationSamplesEXT in the current command buffer must have set rasterizationSamples to be the same as the number of samples for the current render pass color and/or depth/stencil attachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08876", - "text": " If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering" + "text": "If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-imageView-06172", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-imageView-06173", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-imageView-06174", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, this command must not write any values to the depth attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, this command must not write any values to the depth attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-imageView-06175", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-imageView-06176", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-imageView-06177", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-viewMask-06178", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::viewMask equal to VkRenderingInfo::viewMask" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::viewMask equal to VkRenderingInfo::viewMask", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-colorAttachmentCount-06179", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::colorAttachmentCount equal to VkRenderingInfo::colorAttachmentCount" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::colorAttachmentCount equal to VkRenderingInfo::colorAttachmentCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-dynamicRenderingUnusedAttachments-08910", - "text": " If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline" + "text": "If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-dynamicRenderingUnusedAttachments-08911", - "text": " If the dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats, if it exists, must be VK_FORMAT_UNDEFINED" + "text": "If the dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats, if it exists, must be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-dynamicRenderingUnusedAttachments-08912", - "text": " If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED" + "text": "If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED", + "page": "vkspec" + }, + { + "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 currently bound graphics pipeline", + "page": "vkspec" + }, + { + "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 currently bound graphics pipeline", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-09364", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled, then vkCmdSetColorBlendEnableEXT must have set the blend enable to VK_FALSE prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-09365", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-09368", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-09369", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07749", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08646", - "text": " If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the fragment stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-attachmentCount-07750", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the attachmentCount parameter of vkCmdSetColorWriteEnableEXT must be greater than or equal to the VkPipelineColorBlendStateCreateInfo::attachmentCount of the currently bound graphics pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the attachmentCount parameter of vkCmdSetColorWriteEnableEXT must be greater than or equal to the VkPipelineColorBlendStateCreateInfo::attachmentCount of the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08647", - "text": " If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the fragment stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the attachmentCount parameter of most recent call to vkCmdSetColorWriteEnableEXT in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance" + "text": "If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the attachmentCount parameter of most recent call to vkCmdSetColorWriteEnableEXT in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07751", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07880", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksEXT-rasterizerDiscardEnable-09236", + "text": "If the VK_EXT_discard_rectangles extension is 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, then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08648", - "text": " If the VK_EXT_discard_rectangles extension is 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, then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_discard_rectangles extension is 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, then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07881", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08649", - "text": " If the VK_EXT_discard_rectangles extension is 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 vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_discard_rectangles extension is 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 vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-dynamicRenderingUnusedAttachments-08913", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-dynamicRenderingUnusedAttachments-08914", - "text": " If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView" + "text": "If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-dynamicRenderingUnusedAttachments-08915", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-dynamicRenderingUnusedAttachments-08916", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-dynamicRenderingUnusedAttachments-08917", - "text": " If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView" + "text": "If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-dynamicRenderingUnusedAttachments-08918", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-imageView-06183", - "text": " If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentShadingRateAttachmentInfoKHR::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR" + "text": "If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentShadingRateAttachmentInfoKHR::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-imageView-06184", - "text": " If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT" + "text": "If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-colorAttachmentCount-06185", - "text": " If the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline" + "text": "If the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-pDepthAttachment-06186", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-pStencilAttachment-06187", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-multisampledRenderToSingleSampled-07285", - "text": " If the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of rasterizationSamples for the currently bound graphics pipeline" + "text": "If the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of rasterizationSamples for the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-multisampledRenderToSingleSampled-07286", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-multisampledRenderToSingleSampled-07287", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-pNext-07935", - "text": " If this command has been called inside a render pass instance started with vkCmdBeginRendering, and the pNext chain of VkRenderingInfo includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the value of rasterizationSamples for the currently bound graphics pipeline must be equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples" + "text": "If this command has been called inside a render pass instance started with vkCmdBeginRendering, and the pNext chain of VkRenderingInfo includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the value of rasterizationSamples for the currently bound graphics pipeline must be equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-renderPass-06198", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline must have been created with a VkGraphicsPipelineCreateInfo::renderPass equal to VK_NULL_HANDLE" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline must have been created with a VkGraphicsPipelineCreateInfo::renderPass equal to VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-pColorAttachments-08963", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the VkRenderingInfo::pColorAttachments->imageView was not VK_NULL_HANDLE, then the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the pipeline must not be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the VkRenderingInfo::pColorAttachments->imageView was not VK_NULL_HANDLE, then the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the pipeline must not be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-pDepthAttachment-08964", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-pStencilAttachment-08965", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, stencil test is enabled and the VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, stencil test is enabled and the VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-primitivesGeneratedQueryWithRasterizerDiscard-06708", - "text": " If the primitivesGeneratedQueryWithRasterizerDiscard feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, rasterization discard must not be enabled" + "text": "If the primitivesGeneratedQueryWithRasterizerDiscard feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, rasterization discard must not be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-primitivesGeneratedQueryWithNonZeroStreams-06709", - "text": " If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, the bound graphics pipeline must not have been created with a non-zero value in VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream" + "text": "If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, the bound graphics pipeline must not have been created with a non-zero value in VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07619", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07620", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-09237", + "text": "If a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08650", - "text": " If the depthClamp feature is 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, then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the depthClamp feature is 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, then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07621", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08651", - "text": " If 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, then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07622", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08652", - "text": " If 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, then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07623", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08653", - "text": " If 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, then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07624", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-alphaToCoverageEnable-08919", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and alphaToCoverageEnable was VK_TRUE in the last call to vkCmdSetAlphaToCoverageEnableEXT, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and alphaToCoverageEnable was VK_TRUE in the last call to vkCmdSetAlphaToCoverageEnableEXT, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08654", - "text": " If 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, then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-alphaToCoverageEnable-08920", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetAlphaToCoverageEnableEXT in the current command buffer set alphaToCoverageEnable to VK_TRUE, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetAlphaToCoverageEnableEXT in the current command buffer set alphaToCoverageEnable to VK_TRUE, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07625", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08655", - "text": " If the alphaToOne feature is 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, then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the alphaToOne feature is 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, then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07626", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08656", - "text": " If the logicOp feature is 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, then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the logicOp feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07627", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08657", - "text": " If 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, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07628", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08658", - "text": " If 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 vkCmdSetColorBlendEnableEXT for any attachment set that attachment’s value in pColorBlendEnables to VK_TRUE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetColorBlendEnableEXT for any attachment set that attachment’s value in pColorBlendEnables to VK_TRUE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07629", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08659", - "text": " If 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, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07630", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08660", - "text": " If the geometryStreams feature is enabled, and a shader object is bound to the geometry stage, then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the geometryStreams feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_GEOMETRY_BIT stage, then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07631", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08661", - "text": " If the VK_EXT_conservative_rasterization extension is 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, then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_conservative_rasterization extension is 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, then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07632", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08662", - "text": " If the VK_EXT_conservative_rasterization extension is 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 vkCmdSetConservativeRasterizationModeEXT in the current command buffer set conservativeRasterizationMode to VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_conservative_rasterization extension is 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 vkCmdSetConservativeRasterizationModeEXT in the current command buffer set conservativeRasterizationMode to VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07633", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08663", - "text": " If the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07634", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08664", - "text": " If the VK_EXT_sample_locations extension is 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, then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_sample_locations extension is 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, then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07635", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07636", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08665", - "text": " If the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the vertex stage, then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "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 in the current command buffer prior to this drawing command" + "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 in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08666", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08667", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08668", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "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 in the current command buffer prior to this drawing command" + "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 in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08669", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08670", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08671", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07849", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_EXT dynamic state enabled then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_EXT dynamic state enabled then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08672", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetLineStippleEnableEXT in the current command buffer set stippledLineEnable to VK_TRUE, then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetLineStippleEnableEXT in the current command buffer set stippledLineEnable to VK_TRUE, then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07639", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08673", - "text": " If the depthClipControl feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the depthClipControl feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07640", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08674", - "text": " If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07641", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08675", - "text": " If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07642", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08676", - "text": " If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07643", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08677", - "text": " If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetCoverageToColorEnableNV in the current command buffer set coverageToColorEnable to VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetCoverageToColorEnableNV in the current command buffer set coverageToColorEnable to VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07644", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08678", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_framebuffer_mixed_samples extension is 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, then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07645", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08679", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_framebuffer_mixed_samples extension is 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 vkCmdSetCoverageModulationModeNV in the current command buffer set coverageModulationMode to any value other than VK_COVERAGE_MODULATION_MODE_NONE_NV, then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07646", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08680", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetCoverageModulationTableEnableNV in the current command buffer set coverageModulationTableEnable to VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_framebuffer_mixed_samples extension is 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 vkCmdSetCoverageModulationTableEnableNV in the current command buffer set coverageModulationTableEnable to VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07647", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksEXT-pipelineFragmentShadingRate-09238", + "text": "If the pipelineFragmentShadingRate feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetFragmentShadingRateKHR must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08681", - "text": " If the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the shadingRateImage feature is 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, then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07648", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08682", - "text": " If the representativeFragmentTest feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the representativeFragmentTest feature is 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, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07649", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08683", - "text": " If the coverageReductionMode feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the coverageReductionMode feature is 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, then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-pColorBlendEnables-07470", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT state enabled and the last call to vkCmdSetColorBlendEnableEXT set pColorBlendEnables for any attachment to VK_TRUE, then for those attachments in the subpass the corresponding image view’s format features must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT state enabled and the last call to vkCmdSetColorBlendEnableEXT set pColorBlendEnables for any attachment to VK_TRUE, then for those attachments in the subpass the corresponding image view’s format features must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-rasterizationSamples-07471", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must follow the rules for a zero-attachment subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must follow the rules for a zero-attachment subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-samples-07472", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the VkPipelineMultisampleStateCreateInfo::rasterizationSamples parameter used to create the bound graphics pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the VkPipelineMultisampleStateCreateInfo::rasterizationSamples parameter used to create the bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-samples-07473", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the rasterizationSamples parameter in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the rasterizationSamples parameter in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { - "vuid": "VUID-vkCmdDrawMeshTasksEXT-multisampledRenderToSingleSampled-07475", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and none of the VK_AMD_mixed_attachment_samples extension, VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the current subpass color and/or depth/stencil attachments" + "vuid": "VUID-vkCmdDrawMeshTasksEXT-rasterizationSamples-07474", + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples extensions are enabled, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the current subpass color and/or depth/stencil attachments", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-09211", + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the rasterizationSamples member of that structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-firstAttachment-07476", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-firstAttachment-07477", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-firstAttachment-07478", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-firstAttachment-07479", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-advancedBlendMaxColorAttachments-07480", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT and VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic states enabled and the last calls to vkCmdSetColorBlendEnableEXT and vkCmdSetColorBlendAdvancedEXT have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed advancedBlendMaxColorAttachments" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT and VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic states enabled and the last calls to vkCmdSetColorBlendEnableEXT and vkCmdSetColorBlendAdvancedEXT have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed advancedBlendMaxColorAttachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-primitivesGeneratedQueryWithNonZeroStreams-07481", - "text": " If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, and the bound graphics pipeline was created with VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT state enabled, the last call to vkCmdSetRasterizationStreamEXT must have set the rasterizationStream to zero" + "text": "If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, and the bound graphics pipeline was created with VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT state enabled, the last call to vkCmdSetRasterizationStreamEXT must have set the rasterizationStream to zero", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-sampleLocationsPerPixel-07482", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-sampleLocationsPerPixel-07483", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples parameter of the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples parameter of the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-sampleLocationsEnable-07484", - "text": " If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set" + "text": "If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-sampleLocationsEnable-07485", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.width in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.width in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-sampleLocationsEnable-07486", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.height in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.height in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-sampleLocationsEnable-07487", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, the fragment shader code must not statically use the extended instruction InterpolateAtSample" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, the fragment shader code must not statically use the extended instruction InterpolateAtSample", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-sampleLocationsEnable-07936", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.width must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.width must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-sampleLocationsEnable-07937", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.height must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.height must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-sampleLocationsEnable-07938", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-coverageModulationTableEnable-07488", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-rasterizationSamples-07489", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment" + "text": "If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-coverageToColorEnable-07490", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-coverageReductionMode-07491", - "text": " If this VK_NV_coverage_reduction_mode extension is enabled, the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, the current coverage reduction mode coverageReductionMode, then the current rasterizationSamples, and the sample counts for the color and depth/stencil attachments (if the subpass has them) must be a valid combination returned by vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV" + "text": "If this VK_NV_coverage_reduction_mode extension is enabled, the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, the current coverage reduction mode coverageReductionMode, then the current rasterizationSamples, and the sample counts for the color and depth/stencil attachments (if the subpass has them) must be a valid combination returned by vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-viewportCount-07492", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-viewportCount-07493", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-rasterizationSamples-07494", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE" + "text": "If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-stippledLineEnable-07495", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-stippledLineEnable-07496", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-stippledLineEnable-07497", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-stippledLineEnable-07498", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-conservativePointAndLineRasterization-07499", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, conservativePointAndLineRasterization is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the conservativeRasterizationMode set by the last call to vkCmdSetConservativeRasterizationModeEXT must be VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, conservativePointAndLineRasterization is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the conservativeRasterizationMode set by the last call to vkCmdSetConservativeRasterizationModeEXT must be VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-stage-07073", - "text": " If the currently bound pipeline was created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT, then Mesh Shader Queries must not be active" + "text": "If the currently bound pipeline was created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT, then Mesh Shader Queries must not be active", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08877", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07850", - "text": " If dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command" + "text": "If dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08684", - "text": " If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_VERTEX_BIT" + "text": "If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_VERTEX_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08685", - "text": " If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT" + "text": "If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08686", - "text": " If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT" + "text": "If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08687", - "text": " If there is no bound graphics pipeline, and the geometryShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_GEOMETRY_BIT" + "text": "If there is no bound graphics pipeline, and the geometryShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_GEOMETRY_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08688", - "text": " If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_FRAGMENT_BIT" + "text": "If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_FRAGMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08689", - "text": " If there is no bound graphics pipeline, and the taskShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TASK_BIT_EXT" + "text": "If there is no bound graphics pipeline, and the taskShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TASK_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08690", - "text": " If there is no bound graphics pipeline, and the meshShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_MESH_BIT_EXT" + "text": "If there is no bound graphics pipeline, and the meshShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_MESH_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08693", - "text": " If there is no bound graphics pipeline, and at least one of the taskShader and meshShader features is enabled, one of the VK_SHADER_STAGE_VERTEX_BIT or VK_SHADER_STAGE_MESH_BIT_EXT stages must have a valid VkShaderEXT bound, and the other must have no VkShaderEXT bound" + "text": "If there is no bound graphics pipeline, and at least one of the taskShader and meshShader features is enabled, one of the VK_SHADER_STAGE_VERTEX_BIT or VK_SHADER_STAGE_MESH_BIT_EXT stages must have a valid VkShaderEXT bound, and the other must have no VkShaderEXT bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08694", - "text": " If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created without the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, a valid VkShaderEXT must be bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage" + "text": "If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created without the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, a valid VkShaderEXT must be bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08695", - "text": " If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created with the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, there must be no VkShaderEXT bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage" + "text": "If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created with the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, there must be no VkShaderEXT bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08696", - "text": " If there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage" + "text": "If there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08698", - "text": " If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound" + "text": "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08699", - "text": " If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound" + "text": "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08878", - "text": " All bound graphics shader objects must have been created with identical or identically defined push constant ranges" + "text": "All bound graphics shader objects must have been created with identical or identically defined push constant ranges", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08879", - "text": " All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts" + "text": "All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08880", - "text": " If there is no bound graphics pipeline and the attachmentFeedbackLoopDynamicState feature is enabled on the device, vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage and the attachmentFeedbackLoopDynamicState feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-pDynamicStates-08715", - "text": " If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable parameter in the last call to vkCmdSetDepthWriteEnable must be VK_FALSE" + "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable parameter in the last call to vkCmdSetDepthWriteEnable must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-pDynamicStates-08716", - "text": " If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_STENCIL_WRITE_MASK set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the writeMask parameter in the last call to vkCmdSetStencilWriteMask must be 0" + "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_STENCIL_WRITE_MASK set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the writeMask parameter in the last call to vkCmdSetStencilWriteMask must be 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-09116", - "text": " If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them" + "text": "If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksEXT-maxFragmentDualSrcAttachments-09239", + "text": "If blending is enabled for any attachment where either the source or destination blend factors for that attachment use the secondary color input, the maximum value of Location for any output attachment statically used in the Fragment Execution Model executed by this command must be less than maxFragmentDualSrcAttachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-stage-06480", - "text": " The bound graphics pipeline must not have been created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT" + "text": "The bound graphics pipeline must not have been created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07074", - "text": " Transform Feedback Queries must not be active" + "text": "Transform Feedback Queries must not be active", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07075", - "text": " Primitives Generated Queries must not be active" + "text": "Primitives Generated Queries must not be active", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-pipelineStatistics-07076", - "text": " The pipelineStatistics member used to create any active Pipeline Statistics Query must not contain VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT, VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT, or VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT" + "text": "The pipelineStatistics member used to create any active Pipeline Statistics Query must not contain VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT, VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT, or VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07322", - "text": " If the current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS contains a shader using the TaskEXT {ExecutionModel}, groupCountX must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskWorkGroupCount[0]" + "text": "If the current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS contains a shader using the TaskEXT Execution Model, groupCountX must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskWorkGroupCount[0]", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07323", - "text": " If the current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS contains a shader using the TaskEXT {ExecutionModel}, groupCountY must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskWorkGroupCount[1]" + "text": "If the current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS contains a shader using the TaskEXT Execution Model, groupCountY must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskWorkGroupCount[1]", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07324", - "text": " If the current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS contains a shader using the TaskEXT {ExecutionModel}, groupCountZ must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskWorkGroupCount[2]" + "text": "If the current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS contains a shader using the TaskEXT Execution Model, groupCountZ must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskWorkGroupCount[2]", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07325", - "text": " If the current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS contains a shader using the TaskEXT {ExecutionModel}, The product of groupCountX, groupCountY and groupCountZ must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskWorkGroupTotalCount" + "text": "If the current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS contains a shader using the TaskEXT Execution Model, The product of groupCountX, groupCountY and groupCountZ must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskWorkGroupTotalCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07326", - "text": " If the current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS does not contain a shader using the TaskEXT {ExecutionModel}, groupCountX must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupCount[0]" + "text": "If the current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS does not contain a shader using the TaskEXT Execution Model, groupCountX must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupCount[0]", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07327", - "text": " If the current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS does not contain a shader using the TaskEXT {ExecutionModel}, groupCountY must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupCount[1]" + "text": "If the current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS does not contain a shader using the TaskEXT Execution Model, groupCountY must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupCount[1]", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07328", - "text": " If the current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS does not contain a shader using the TaskEXT {ExecutionModel}, groupCountZ must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupCount[2]" + "text": "If the current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS does not contain a shader using the TaskEXT Execution Model, groupCountZ must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupCount[2]", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07329", - "text": " If the current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS does not contain a shader using the TaskEXT {ExecutionModel}, The product of groupCountX, groupCountY and groupCountZ must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupTotalCount" + "text": "If the current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS does not contain a shader using the TaskEXT Execution Model, The product of groupCountX, groupCountY and groupCountZ must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupTotalCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-MeshEXT-07087", - "text": " The current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS must contain a shader stage using the MeshEXT {ExecutionModel}" + "text": "The current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS must contain a shader stage using the MeshEXT Execution Model", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-renderpass", - "text": " This command must only be called inside of a render pass instance" + "text": "This command must only be called inside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -48674,1287 +63119,1738 @@ "core": [ { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-magFilter-04553", - "text": " If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + "text": "If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-mipmapMode-04770", - "text": " If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + "text": "If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-06479", - "text": " If a VkImageView is sampled with depth comparison, the image view’s format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT" + "text": "If a VkImageView is sampled with depth comparison, the image view’s format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-02691", - "text": " If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT" + "text": "If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07888", - "text": " If a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer’s format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT" + "text": "If a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer’s format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-02692", - "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" + "text": "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-02693", - "text": " If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" + "text": "If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-filterCubic-02694", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" + "text": "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-filterCubicMinmax-02695", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" + "text": "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-cubicRangeClamp-09212", + "text": "If the cubicRangeClamp feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command
\n
\n
must not have a VkSamplerReductionModeCreateInfo
\n
\n

reductionMode equal to\nVK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM

\n
\n
\n
", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-reductionMode-09213", + "text": "Any VkImageView being sampled with a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM as a result of this command must sample with VK_FILTER_CUBIC_EXT", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-selectableCubicWeights-09214", + "text": "If the selectableCubicWeights feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have VkSamplerCubicWeightsCreateInfoQCOM::cubicWeights equal to VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-flags-02696", - "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE" + "text": "Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-OpTypeImage-07027", - "text": " For any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT" + "text": "For any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-OpTypeImage-07028", - "text": " For any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT" + "text": "For any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-OpTypeImage-07029", - "text": " For any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT" + "text": "For any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-OpTypeImage-07030", - "text": " Any VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT" + "text": "Any VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08600", - "text": " For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08601", - "text": " For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-maintenance4-08602", - "text": " If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08114", - "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08115", - "text": " If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08116", - "text": " Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08604", - "text": " Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command" + "text": "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08117", - "text": " If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08119", - "text": " If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident" + "text": "If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08605", - "text": " If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident" + "text": "If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08606", - "text": " If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command" + "text": "If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08607", - "text": " If the shaderObject is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command" + "text": "If the shaderObject is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08608", - "text": " If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound" + "text": "If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08609", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08610", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08611", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-uniformBuffers-06935", - "text": " If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08612", - "text": " If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-storageBuffers-06936", - "text": " If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08613", - "text": " If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-02707", - "text": " If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource" + "text": "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-06550", - "text": " If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions" + "text": "If a bound shader accesses a VkSampler or VkImageView object that enables sampler Y′CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-ConstOffset-06551", - "text": " If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands" + "text": "If a bound shader accesses a VkSampler or VkImageView object that enables sampler Y′CBCR conversion, that object must not use the ConstOffset and Offset operands", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-viewType-07752", - "text": " If a VkImageView is accessed as a result of this command, then the image view’s viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation" + "text": "If a VkImageView is accessed as a result of this command, then the image view’s viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-format-07753", - "text": " If a VkImageView is accessed as a result of this command, then the numeric type of the image view’s format and the Sampled Type operand of the OpTypeImage must match" + "text": "If a VkImageView is accessed as a result of this command, then the numeric type of the image view’s format and the Sampled Type operand of the OpTypeImage must match", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageWrite-08795", - "text": " If a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format" + "text": "If a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageWrite-08796", - "text": " If a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components" + "text": "If a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageWrite-04469", - "text": " If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view’s format" + "text": "If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view’s format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-SampledType-04470", - "text": " If a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64" + "text": "If a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-SampledType-04471", - "text": " If a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32" + "text": "If a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-SampledType-04472", - "text": " If a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64" + "text": "If a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-SampledType-04473", - "text": " If a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32" + "text": "If a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-sparseImageInt64Atomics-04474", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command" + "text": "If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-sparseImageInt64Atomics-04475", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command" + "text": "If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageWeightedSampleQCOM-06971", - "text": " If OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageWeightedSampleQCOM-06972", - "text": " If OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageBoxFilterQCOM-06973", - "text": " If OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM" + "text": "If OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageBlockMatchSSDQCOM-06974", - "text": " If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM" + "text": "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageBlockMatchSADQCOM-06975", - "text": " If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM" + "text": "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageBlockMatchSADQCOM-06976", - "text": " If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation" + "text": "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageWeightedSampleQCOM-06977", - "text": " If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageWeightedSampleQCOM-06978", - "text": " If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM" + "text": "If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageBlockMatchWindow-09215", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageBlockMatchWindow-09216", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view’s format must be a single-component format.", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageBlockMatchWindow-09217", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07288", - "text": " Any shader invocation executed by this command must terminate" + "text": "Any shader invocation executed by this command must terminate", + "page": "vkspec" }, { "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" + "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", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-subpass-02685", - "text": " The subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS" + "text": "The subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07748", - "text": " If any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set" + "text": "If any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-OpTypeImage-07468", - "text": " If any shader executed by this pipeline accesses an OpTypeImage variable with a Dim operand of SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass" + "text": "If any shader executed by this pipeline accesses an OpTypeImage variable with a Dim operand of SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07469", - "text": " Input attachment views accessed in a subpass must be created with the same VkFormat as the corresponding subpass definition, and be created with a VkImageView that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound VkFramebuffer as specified by Fragment Input Attachment Compatibility" + "text": "Input attachment views accessed in a subpass must be created with the same VkFormat as the corresponding subpass definition, and be created with a VkImageView that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound VkFramebuffer as specified by Fragment Input Attachment Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-06537", - "text": " Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command" + "text": "Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command", + "page": "vkspec" }, { "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
" + "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
", + "page": "vkspec" }, { "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
" + "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
", + "page": "vkspec" }, { "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
" + "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-09003", - "text": " If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command" + "text": "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-06539", - "text": " If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment" + "text": "If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-06886", - "text": " If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled" + "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-06887", - "text": " If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back writeMask are not zero, and stencil test is enabled, all stencil ops must be VK_STENCIL_OP_KEEP" + "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back writeMask are not zero, and stencil test is enabled, all stencil ops must be VK_STENCIL_OP_KEEP", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07831", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07832", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07833", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08617", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08618", - "text": " If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08619", - "text": " If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07834", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08620", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07835", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08621", - "text": " If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07836", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled, and if the current depthBoundsTestEnable state is VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08622", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07837", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08623", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07838", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled then vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08624", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07839", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled then vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08625", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-maxMultiviewInstanceIndex-02688", - "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex" + "text": "If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsEnable-02689", - "text": " If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set" + "text": "If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-06666", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08626", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetSampleLocationsEnableEXT in the current command buffer set sampleLocationsEnable to VK_TRUE, vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetSampleLocationsEnableEXT in the current command buffer set sampleLocationsEnable to VK_TRUE, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsPerPixel-07934", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07840", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08627", - "text": " If a shader object is bound to any graphics stage, vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07841", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08628", - "text": " If a shader object is bound to any graphics stage, vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07843", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08629", - "text": " If a shader object is bound to any graphics stage, vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07844", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08630", - "text": " If a shader object is bound to any graphics stage, vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07845", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08631", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthTestEnable in the current command buffer set depthTestEnable to VK_TRUE, vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetDepthTestEnable in the current command buffer set depthTestEnable to VK_TRUE, then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07846", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled then vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled then vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08632", - "text": " If a shader object is bound to any graphics stage, and the depthBounds feature is enabled, the vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the depthBounds feature is enabled, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07847", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08633", - "text": " If 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, then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07848", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08634", - "text": " If 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 vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-viewportCount-03417", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-scissorCount-03418", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the scissorCount parameter of vkCmdSetScissorWithCount must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the scissorCount parameter of vkCmdSetScissorWithCount must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-viewportCount-03419", - "text": " If the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount" + "text": "If the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08635", - "text": " If a shader object is bound to any graphics stage, then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount" + "text": "If a shader object is bound to any graphics stage, then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-viewportCount-04137", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-viewportCount-04138", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-09232", + "text": "If a shader object is bound to any graphics stage, and the VK_NV_clip_space_w_scaling extension is enabled on the device, then vkCmdSetViewportWScalingNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08636", - "text": " If a shader object is bound to any graphics stage, and the VK_NV_clip_space_w_scaling extension is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If a shader object is bound to any graphics stage, and the VK_NV_clip_space_w_scaling extension is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-viewportCount-04139", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-viewportCount-04140", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-shadingRateImage-09233", + "text": "If the shadingRateImage feature is enabled, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoarseSampleOrderNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-shadingRateImage-09234", + "text": "If a shader object is bound to any graphics stage, and the shadingRateImage feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetShadingRateImageEnableNV in the current command buffer set shadingRateImageEnable to VK_TRUE, then vkCmdSetViewportShadingRatePaletteNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08637", - "text": " If a shader object is bound to any graphics stage, and the shadingRateImage feature is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If a shader object is bound to any graphics stage, and the shadingRateImage feature is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-VkPipelineVieportCreateInfo-04141", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportSwizzleStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportSwizzleStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-VkPipelineVieportCreateInfo-04142", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportExclusiveScissorStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportExclusiveScissorStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07878", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07879", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-exclusiveScissor-09235", + "text": "If a shader object is bound to any graphics stage, and the exclusiveScissor feature is enabled, then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08638", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetExclusiveScissorEnableNV in the current command buffer set any element of pExclusiveScissorEnables to VK_TRUE, then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetExclusiveScissorEnableNV in the current command buffer set any element of pExclusiveScissorEnables to VK_TRUE, then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-04876", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08639", - "text": " If a shader object is bound to any graphics stage, then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-04877", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08640", - "text": " If 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, then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-logicOp-04878", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08641", - "text": " If a shader object is bound to any graphics stage, and the logicOp feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the logicOp feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-primitiveFragmentShadingRateWithMultipleViewports-04552", - "text": " If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1" + "text": "If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-primitiveFragmentShadingRateWithMultipleViewports-08642", - "text": " If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and any shader object bound to a graphics stage writes to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1" + "text": "If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and any shader object bound to a graphics stage writes to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-blendEnable-04727", - "text": " If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the blendEnable member of the corresponding element of the pAttachments member of pColorBlendState must be VK_FALSE" + "text": "If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the blendEnable member of the corresponding element of the pAttachments member of pColorBlendState must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08643", - "text": " If 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, then for each color attachment in the render pass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the corresponding member of pColorBlendEnables in the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer that affected that attachment index must have been VK_FALSE" + "text": "If 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, then for each color attachment in the render pass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the corresponding member of pColorBlendEnables in the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer that affected that attachment index must have been VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-multisampledRenderToSingleSampled-07284", - "text": " If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments" + "text": "If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08644", - "text": " If 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 none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then the most recent call to vkCmdSetRasterizationSamplesEXT in the current command buffer must have set rasterizationSamples to be the same as the number of samples for the current render pass color and/or depth/stencil attachments" + "text": "If 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 none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then the most recent call to vkCmdSetRasterizationSamplesEXT in the current command buffer must have set rasterizationSamples to be the same as the number of samples for the current render pass color and/or depth/stencil attachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08876", - "text": " If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering" + "text": "If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-imageView-06172", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-imageView-06173", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-imageView-06174", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, this command must not write any values to the depth attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, this command must not write any values to the depth attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-imageView-06175", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-imageView-06176", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-imageView-06177", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-viewMask-06178", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::viewMask equal to VkRenderingInfo::viewMask" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::viewMask equal to VkRenderingInfo::viewMask", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-colorAttachmentCount-06179", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::colorAttachmentCount equal to VkRenderingInfo::colorAttachmentCount" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::colorAttachmentCount equal to VkRenderingInfo::colorAttachmentCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-dynamicRenderingUnusedAttachments-08910", - "text": " If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline" + "text": "If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-dynamicRenderingUnusedAttachments-08911", - "text": " If the dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats, if it exists, must be VK_FORMAT_UNDEFINED" + "text": "If the dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats, if it exists, must be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-dynamicRenderingUnusedAttachments-08912", - "text": " If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED" + "text": "If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED", + "page": "vkspec" + }, + { + "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 currently bound graphics pipeline", + "page": "vkspec" + }, + { + "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 currently bound graphics pipeline", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-09364", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled, then vkCmdSetColorBlendEnableEXT must have set the blend enable to VK_FALSE prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-09365", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-09368", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-09369", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07749", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08646", - "text": " If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the fragment stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-attachmentCount-07750", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the attachmentCount parameter of vkCmdSetColorWriteEnableEXT must be greater than or equal to the VkPipelineColorBlendStateCreateInfo::attachmentCount of the currently bound graphics pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the attachmentCount parameter of vkCmdSetColorWriteEnableEXT must be greater than or equal to the VkPipelineColorBlendStateCreateInfo::attachmentCount of the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08647", - "text": " If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the fragment stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the attachmentCount parameter of most recent call to vkCmdSetColorWriteEnableEXT in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance" + "text": "If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the attachmentCount parameter of most recent call to vkCmdSetColorWriteEnableEXT in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07751", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07880", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-rasterizerDiscardEnable-09236", + "text": "If the VK_EXT_discard_rectangles extension is 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, then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08648", - "text": " If the VK_EXT_discard_rectangles extension is 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, then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_discard_rectangles extension is 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, then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07881", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08649", - "text": " If the VK_EXT_discard_rectangles extension is 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 vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_discard_rectangles extension is 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 vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-dynamicRenderingUnusedAttachments-08913", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-dynamicRenderingUnusedAttachments-08914", - "text": " If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView" + "text": "If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-dynamicRenderingUnusedAttachments-08915", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-dynamicRenderingUnusedAttachments-08916", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-dynamicRenderingUnusedAttachments-08917", - "text": " If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView" + "text": "If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-dynamicRenderingUnusedAttachments-08918", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-imageView-06183", - "text": " If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentShadingRateAttachmentInfoKHR::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR" + "text": "If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentShadingRateAttachmentInfoKHR::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-imageView-06184", - "text": " If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT" + "text": "If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-colorAttachmentCount-06185", - "text": " If the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline" + "text": "If the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-pDepthAttachment-06186", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-pStencilAttachment-06187", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-multisampledRenderToSingleSampled-07285", - "text": " If the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of rasterizationSamples for the currently bound graphics pipeline" + "text": "If the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of rasterizationSamples for the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-multisampledRenderToSingleSampled-07286", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-multisampledRenderToSingleSampled-07287", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-pNext-07935", - "text": " If this command has been called inside a render pass instance started with vkCmdBeginRendering, and the pNext chain of VkRenderingInfo includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the value of rasterizationSamples for the currently bound graphics pipeline must be equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples" + "text": "If this command has been called inside a render pass instance started with vkCmdBeginRendering, and the pNext chain of VkRenderingInfo includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the value of rasterizationSamples for the currently bound graphics pipeline must be equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-renderPass-06198", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline must have been created with a VkGraphicsPipelineCreateInfo::renderPass equal to VK_NULL_HANDLE" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline must have been created with a VkGraphicsPipelineCreateInfo::renderPass equal to VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-pColorAttachments-08963", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the VkRenderingInfo::pColorAttachments->imageView was not VK_NULL_HANDLE, then the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the pipeline must not be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the VkRenderingInfo::pColorAttachments->imageView was not VK_NULL_HANDLE, then the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the pipeline must not be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-pDepthAttachment-08964", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-pStencilAttachment-08965", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, stencil test is enabled and the VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, stencil test is enabled and the VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-primitivesGeneratedQueryWithRasterizerDiscard-06708", - "text": " If the primitivesGeneratedQueryWithRasterizerDiscard feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, rasterization discard must not be enabled" + "text": "If the primitivesGeneratedQueryWithRasterizerDiscard feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, rasterization discard must not be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-primitivesGeneratedQueryWithNonZeroStreams-06709", - "text": " If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, the bound graphics pipeline must not have been created with a non-zero value in VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream" + "text": "If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, the bound graphics pipeline must not have been created with a non-zero value in VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07619", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07620", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-09237", + "text": "If a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08650", - "text": " If the depthClamp feature is 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, then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the depthClamp feature is 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, then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07621", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08651", - "text": " If 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, then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07622", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08652", - "text": " If 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, then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07623", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08653", - "text": " If 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, then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07624", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-alphaToCoverageEnable-08919", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and alphaToCoverageEnable was VK_TRUE in the last call to vkCmdSetAlphaToCoverageEnableEXT, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and alphaToCoverageEnable was VK_TRUE in the last call to vkCmdSetAlphaToCoverageEnableEXT, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08654", - "text": " If 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, then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-alphaToCoverageEnable-08920", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetAlphaToCoverageEnableEXT in the current command buffer set alphaToCoverageEnable to VK_TRUE, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetAlphaToCoverageEnableEXT in the current command buffer set alphaToCoverageEnable to VK_TRUE, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07625", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08655", - "text": " If the alphaToOne feature is 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, then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the alphaToOne feature is 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, then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07626", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08656", - "text": " If the logicOp feature is 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, then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the logicOp feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07627", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08657", - "text": " If 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, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07628", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08658", - "text": " If 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 vkCmdSetColorBlendEnableEXT for any attachment set that attachment’s value in pColorBlendEnables to VK_TRUE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetColorBlendEnableEXT for any attachment set that attachment’s value in pColorBlendEnables to VK_TRUE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07629", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08659", - "text": " If 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, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07630", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08660", - "text": " If the geometryStreams feature is enabled, and a shader object is bound to the geometry stage, then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the geometryStreams feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_GEOMETRY_BIT stage, then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07631", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08661", - "text": " If the VK_EXT_conservative_rasterization extension is 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, then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_conservative_rasterization extension is 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, then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07632", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08662", - "text": " If the VK_EXT_conservative_rasterization extension is 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 vkCmdSetConservativeRasterizationModeEXT in the current command buffer set conservativeRasterizationMode to VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_conservative_rasterization extension is 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 vkCmdSetConservativeRasterizationModeEXT in the current command buffer set conservativeRasterizationMode to VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07633", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08663", - "text": " If the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07634", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08664", - "text": " If the VK_EXT_sample_locations extension is 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, then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_sample_locations extension is 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, then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07635", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07636", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08665", - "text": " If the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the vertex stage, then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "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 in the current command buffer prior to this drawing command" + "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 in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08666", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08667", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08668", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "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 in the current command buffer prior to this drawing command" + "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 in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08669", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08670", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08671", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07849", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_EXT dynamic state enabled then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_EXT dynamic state enabled then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08672", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetLineStippleEnableEXT in the current command buffer set stippledLineEnable to VK_TRUE, then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetLineStippleEnableEXT in the current command buffer set stippledLineEnable to VK_TRUE, then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07639", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08673", - "text": " If the depthClipControl feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the depthClipControl feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07640", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08674", - "text": " If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07641", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08675", - "text": " If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07642", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08676", - "text": " If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07643", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08677", - "text": " If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetCoverageToColorEnableNV in the current command buffer set coverageToColorEnable to VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetCoverageToColorEnableNV in the current command buffer set coverageToColorEnable to VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07644", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08678", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_framebuffer_mixed_samples extension is 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, then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07645", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08679", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_framebuffer_mixed_samples extension is 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 vkCmdSetCoverageModulationModeNV in the current command buffer set coverageModulationMode to any value other than VK_COVERAGE_MODULATION_MODE_NONE_NV, then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07646", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08680", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetCoverageModulationTableEnableNV in the current command buffer set coverageModulationTableEnable to VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_framebuffer_mixed_samples extension is 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 vkCmdSetCoverageModulationTableEnableNV in the current command buffer set coverageModulationTableEnable to VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07647", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-pipelineFragmentShadingRate-09238", + "text": "If the pipelineFragmentShadingRate feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetFragmentShadingRateKHR must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08681", - "text": " If the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the shadingRateImage feature is 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, then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07648", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08682", - "text": " If the representativeFragmentTest feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the representativeFragmentTest feature is 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, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07649", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08683", - "text": " If the coverageReductionMode feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the coverageReductionMode feature is 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, then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-pColorBlendEnables-07470", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT state enabled and the last call to vkCmdSetColorBlendEnableEXT set pColorBlendEnables for any attachment to VK_TRUE, then for those attachments in the subpass the corresponding image view’s format features must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT state enabled and the last call to vkCmdSetColorBlendEnableEXT set pColorBlendEnables for any attachment to VK_TRUE, then for those attachments in the subpass the corresponding image view’s format features must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-rasterizationSamples-07471", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must follow the rules for a zero-attachment subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must follow the rules for a zero-attachment subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-samples-07472", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the VkPipelineMultisampleStateCreateInfo::rasterizationSamples parameter used to create the bound graphics pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the VkPipelineMultisampleStateCreateInfo::rasterizationSamples parameter used to create the bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-samples-07473", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the rasterizationSamples parameter in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the rasterizationSamples parameter in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-multisampledRenderToSingleSampled-07475", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and none of the VK_AMD_mixed_attachment_samples extension, VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the current subpass color and/or depth/stencil attachments" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-rasterizationSamples-07474", + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples extensions are enabled, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the current subpass color and/or depth/stencil attachments", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-09211", + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the rasterizationSamples member of that structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-firstAttachment-07476", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-firstAttachment-07477", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-firstAttachment-07478", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-firstAttachment-07479", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-advancedBlendMaxColorAttachments-07480", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT and VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic states enabled and the last calls to vkCmdSetColorBlendEnableEXT and vkCmdSetColorBlendAdvancedEXT have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed advancedBlendMaxColorAttachments" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT and VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic states enabled and the last calls to vkCmdSetColorBlendEnableEXT and vkCmdSetColorBlendAdvancedEXT have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed advancedBlendMaxColorAttachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-primitivesGeneratedQueryWithNonZeroStreams-07481", - "text": " If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, and the bound graphics pipeline was created with VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT state enabled, the last call to vkCmdSetRasterizationStreamEXT must have set the rasterizationStream to zero" + "text": "If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, and the bound graphics pipeline was created with VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT state enabled, the last call to vkCmdSetRasterizationStreamEXT must have set the rasterizationStream to zero", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsPerPixel-07482", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsPerPixel-07483", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples parameter of the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples parameter of the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsEnable-07484", - "text": " If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set" + "text": "If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsEnable-07485", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.width in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.width in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsEnable-07486", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.height in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.height in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsEnable-07487", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, the fragment shader code must not statically use the extended instruction InterpolateAtSample" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, the fragment shader code must not statically use the extended instruction InterpolateAtSample", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsEnable-07936", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.width must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.width must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsEnable-07937", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.height must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.height must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsEnable-07938", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-coverageModulationTableEnable-07488", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-rasterizationSamples-07489", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment" + "text": "If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-coverageToColorEnable-07490", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-coverageReductionMode-07491", - "text": " If this VK_NV_coverage_reduction_mode extension is enabled, the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, the current coverage reduction mode coverageReductionMode, then the current rasterizationSamples, and the sample counts for the color and depth/stencil attachments (if the subpass has them) must be a valid combination returned by vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV" + "text": "If this VK_NV_coverage_reduction_mode extension is enabled, the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, the current coverage reduction mode coverageReductionMode, then the current rasterizationSamples, and the sample counts for the color and depth/stencil attachments (if the subpass has them) must be a valid combination returned by vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-viewportCount-07492", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-viewportCount-07493", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-rasterizationSamples-07494", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE" + "text": "If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-stippledLineEnable-07495", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-stippledLineEnable-07496", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-stippledLineEnable-07497", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-stippledLineEnable-07498", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-conservativePointAndLineRasterization-07499", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, conservativePointAndLineRasterization is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the conservativeRasterizationMode set by the last call to vkCmdSetConservativeRasterizationModeEXT must be VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, conservativePointAndLineRasterization is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the conservativeRasterizationMode set by the last call to vkCmdSetConservativeRasterizationModeEXT must be VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-stage-07073", - "text": " If the currently bound pipeline was created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT, then Mesh Shader Queries must not be active" + "text": "If the currently bound pipeline was created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT, then Mesh Shader Queries must not be active", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08877", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07850", - "text": " If dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command" + "text": "If dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08684", - "text": " If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_VERTEX_BIT" + "text": "If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_VERTEX_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08685", - "text": " If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT" + "text": "If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08686", - "text": " If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT" + "text": "If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08687", - "text": " If there is no bound graphics pipeline, and the geometryShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_GEOMETRY_BIT" + "text": "If there is no bound graphics pipeline, and the geometryShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_GEOMETRY_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08688", - "text": " If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_FRAGMENT_BIT" + "text": "If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_FRAGMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08689", - "text": " If there is no bound graphics pipeline, and the taskShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TASK_BIT_EXT" + "text": "If there is no bound graphics pipeline, and the taskShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TASK_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08690", - "text": " If there is no bound graphics pipeline, and the meshShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_MESH_BIT_EXT" + "text": "If there is no bound graphics pipeline, and the meshShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_MESH_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08693", - "text": " If there is no bound graphics pipeline, and at least one of the taskShader and meshShader features is enabled, one of the VK_SHADER_STAGE_VERTEX_BIT or VK_SHADER_STAGE_MESH_BIT_EXT stages must have a valid VkShaderEXT bound, and the other must have no VkShaderEXT bound" + "text": "If there is no bound graphics pipeline, and at least one of the taskShader and meshShader features is enabled, one of the VK_SHADER_STAGE_VERTEX_BIT or VK_SHADER_STAGE_MESH_BIT_EXT stages must have a valid VkShaderEXT bound, and the other must have no VkShaderEXT bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08694", - "text": " If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created without the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, a valid VkShaderEXT must be bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage" + "text": "If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created without the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, a valid VkShaderEXT must be bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08695", - "text": " If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created with the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, there must be no VkShaderEXT bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage" + "text": "If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created with the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, there must be no VkShaderEXT bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08696", - "text": " If there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage" + "text": "If there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08698", - "text": " If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound" + "text": "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08699", - "text": " If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound" + "text": "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08878", - "text": " All bound graphics shader objects must have been created with identical or identically defined push constant ranges" + "text": "All bound graphics shader objects must have been created with identical or identically defined push constant ranges", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08879", - "text": " All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts" + "text": "All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08880", - "text": " If there is no bound graphics pipeline and the attachmentFeedbackLoopDynamicState feature is enabled on the device, vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage and the attachmentFeedbackLoopDynamicState feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-pDynamicStates-08715", - "text": " If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable parameter in the last call to vkCmdSetDepthWriteEnable must be VK_FALSE" + "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable parameter in the last call to vkCmdSetDepthWriteEnable must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-pDynamicStates-08716", - "text": " If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_STENCIL_WRITE_MASK set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the writeMask parameter in the last call to vkCmdSetStencilWriteMask must be 0" + "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_STENCIL_WRITE_MASK set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the writeMask parameter in the last call to vkCmdSetStencilWriteMask must be 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-09116", - "text": " If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them" + "text": "If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-maxFragmentDualSrcAttachments-09239", + "text": "If blending is enabled for any attachment where either the source or destination blend factors for that attachment use the secondary color input, the maximum value of Location for any output attachment statically used in the Fragment Execution Model executed by this command must be less than maxFragmentDualSrcAttachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-stage-06480", - "text": " The bound graphics pipeline must not have been created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT" + "text": "The bound graphics pipeline must not have been created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07074", - "text": " Transform Feedback Queries must not be active" + "text": "Transform Feedback Queries must not be active", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07075", - "text": " Primitives Generated Queries must not be active" + "text": "Primitives Generated Queries must not be active", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-pipelineStatistics-07076", - "text": " The pipelineStatistics member used to create any active Pipeline Statistics Query must not contain VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT, VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT, or VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT" + "text": "The pipelineStatistics member used to create any active Pipeline Statistics Query must not contain VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT, VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT, or VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-buffer-02708", - "text": " If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-buffer-02709", - "text": " buffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set" + "text": "buffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-offset-02710", - "text": " offset must be a multiple of 4" + "text": "offset must be a multiple of 4", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-02711", - "text": " commandBuffer must not be a protected command buffer" + "text": "commandBuffer must not be a protected command buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-drawCount-02718", - "text": " If the multiDrawIndirect feature is not enabled, drawCount must be 0 or 1" + "text": "If the multiDrawIndirect feature is not enabled, drawCount must be 0 or 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-drawCount-02719", - "text": " drawCount must be less than or equal to VkPhysicalDeviceLimits::maxDrawIndirectCount" + "text": "drawCount must be less than or equal to VkPhysicalDeviceLimits::maxDrawIndirectCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-drawCount-07088", - "text": " If drawCount is greater than 1, stride must be a multiple of 4 and must be greater than or equal to sizeof(VkDrawMeshTasksIndirectCommandEXT)" + "text": "If drawCount is greater than 1, stride must be a multiple of 4 and must be greater than or equal to sizeof(VkDrawMeshTasksIndirectCommandEXT)", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-drawCount-07089", - "text": " If drawCount is equal to 1, (offset + sizeof(VkDrawMeshTasksIndirectCommandEXT)) must be less than or equal to the size of buffer" + "text": "If drawCount is equal to 1, (offset + sizeof(VkDrawMeshTasksIndirectCommandEXT)) must be less than or equal to the size of buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-drawCount-07090", - "text": " If drawCount is greater than 1, (stride {times} (drawCount - 1) + offset + sizeof(VkDrawMeshTasksIndirectCommandEXT)) must be less than or equal to the size of buffer" + "text": "If drawCount is greater than 1, (stride × (drawCount - 1) + offset + sizeof(VkDrawMeshTasksIndirectCommandEXT)) must be less than or equal to the size of buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-MeshEXT-07091", - "text": " The current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS must contain a shader stage using the MeshEXT {ExecutionModel}" + "text": "The current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS must contain a shader stage using the MeshEXT Execution Model", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-buffer-parameter", - "text": " buffer must be a valid VkBuffer handle" + "text": "buffer must be a valid VkBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-renderpass", - "text": " This command must only be called inside of a render pass instance" + "text": "This command must only be called inside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-commonparent", - "text": " Both of buffer, and commandBuffer must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of buffer, and commandBuffer must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -49962,35 +64858,43 @@ "core": [ { "vuid": "VUID-VkDrawMeshTasksIndirectCommandEXT-TaskEXT-07322", - "text": " If the current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS contains a shader using the TaskEXT {ExecutionModel}, groupCountX must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskWorkGroupCount[0]" + "text": "If the current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS contains a shader using the TaskEXT Execution Model, groupCountX must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskWorkGroupCount[0]", + "page": "vkspec" }, { "vuid": "VUID-VkDrawMeshTasksIndirectCommandEXT-TaskEXT-07323", - "text": " If the current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS contains a shader using the TaskEXT {ExecutionModel}, groupCountY must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskWorkGroupCount[1]" + "text": "If the current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS contains a shader using the TaskEXT Execution Model, groupCountY must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskWorkGroupCount[1]", + "page": "vkspec" }, { "vuid": "VUID-VkDrawMeshTasksIndirectCommandEXT-TaskEXT-07324", - "text": " If the current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS contains a shader using the TaskEXT {ExecutionModel}, groupCountZ must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskWorkGroupCount[2]" + "text": "If the current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS contains a shader using the TaskEXT Execution Model, groupCountZ must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskWorkGroupCount[2]", + "page": "vkspec" }, { "vuid": "VUID-VkDrawMeshTasksIndirectCommandEXT-TaskEXT-07325", - "text": " If the current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS contains a shader using the TaskEXT {ExecutionModel}, The product of groupCountX, groupCountY and groupCountZ must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskWorkGroupTotalCount" + "text": "If the current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS contains a shader using the TaskEXT Execution Model, The product of groupCountX, groupCountY and groupCountZ must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskWorkGroupTotalCount", + "page": "vkspec" }, { "vuid": "VUID-VkDrawMeshTasksIndirectCommandEXT-TaskEXT-07326", - "text": " If the current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS does not contain a shader using the TaskEXT {ExecutionModel}, groupCountX must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupCount[0]" + "text": "If the current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS does not contain a shader using the TaskEXT Execution Model, groupCountX must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupCount[0]", + "page": "vkspec" }, { "vuid": "VUID-VkDrawMeshTasksIndirectCommandEXT-TaskEXT-07327", - "text": " If the current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS does not contain a shader using the TaskEXT {ExecutionModel}, groupCountY must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupCount[1]" + "text": "If the current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS does not contain a shader using the TaskEXT Execution Model, groupCountY must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupCount[1]", + "page": "vkspec" }, { "vuid": "VUID-VkDrawMeshTasksIndirectCommandEXT-TaskEXT-07328", - "text": " If the current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS does not contain a shader using the TaskEXT {ExecutionModel}, groupCountZ must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupCount[2]" + "text": "If the current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS does not contain a shader using the TaskEXT Execution Model, groupCountZ must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupCount[2]", + "page": "vkspec" }, { "vuid": "VUID-VkDrawMeshTasksIndirectCommandEXT-TaskEXT-07329", - "text": " If the current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS does not contain a shader using the TaskEXT {ExecutionModel}, The product of groupCountX, groupCountY and groupCountZ must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupTotalCount" + "text": "If the current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS does not contain a shader using the TaskEXT Execution Model, The product of groupCountX, groupCountY and groupCountZ must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupTotalCount", + "page": "vkspec" } ] }, @@ -49998,1311 +64902,1768 @@ "core": [ { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-magFilter-04553", - "text": " If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + "text": "If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-mipmapMode-04770", - "text": " If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + "text": "If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06479", - "text": " If a VkImageView is sampled with depth comparison, the image view’s format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT" + "text": "If a VkImageView is sampled with depth comparison, the image view’s format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02691", - "text": " If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT" + "text": "If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07888", - "text": " If a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer’s format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT" + "text": "If a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer’s format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02692", - "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" + "text": "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02693", - "text": " If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" + "text": "If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-filterCubic-02694", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" + "text": "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-filterCubicMinmax-02695", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" + "text": "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-cubicRangeClamp-09212", + "text": "If the cubicRangeClamp feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command
\n
\n
must not have a VkSamplerReductionModeCreateInfo
\n
\n

reductionMode equal to\nVK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM

\n
\n
\n
", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-reductionMode-09213", + "text": "Any VkImageView being sampled with a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM as a result of this command must sample with VK_FILTER_CUBIC_EXT", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-selectableCubicWeights-09214", + "text": "If the selectableCubicWeights feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have VkSamplerCubicWeightsCreateInfoQCOM::cubicWeights equal to VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-flags-02696", - "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE" + "text": "Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpTypeImage-07027", - "text": " For any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT" + "text": "For any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpTypeImage-07028", - "text": " For any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT" + "text": "For any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpTypeImage-07029", - "text": " For any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT" + "text": "For any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpTypeImage-07030", - "text": " Any VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT" + "text": "Any VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08600", - "text": " For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08601", - "text": " For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-maintenance4-08602", - "text": " If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08114", - "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08115", - "text": " If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08116", - "text": " Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08604", - "text": " Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command" + "text": "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08117", - "text": " If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08119", - "text": " If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident" + "text": "If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08605", - "text": " If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident" + "text": "If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08606", - "text": " If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command" + "text": "If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08607", - "text": " If the shaderObject is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command" + "text": "If the shaderObject is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08608", - "text": " If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound" + "text": "If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08609", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08610", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08611", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-uniformBuffers-06935", - "text": " If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08612", - "text": " If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-storageBuffers-06936", - "text": " If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08613", - "text": " If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-commandBuffer-02707", - "text": " If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource" + "text": "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06550", - "text": " If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions" + "text": "If a bound shader accesses a VkSampler or VkImageView object that enables sampler Y′CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-ConstOffset-06551", - "text": " If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands" + "text": "If a bound shader accesses a VkSampler or VkImageView object that enables sampler Y′CBCR conversion, that object must not use the ConstOffset and Offset operands", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-viewType-07752", - "text": " If a VkImageView is accessed as a result of this command, then the image view’s viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation" + "text": "If a VkImageView is accessed as a result of this command, then the image view’s viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-format-07753", - "text": " If a VkImageView is accessed as a result of this command, then the numeric type of the image view’s format and the Sampled Type operand of the OpTypeImage must match" + "text": "If a VkImageView is accessed as a result of this command, then the numeric type of the image view’s format and the Sampled Type operand of the OpTypeImage must match", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageWrite-08795", - "text": " If a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format" + "text": "If a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageWrite-08796", - "text": " If a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components" + "text": "If a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageWrite-04469", - "text": " If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view’s format" + "text": "If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view’s format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-SampledType-04470", - "text": " If a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64" + "text": "If a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-SampledType-04471", - "text": " If a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32" + "text": "If a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-SampledType-04472", - "text": " If a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64" + "text": "If a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-SampledType-04473", - "text": " If a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32" + "text": "If a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-sparseImageInt64Atomics-04474", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command" + "text": "If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-sparseImageInt64Atomics-04475", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command" + "text": "If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageWeightedSampleQCOM-06971", - "text": " If OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageWeightedSampleQCOM-06972", - "text": " If OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageBoxFilterQCOM-06973", - "text": " If OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM" + "text": "If OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageBlockMatchSSDQCOM-06974", - "text": " If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM" + "text": "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageBlockMatchSADQCOM-06975", - "text": " If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM" + "text": "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageBlockMatchSADQCOM-06976", - "text": " If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation" + "text": "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageWeightedSampleQCOM-06977", - "text": " If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageWeightedSampleQCOM-06978", - "text": " If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM" + "text": "If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageBlockMatchWindow-09215", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageBlockMatchWindow-09216", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view’s format must be a single-component format.", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageBlockMatchWindow-09217", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07288", - "text": " Any shader invocation executed by this command must terminate" + "text": "Any shader invocation executed by this command must terminate", + "page": "vkspec" }, { "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" + "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", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-subpass-02685", - "text": " The subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS" + "text": "The subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07748", - "text": " If any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set" + "text": "If any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpTypeImage-07468", - "text": " If any shader executed by this pipeline accesses an OpTypeImage variable with a Dim operand of SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass" + "text": "If any shader executed by this pipeline accesses an OpTypeImage variable with a Dim operand of SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07469", - "text": " Input attachment views accessed in a subpass must be created with the same VkFormat as the corresponding subpass definition, and be created with a VkImageView that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound VkFramebuffer as specified by Fragment Input Attachment Compatibility" + "text": "Input attachment views accessed in a subpass must be created with the same VkFormat as the corresponding subpass definition, and be created with a VkImageView that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound VkFramebuffer as specified by Fragment Input Attachment Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06537", - "text": " Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command" + "text": "Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command", + "page": "vkspec" }, { "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
" + "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
", + "page": "vkspec" }, { "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
" + "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
", + "page": "vkspec" }, { "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
" + "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09003", - "text": " If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command" + "text": "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06539", - "text": " If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment" + "text": "If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06886", - "text": " If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled" + "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06887", - "text": " If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back writeMask are not zero, and stencil test is enabled, all stencil ops must be VK_STENCIL_OP_KEEP" + "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back writeMask are not zero, and stencil test is enabled, all stencil ops must be VK_STENCIL_OP_KEEP", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07831", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07832", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07833", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08617", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08618", - "text": " If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08619", - "text": " If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07834", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08620", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07835", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08621", - "text": " If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07836", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled, and if the current depthBoundsTestEnable state is VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08622", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07837", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08623", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07838", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled then vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08624", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07839", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled then vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08625", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-maxMultiviewInstanceIndex-02688", - "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex" + "text": "If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsEnable-02689", - "text": " If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set" + "text": "If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06666", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08626", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetSampleLocationsEnableEXT in the current command buffer set sampleLocationsEnable to VK_TRUE, vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetSampleLocationsEnableEXT in the current command buffer set sampleLocationsEnable to VK_TRUE, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsPerPixel-07934", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07840", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08627", - "text": " If a shader object is bound to any graphics stage, vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07841", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08628", - "text": " If a shader object is bound to any graphics stage, vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07843", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08629", - "text": " If a shader object is bound to any graphics stage, vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07844", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08630", - "text": " If a shader object is bound to any graphics stage, vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07845", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08631", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthTestEnable in the current command buffer set depthTestEnable to VK_TRUE, vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetDepthTestEnable in the current command buffer set depthTestEnable to VK_TRUE, then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07846", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled then vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled then vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08632", - "text": " If a shader object is bound to any graphics stage, and the depthBounds feature is enabled, the vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the depthBounds feature is enabled, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07847", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08633", - "text": " If 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, then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07848", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08634", - "text": " If 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 vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-viewportCount-03417", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-scissorCount-03418", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the scissorCount parameter of vkCmdSetScissorWithCount must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the scissorCount parameter of vkCmdSetScissorWithCount must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-viewportCount-03419", - "text": " If the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount" + "text": "If the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08635", - "text": " If a shader object is bound to any graphics stage, then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount" + "text": "If a shader object is bound to any graphics stage, then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-viewportCount-04137", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-viewportCount-04138", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09232", + "text": "If a shader object is bound to any graphics stage, and the VK_NV_clip_space_w_scaling extension is enabled on the device, then vkCmdSetViewportWScalingNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08636", - "text": " If a shader object is bound to any graphics stage, and the VK_NV_clip_space_w_scaling extension is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If a shader object is bound to any graphics stage, and the VK_NV_clip_space_w_scaling extension is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-viewportCount-04139", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-viewportCount-04140", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-shadingRateImage-09233", + "text": "If the shadingRateImage feature is enabled, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoarseSampleOrderNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-shadingRateImage-09234", + "text": "If a shader object is bound to any graphics stage, and the shadingRateImage feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetShadingRateImageEnableNV in the current command buffer set shadingRateImageEnable to VK_TRUE, then vkCmdSetViewportShadingRatePaletteNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08637", - "text": " If a shader object is bound to any graphics stage, and the shadingRateImage feature is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If a shader object is bound to any graphics stage, and the shadingRateImage feature is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-VkPipelineVieportCreateInfo-04141", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportSwizzleStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportSwizzleStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-VkPipelineVieportCreateInfo-04142", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportExclusiveScissorStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportExclusiveScissorStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07878", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07879", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-exclusiveScissor-09235", + "text": "If a shader object is bound to any graphics stage, and the exclusiveScissor feature is enabled, then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08638", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetExclusiveScissorEnableNV in the current command buffer set any element of pExclusiveScissorEnables to VK_TRUE, then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetExclusiveScissorEnableNV in the current command buffer set any element of pExclusiveScissorEnables to VK_TRUE, then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-04876", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08639", - "text": " If a shader object is bound to any graphics stage, then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-04877", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08640", - "text": " If 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, then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-logicOp-04878", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08641", - "text": " If a shader object is bound to any graphics stage, and the logicOp feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the logicOp feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-primitiveFragmentShadingRateWithMultipleViewports-04552", - "text": " If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1" + "text": "If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-primitiveFragmentShadingRateWithMultipleViewports-08642", - "text": " If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and any shader object bound to a graphics stage writes to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1" + "text": "If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and any shader object bound to a graphics stage writes to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-blendEnable-04727", - "text": " If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the blendEnable member of the corresponding element of the pAttachments member of pColorBlendState must be VK_FALSE" + "text": "If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the blendEnable member of the corresponding element of the pAttachments member of pColorBlendState must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08643", - "text": " If 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, then for each color attachment in the render pass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the corresponding member of pColorBlendEnables in the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer that affected that attachment index must have been VK_FALSE" + "text": "If 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, then for each color attachment in the render pass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the corresponding member of pColorBlendEnables in the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer that affected that attachment index must have been VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-multisampledRenderToSingleSampled-07284", - "text": " If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments" + "text": "If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08644", - "text": " If 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 none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then the most recent call to vkCmdSetRasterizationSamplesEXT in the current command buffer must have set rasterizationSamples to be the same as the number of samples for the current render pass color and/or depth/stencil attachments" + "text": "If 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 none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then the most recent call to vkCmdSetRasterizationSamplesEXT in the current command buffer must have set rasterizationSamples to be the same as the number of samples for the current render pass color and/or depth/stencil attachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08876", - "text": " If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering" + "text": "If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-imageView-06172", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-imageView-06173", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-imageView-06174", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, this command must not write any values to the depth attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, this command must not write any values to the depth attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-imageView-06175", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-imageView-06176", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-imageView-06177", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-viewMask-06178", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::viewMask equal to VkRenderingInfo::viewMask" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::viewMask equal to VkRenderingInfo::viewMask", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-colorAttachmentCount-06179", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::colorAttachmentCount equal to VkRenderingInfo::colorAttachmentCount" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::colorAttachmentCount equal to VkRenderingInfo::colorAttachmentCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-dynamicRenderingUnusedAttachments-08910", - "text": " If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline" + "text": "If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-dynamicRenderingUnusedAttachments-08911", - "text": " If the dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats, if it exists, must be VK_FORMAT_UNDEFINED" + "text": "If the dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats, if it exists, must be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-dynamicRenderingUnusedAttachments-08912", - "text": " If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED" + "text": "If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED", + "page": "vkspec" + }, + { + "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 currently bound graphics pipeline", + "page": "vkspec" + }, + { + "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 currently bound graphics pipeline", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09364", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled, then vkCmdSetColorBlendEnableEXT must have set the blend enable to VK_FALSE prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09365", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09368", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09369", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07749", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08646", - "text": " If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the fragment stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-attachmentCount-07750", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the attachmentCount parameter of vkCmdSetColorWriteEnableEXT must be greater than or equal to the VkPipelineColorBlendStateCreateInfo::attachmentCount of the currently bound graphics pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the attachmentCount parameter of vkCmdSetColorWriteEnableEXT must be greater than or equal to the VkPipelineColorBlendStateCreateInfo::attachmentCount of the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08647", - "text": " If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the fragment stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the attachmentCount parameter of most recent call to vkCmdSetColorWriteEnableEXT in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance" + "text": "If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the attachmentCount parameter of most recent call to vkCmdSetColorWriteEnableEXT in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07751", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07880", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-rasterizerDiscardEnable-09236", + "text": "If the VK_EXT_discard_rectangles extension is 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, then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08648", - "text": " If the VK_EXT_discard_rectangles extension is 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, then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_discard_rectangles extension is 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, then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07881", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08649", - "text": " If the VK_EXT_discard_rectangles extension is 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 vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_discard_rectangles extension is 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 vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-dynamicRenderingUnusedAttachments-08913", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-dynamicRenderingUnusedAttachments-08914", - "text": " If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView" + "text": "If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-dynamicRenderingUnusedAttachments-08915", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-dynamicRenderingUnusedAttachments-08916", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-dynamicRenderingUnusedAttachments-08917", - "text": " If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView" + "text": "If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-dynamicRenderingUnusedAttachments-08918", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-imageView-06183", - "text": " If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentShadingRateAttachmentInfoKHR::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR" + "text": "If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentShadingRateAttachmentInfoKHR::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-imageView-06184", - "text": " If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT" + "text": "If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-colorAttachmentCount-06185", - "text": " If the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline" + "text": "If the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-pDepthAttachment-06186", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-pStencilAttachment-06187", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-multisampledRenderToSingleSampled-07285", - "text": " If the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of rasterizationSamples for the currently bound graphics pipeline" + "text": "If the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of rasterizationSamples for the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-multisampledRenderToSingleSampled-07286", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-multisampledRenderToSingleSampled-07287", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-pNext-07935", - "text": " If this command has been called inside a render pass instance started with vkCmdBeginRendering, and the pNext chain of VkRenderingInfo includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the value of rasterizationSamples for the currently bound graphics pipeline must be equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples" + "text": "If this command has been called inside a render pass instance started with vkCmdBeginRendering, and the pNext chain of VkRenderingInfo includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the value of rasterizationSamples for the currently bound graphics pipeline must be equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-renderPass-06198", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline must have been created with a VkGraphicsPipelineCreateInfo::renderPass equal to VK_NULL_HANDLE" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline must have been created with a VkGraphicsPipelineCreateInfo::renderPass equal to VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-pColorAttachments-08963", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the VkRenderingInfo::pColorAttachments->imageView was not VK_NULL_HANDLE, then the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the pipeline must not be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the VkRenderingInfo::pColorAttachments->imageView was not VK_NULL_HANDLE, then the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the pipeline must not be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-pDepthAttachment-08964", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-pStencilAttachment-08965", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, stencil test is enabled and the VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, stencil test is enabled and the VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-primitivesGeneratedQueryWithRasterizerDiscard-06708", - "text": " If the primitivesGeneratedQueryWithRasterizerDiscard feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, rasterization discard must not be enabled" + "text": "If the primitivesGeneratedQueryWithRasterizerDiscard feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, rasterization discard must not be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-primitivesGeneratedQueryWithNonZeroStreams-06709", - "text": " If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, the bound graphics pipeline must not have been created with a non-zero value in VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream" + "text": "If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, the bound graphics pipeline must not have been created with a non-zero value in VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07619", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07620", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09237", + "text": "If a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08650", - "text": " If the depthClamp feature is 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, then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the depthClamp feature is 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, then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07621", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08651", - "text": " If 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, then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07622", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08652", - "text": " If 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, then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07623", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08653", - "text": " If 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, then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07624", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-alphaToCoverageEnable-08919", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and alphaToCoverageEnable was VK_TRUE in the last call to vkCmdSetAlphaToCoverageEnableEXT, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and alphaToCoverageEnable was VK_TRUE in the last call to vkCmdSetAlphaToCoverageEnableEXT, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08654", - "text": " If 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, then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-alphaToCoverageEnable-08920", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetAlphaToCoverageEnableEXT in the current command buffer set alphaToCoverageEnable to VK_TRUE, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetAlphaToCoverageEnableEXT in the current command buffer set alphaToCoverageEnable to VK_TRUE, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07625", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08655", - "text": " If the alphaToOne feature is 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, then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the alphaToOne feature is 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, then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07626", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08656", - "text": " If the logicOp feature is 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, then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the logicOp feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07627", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08657", - "text": " If 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, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07628", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08658", - "text": " If 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 vkCmdSetColorBlendEnableEXT for any attachment set that attachment’s value in pColorBlendEnables to VK_TRUE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetColorBlendEnableEXT for any attachment set that attachment’s value in pColorBlendEnables to VK_TRUE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07629", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08659", - "text": " If 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, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07630", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08660", - "text": " If the geometryStreams feature is enabled, and a shader object is bound to the geometry stage, then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the geometryStreams feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_GEOMETRY_BIT stage, then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07631", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08661", - "text": " If the VK_EXT_conservative_rasterization extension is 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, then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_conservative_rasterization extension is 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, then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07632", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08662", - "text": " If the VK_EXT_conservative_rasterization extension is 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 vkCmdSetConservativeRasterizationModeEXT in the current command buffer set conservativeRasterizationMode to VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_conservative_rasterization extension is 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 vkCmdSetConservativeRasterizationModeEXT in the current command buffer set conservativeRasterizationMode to VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07633", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08663", - "text": " If the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07634", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08664", - "text": " If the VK_EXT_sample_locations extension is 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, then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_sample_locations extension is 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, then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07635", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07636", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08665", - "text": " If the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the vertex stage, then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "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 in the current command buffer prior to this drawing command" + "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 in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08666", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08667", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08668", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "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 in the current command buffer prior to this drawing command" + "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 in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08669", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08670", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08671", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07849", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_EXT dynamic state enabled then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_EXT dynamic state enabled then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08672", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetLineStippleEnableEXT in the current command buffer set stippledLineEnable to VK_TRUE, then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetLineStippleEnableEXT in the current command buffer set stippledLineEnable to VK_TRUE, then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07639", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08673", - "text": " If the depthClipControl feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the depthClipControl feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07640", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08674", - "text": " If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07641", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08675", - "text": " If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07642", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08676", - "text": " If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07643", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08677", - "text": " If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetCoverageToColorEnableNV in the current command buffer set coverageToColorEnable to VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetCoverageToColorEnableNV in the current command buffer set coverageToColorEnable to VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07644", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08678", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_framebuffer_mixed_samples extension is 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, then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07645", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08679", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_framebuffer_mixed_samples extension is 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 vkCmdSetCoverageModulationModeNV in the current command buffer set coverageModulationMode to any value other than VK_COVERAGE_MODULATION_MODE_NONE_NV, then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07646", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08680", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetCoverageModulationTableEnableNV in the current command buffer set coverageModulationTableEnable to VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_framebuffer_mixed_samples extension is 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 vkCmdSetCoverageModulationTableEnableNV in the current command buffer set coverageModulationTableEnable to VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07647", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-pipelineFragmentShadingRate-09238", + "text": "If the pipelineFragmentShadingRate feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetFragmentShadingRateKHR must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08681", - "text": " If the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the shadingRateImage feature is 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, then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07648", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08682", - "text": " If the representativeFragmentTest feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the representativeFragmentTest feature is 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, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07649", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08683", - "text": " If the coverageReductionMode feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the coverageReductionMode feature is 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, then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-pColorBlendEnables-07470", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT state enabled and the last call to vkCmdSetColorBlendEnableEXT set pColorBlendEnables for any attachment to VK_TRUE, then for those attachments in the subpass the corresponding image view’s format features must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT state enabled and the last call to vkCmdSetColorBlendEnableEXT set pColorBlendEnables for any attachment to VK_TRUE, then for those attachments in the subpass the corresponding image view’s format features must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-rasterizationSamples-07471", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must follow the rules for a zero-attachment subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must follow the rules for a zero-attachment subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-samples-07472", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the VkPipelineMultisampleStateCreateInfo::rasterizationSamples parameter used to create the bound graphics pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the VkPipelineMultisampleStateCreateInfo::rasterizationSamples parameter used to create the bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-samples-07473", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the rasterizationSamples parameter in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the rasterizationSamples parameter in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-multisampledRenderToSingleSampled-07475", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and none of the VK_AMD_mixed_attachment_samples extension, VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the current subpass color and/or depth/stencil attachments" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-rasterizationSamples-07474", + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples extensions are enabled, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the current subpass color and/or depth/stencil attachments", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09211", + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the rasterizationSamples member of that structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-firstAttachment-07476", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-firstAttachment-07477", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-firstAttachment-07478", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-firstAttachment-07479", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-advancedBlendMaxColorAttachments-07480", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT and VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic states enabled and the last calls to vkCmdSetColorBlendEnableEXT and vkCmdSetColorBlendAdvancedEXT have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed advancedBlendMaxColorAttachments" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT and VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic states enabled and the last calls to vkCmdSetColorBlendEnableEXT and vkCmdSetColorBlendAdvancedEXT have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed advancedBlendMaxColorAttachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-primitivesGeneratedQueryWithNonZeroStreams-07481", - "text": " If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, and the bound graphics pipeline was created with VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT state enabled, the last call to vkCmdSetRasterizationStreamEXT must have set the rasterizationStream to zero" + "text": "If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, and the bound graphics pipeline was created with VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT state enabled, the last call to vkCmdSetRasterizationStreamEXT must have set the rasterizationStream to zero", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsPerPixel-07482", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsPerPixel-07483", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples parameter of the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples parameter of the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsEnable-07484", - "text": " If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set" + "text": "If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsEnable-07485", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.width in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.width in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsEnable-07486", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.height in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.height in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsEnable-07487", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, the fragment shader code must not statically use the extended instruction InterpolateAtSample" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, the fragment shader code must not statically use the extended instruction InterpolateAtSample", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsEnable-07936", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.width must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.width must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsEnable-07937", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.height must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.height must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsEnable-07938", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-coverageModulationTableEnable-07488", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-rasterizationSamples-07489", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment" + "text": "If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-coverageToColorEnable-07490", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-coverageReductionMode-07491", - "text": " If this VK_NV_coverage_reduction_mode extension is enabled, the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, the current coverage reduction mode coverageReductionMode, then the current rasterizationSamples, and the sample counts for the color and depth/stencil attachments (if the subpass has them) must be a valid combination returned by vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV" + "text": "If this VK_NV_coverage_reduction_mode extension is enabled, the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, the current coverage reduction mode coverageReductionMode, then the current rasterizationSamples, and the sample counts for the color and depth/stencil attachments (if the subpass has them) must be a valid combination returned by vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-viewportCount-07492", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-viewportCount-07493", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-rasterizationSamples-07494", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE" + "text": "If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-stippledLineEnable-07495", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-stippledLineEnable-07496", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-stippledLineEnable-07497", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-stippledLineEnable-07498", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-conservativePointAndLineRasterization-07499", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, conservativePointAndLineRasterization is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the conservativeRasterizationMode set by the last call to vkCmdSetConservativeRasterizationModeEXT must be VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, conservativePointAndLineRasterization is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the conservativeRasterizationMode set by the last call to vkCmdSetConservativeRasterizationModeEXT must be VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-stage-07073", - "text": " If the currently bound pipeline was created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT, then Mesh Shader Queries must not be active" + "text": "If the currently bound pipeline was created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT, then Mesh Shader Queries must not be active", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08877", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07850", - "text": " If dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command" + "text": "If dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08684", - "text": " If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_VERTEX_BIT" + "text": "If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_VERTEX_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08685", - "text": " If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT" + "text": "If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08686", - "text": " If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT" + "text": "If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08687", - "text": " If there is no bound graphics pipeline, and the geometryShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_GEOMETRY_BIT" + "text": "If there is no bound graphics pipeline, and the geometryShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_GEOMETRY_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08688", - "text": " If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_FRAGMENT_BIT" + "text": "If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_FRAGMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08689", - "text": " If there is no bound graphics pipeline, and the taskShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TASK_BIT_EXT" + "text": "If there is no bound graphics pipeline, and the taskShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TASK_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08690", - "text": " If there is no bound graphics pipeline, and the meshShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_MESH_BIT_EXT" + "text": "If there is no bound graphics pipeline, and the meshShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_MESH_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08693", - "text": " If there is no bound graphics pipeline, and at least one of the taskShader and meshShader features is enabled, one of the VK_SHADER_STAGE_VERTEX_BIT or VK_SHADER_STAGE_MESH_BIT_EXT stages must have a valid VkShaderEXT bound, and the other must have no VkShaderEXT bound" + "text": "If there is no bound graphics pipeline, and at least one of the taskShader and meshShader features is enabled, one of the VK_SHADER_STAGE_VERTEX_BIT or VK_SHADER_STAGE_MESH_BIT_EXT stages must have a valid VkShaderEXT bound, and the other must have no VkShaderEXT bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08694", - "text": " If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created without the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, a valid VkShaderEXT must be bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage" + "text": "If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created without the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, a valid VkShaderEXT must be bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08695", - "text": " If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created with the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, there must be no VkShaderEXT bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage" + "text": "If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created with the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, there must be no VkShaderEXT bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08696", - "text": " If there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage" + "text": "If there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08698", - "text": " If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound" + "text": "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08699", - "text": " If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound" + "text": "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08878", - "text": " All bound graphics shader objects must have been created with identical or identically defined push constant ranges" + "text": "All bound graphics shader objects must have been created with identical or identically defined push constant ranges", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08879", - "text": " All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts" + "text": "All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08880", - "text": " If there is no bound graphics pipeline and the attachmentFeedbackLoopDynamicState feature is enabled on the device, vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage and the attachmentFeedbackLoopDynamicState feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-pDynamicStates-08715", - "text": " If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable parameter in the last call to vkCmdSetDepthWriteEnable must be VK_FALSE" + "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable parameter in the last call to vkCmdSetDepthWriteEnable must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-pDynamicStates-08716", - "text": " If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_STENCIL_WRITE_MASK set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the writeMask parameter in the last call to vkCmdSetStencilWriteMask must be 0" + "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_STENCIL_WRITE_MASK set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the writeMask parameter in the last call to vkCmdSetStencilWriteMask must be 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09116", - "text": " If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them" + "text": "If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-maxFragmentDualSrcAttachments-09239", + "text": "If blending is enabled for any attachment where either the source or destination blend factors for that attachment use the secondary color input, the maximum value of Location for any output attachment statically used in the Fragment Execution Model executed by this command must be less than maxFragmentDualSrcAttachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-stage-06480", - "text": " The bound graphics pipeline must not have been created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT" + "text": "The bound graphics pipeline must not have been created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07074", - "text": " Transform Feedback Queries must not be active" + "text": "Transform Feedback Queries must not be active", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07075", - "text": " Primitives Generated Queries must not be active" + "text": "Primitives Generated Queries must not be active", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-pipelineStatistics-07076", - "text": " The pipelineStatistics member used to create any active Pipeline Statistics Query must not contain VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT, VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT, or VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT" + "text": "The pipelineStatistics member used to create any active Pipeline Statistics Query must not contain VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT, VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT, or VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-buffer-02708", - "text": " If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-buffer-02709", - "text": " buffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set" + "text": "buffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-offset-02710", - "text": " offset must be a multiple of 4" + "text": "offset must be a multiple of 4", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-commandBuffer-02711", - "text": " commandBuffer must not be a protected command buffer" + "text": "commandBuffer must not be a protected command buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBuffer-02714", - "text": " If countBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If countBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBuffer-02715", - "text": " countBuffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set" + "text": "countBuffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBufferOffset-02716", - "text": " countBufferOffset must be a multiple of 4" + "text": "countBufferOffset must be a multiple of 4", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBuffer-02717", - "text": " The count stored in countBuffer must be less than or equal to VkPhysicalDeviceLimits::maxDrawIndirectCount" + "text": "The count stored in countBuffer must be less than or equal to VkPhysicalDeviceLimits::maxDrawIndirectCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBufferOffset-04129", - "text": " (countBufferOffset + sizeof(uint32_t)) must be less than or equal to the size of countBuffer" + "text": "(countBufferOffset + sizeof(uint32_t)) must be less than or equal to the size of countBuffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-04445", - "text": " If drawIndirectCount is not enabled this function must not be used" + "text": "If drawIndirectCount is not enabled this function must not be used", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-stride-07096", - "text": " stride must be a multiple of 4 and must be greater than or equal to sizeof(VkDrawMeshTasksIndirectCommandEXT)" + "text": "stride must be a multiple of 4 and must be greater than or equal to sizeof(VkDrawMeshTasksIndirectCommandEXT)", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-maxDrawCount-07097", - "text": " If maxDrawCount is greater than or equal to 1, (stride {times} (maxDrawCount - 1) + offset + sizeof(VkDrawMeshTasksIndirectCommandEXT)) must be less than or equal to the size of buffer" + "text": "If maxDrawCount is greater than or equal to 1, (stride × (maxDrawCount - 1) + offset + sizeof(VkDrawMeshTasksIndirectCommandEXT)) must be less than or equal to the size of buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBuffer-07098", - "text": " If the count stored in countBuffer is equal to 1, (offset + sizeof(VkDrawMeshTasksIndirectCommandEXT)) must be less than or equal to the size of buffer" + "text": "If the count stored in countBuffer is equal to 1, (offset + sizeof(VkDrawMeshTasksIndirectCommandEXT)) must be less than or equal to the size of buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBuffer-07099", - "text": " If the count stored in countBuffer is greater than 1, (stride {times} (drawCount - 1) + offset + sizeof(VkDrawMeshTasksIndirectCommandEXT)) must be less than or equal to the size of buffer" + "text": "If the count stored in countBuffer is greater than 1, (stride × (drawCount - 1) + offset + sizeof(VkDrawMeshTasksIndirectCommandEXT)) must be less than or equal to the size of buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-MeshEXT-07100", - "text": " The current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS must contain a shader stage using the MeshEXT {ExecutionModel}" + "text": "The current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS must contain a shader stage using the MeshEXT Execution Model", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-buffer-parameter", - "text": " buffer must be a valid VkBuffer handle" + "text": "buffer must be a valid VkBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBuffer-parameter", - "text": " countBuffer must be a valid VkBuffer handle" + "text": "countBuffer must be a valid VkBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-renderpass", - "text": " This command must only be called inside of a render pass instance" + "text": "This command must only be called inside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-commonparent", - "text": " Each of buffer, commandBuffer, and countBuffer must have been created, allocated, or retrieved from the same VkDevice" + "text": "Each of buffer, commandBuffer, and countBuffer must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -51310,1259 +66671,1703 @@ "core": [ { "vuid": "VUID-vkCmdDrawClusterHUAWEI-magFilter-04553", - "text": " If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + "text": "If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-mipmapMode-04770", - "text": " If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + "text": "If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-06479", - "text": " If a VkImageView is sampled with depth comparison, the image view’s format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT" + "text": "If a VkImageView is sampled with depth comparison, the image view’s format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-02691", - "text": " If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT" + "text": "If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07888", - "text": " If a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer’s format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT" + "text": "If a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer’s format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-02692", - "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" + "text": "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-02693", - "text": " If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" + "text": "If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-filterCubic-02694", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" + "text": "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-filterCubicMinmax-02695", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" + "text": "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawClusterHUAWEI-cubicRangeClamp-09212", + "text": "If the cubicRangeClamp feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command
\n
\n
must not have a VkSamplerReductionModeCreateInfo
\n
\n

reductionMode equal to\nVK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM

\n
\n
\n
", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawClusterHUAWEI-reductionMode-09213", + "text": "Any VkImageView being sampled with a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM as a result of this command must sample with VK_FILTER_CUBIC_EXT", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawClusterHUAWEI-selectableCubicWeights-09214", + "text": "If the selectableCubicWeights feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have VkSamplerCubicWeightsCreateInfoQCOM::cubicWeights equal to VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-flags-02696", - "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE" + "text": "Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-OpTypeImage-07027", - "text": " For any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT" + "text": "For any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-OpTypeImage-07028", - "text": " For any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT" + "text": "For any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-OpTypeImage-07029", - "text": " For any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT" + "text": "For any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-OpTypeImage-07030", - "text": " Any VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT" + "text": "Any VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08600", - "text": " For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08601", - "text": " For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-maintenance4-08602", - "text": " If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08114", - "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08115", - "text": " If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08116", - "text": " Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08604", - "text": " Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command" + "text": "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08117", - "text": " If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08119", - "text": " If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident" + "text": "If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08605", - "text": " If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident" + "text": "If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08606", - "text": " If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command" + "text": "If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08607", - "text": " If the shaderObject is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command" + "text": "If the shaderObject is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08608", - "text": " If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound" + "text": "If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08609", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08610", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08611", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-uniformBuffers-06935", - "text": " If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08612", - "text": " If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-storageBuffers-06936", - "text": " If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08613", - "text": " If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-commandBuffer-02707", - "text": " If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource" + "text": "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-06550", - "text": " If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions" + "text": "If a bound shader accesses a VkSampler or VkImageView object that enables sampler Y′CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-ConstOffset-06551", - "text": " If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands" + "text": "If a bound shader accesses a VkSampler or VkImageView object that enables sampler Y′CBCR conversion, that object must not use the ConstOffset and Offset operands", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-viewType-07752", - "text": " If a VkImageView is accessed as a result of this command, then the image view’s viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation" + "text": "If a VkImageView is accessed as a result of this command, then the image view’s viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-format-07753", - "text": " If a VkImageView is accessed as a result of this command, then the numeric type of the image view’s format and the Sampled Type operand of the OpTypeImage must match" + "text": "If a VkImageView is accessed as a result of this command, then the numeric type of the image view’s format and the Sampled Type operand of the OpTypeImage must match", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-OpImageWrite-08795", - "text": " If a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format" + "text": "If a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-OpImageWrite-08796", - "text": " If a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components" + "text": "If a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-OpImageWrite-04469", - "text": " If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view’s format" + "text": "If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view’s format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-SampledType-04470", - "text": " If a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64" + "text": "If a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-SampledType-04471", - "text": " If a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32" + "text": "If a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-SampledType-04472", - "text": " If a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64" + "text": "If a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-SampledType-04473", - "text": " If a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32" + "text": "If a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-sparseImageInt64Atomics-04474", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command" + "text": "If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-sparseImageInt64Atomics-04475", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command" + "text": "If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-OpImageWeightedSampleQCOM-06971", - "text": " If OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-OpImageWeightedSampleQCOM-06972", - "text": " If OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-OpImageBoxFilterQCOM-06973", - "text": " If OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM" + "text": "If OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-OpImageBlockMatchSSDQCOM-06974", - "text": " If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM" + "text": "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-OpImageBlockMatchSADQCOM-06975", - "text": " If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM" + "text": "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-OpImageBlockMatchSADQCOM-06976", - "text": " If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation" + "text": "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-OpImageWeightedSampleQCOM-06977", - "text": " If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-OpImageWeightedSampleQCOM-06978", - "text": " If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM" + "text": "If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawClusterHUAWEI-OpImageBlockMatchWindow-09215", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawClusterHUAWEI-OpImageBlockMatchWindow-09216", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view’s format must be a single-component format.", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawClusterHUAWEI-OpImageBlockMatchWindow-09217", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07288", - "text": " Any shader invocation executed by this command must terminate" + "text": "Any shader invocation executed by this command must terminate", + "page": "vkspec" }, { "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" + "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", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-subpass-02685", - "text": " The subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS" + "text": "The subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07748", - "text": " If any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set" + "text": "If any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-OpTypeImage-07468", - "text": " If any shader executed by this pipeline accesses an OpTypeImage variable with a Dim operand of SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass" + "text": "If any shader executed by this pipeline accesses an OpTypeImage variable with a Dim operand of SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07469", - "text": " Input attachment views accessed in a subpass must be created with the same VkFormat as the corresponding subpass definition, and be created with a VkImageView that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound VkFramebuffer as specified by Fragment Input Attachment Compatibility" + "text": "Input attachment views accessed in a subpass must be created with the same VkFormat as the corresponding subpass definition, and be created with a VkImageView that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound VkFramebuffer as specified by Fragment Input Attachment Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-06537", - "text": " Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command" + "text": "Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command", + "page": "vkspec" }, { "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
" + "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
", + "page": "vkspec" }, { "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
" + "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
", + "page": "vkspec" }, { "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
" + "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-09003", - "text": " If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command" + "text": "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-06539", - "text": " If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment" + "text": "If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-06886", - "text": " If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled" + "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-06887", - "text": " If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back writeMask are not zero, and stencil test is enabled, all stencil ops must be VK_STENCIL_OP_KEEP" + "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back writeMask are not zero, and stencil test is enabled, all stencil ops must be VK_STENCIL_OP_KEEP", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07831", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07832", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07833", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08617", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08618", - "text": " If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08619", - "text": " If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07834", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08620", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07835", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08621", - "text": " If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07836", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled, and if the current depthBoundsTestEnable state is VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08622", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07837", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08623", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07838", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled then vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08624", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07839", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled then vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08625", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-maxMultiviewInstanceIndex-02688", - "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex" + "text": "If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-sampleLocationsEnable-02689", - "text": " If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set" + "text": "If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-06666", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08626", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetSampleLocationsEnableEXT in the current command buffer set sampleLocationsEnable to VK_TRUE, vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetSampleLocationsEnableEXT in the current command buffer set sampleLocationsEnable to VK_TRUE, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-sampleLocationsPerPixel-07934", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07840", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08627", - "text": " If a shader object is bound to any graphics stage, vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07841", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08628", - "text": " If a shader object is bound to any graphics stage, vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07843", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08629", - "text": " If a shader object is bound to any graphics stage, vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07844", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08630", - "text": " If a shader object is bound to any graphics stage, vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07845", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08631", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthTestEnable in the current command buffer set depthTestEnable to VK_TRUE, vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetDepthTestEnable in the current command buffer set depthTestEnable to VK_TRUE, then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07846", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled then vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled then vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08632", - "text": " If a shader object is bound to any graphics stage, and the depthBounds feature is enabled, the vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the depthBounds feature is enabled, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07847", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08633", - "text": " If 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, then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07848", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08634", - "text": " If 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 vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-viewportCount-03417", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-scissorCount-03418", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the scissorCount parameter of vkCmdSetScissorWithCount must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the scissorCount parameter of vkCmdSetScissorWithCount must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-viewportCount-03419", - "text": " If the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount" + "text": "If the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08635", - "text": " If a shader object is bound to any graphics stage, then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount" + "text": "If a shader object is bound to any graphics stage, then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-viewportCount-04137", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-viewportCount-04138", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-09232", + "text": "If a shader object is bound to any graphics stage, and the VK_NV_clip_space_w_scaling extension is enabled on the device, then vkCmdSetViewportWScalingNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08636", - "text": " If a shader object is bound to any graphics stage, and the VK_NV_clip_space_w_scaling extension is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If a shader object is bound to any graphics stage, and the VK_NV_clip_space_w_scaling extension is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-viewportCount-04139", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-viewportCount-04140", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawClusterHUAWEI-shadingRateImage-09233", + "text": "If the shadingRateImage feature is enabled, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoarseSampleOrderNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawClusterHUAWEI-shadingRateImage-09234", + "text": "If a shader object is bound to any graphics stage, and the shadingRateImage feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetShadingRateImageEnableNV in the current command buffer set shadingRateImageEnable to VK_TRUE, then vkCmdSetViewportShadingRatePaletteNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08637", - "text": " If a shader object is bound to any graphics stage, and the shadingRateImage feature is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If a shader object is bound to any graphics stage, and the shadingRateImage feature is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-VkPipelineVieportCreateInfo-04141", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportSwizzleStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportSwizzleStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-VkPipelineVieportCreateInfo-04142", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportExclusiveScissorStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportExclusiveScissorStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07878", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07879", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawClusterHUAWEI-exclusiveScissor-09235", + "text": "If a shader object is bound to any graphics stage, and the exclusiveScissor feature is enabled, then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08638", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetExclusiveScissorEnableNV in the current command buffer set any element of pExclusiveScissorEnables to VK_TRUE, then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetExclusiveScissorEnableNV in the current command buffer set any element of pExclusiveScissorEnables to VK_TRUE, then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-04876", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08639", - "text": " If a shader object is bound to any graphics stage, then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-04877", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08640", - "text": " If 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, then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-logicOp-04878", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08641", - "text": " If a shader object is bound to any graphics stage, and the logicOp feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the logicOp feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-primitiveFragmentShadingRateWithMultipleViewports-04552", - "text": " If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1" + "text": "If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-primitiveFragmentShadingRateWithMultipleViewports-08642", - "text": " If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and any shader object bound to a graphics stage writes to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1" + "text": "If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and any shader object bound to a graphics stage writes to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-blendEnable-04727", - "text": " If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the blendEnable member of the corresponding element of the pAttachments member of pColorBlendState must be VK_FALSE" + "text": "If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the blendEnable member of the corresponding element of the pAttachments member of pColorBlendState must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08643", - "text": " If 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, then for each color attachment in the render pass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the corresponding member of pColorBlendEnables in the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer that affected that attachment index must have been VK_FALSE" + "text": "If 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, then for each color attachment in the render pass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the corresponding member of pColorBlendEnables in the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer that affected that attachment index must have been VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-multisampledRenderToSingleSampled-07284", - "text": " If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments" + "text": "If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08644", - "text": " If 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 none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then the most recent call to vkCmdSetRasterizationSamplesEXT in the current command buffer must have set rasterizationSamples to be the same as the number of samples for the current render pass color and/or depth/stencil attachments" + "text": "If 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 none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then the most recent call to vkCmdSetRasterizationSamplesEXT in the current command buffer must have set rasterizationSamples to be the same as the number of samples for the current render pass color and/or depth/stencil attachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08876", - "text": " If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering" + "text": "If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-imageView-06172", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-imageView-06173", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-imageView-06174", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, this command must not write any values to the depth attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, this command must not write any values to the depth attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-imageView-06175", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-imageView-06176", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-imageView-06177", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-viewMask-06178", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::viewMask equal to VkRenderingInfo::viewMask" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::viewMask equal to VkRenderingInfo::viewMask", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-colorAttachmentCount-06179", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::colorAttachmentCount equal to VkRenderingInfo::colorAttachmentCount" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::colorAttachmentCount equal to VkRenderingInfo::colorAttachmentCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-dynamicRenderingUnusedAttachments-08910", - "text": " If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline" + "text": "If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-dynamicRenderingUnusedAttachments-08911", - "text": " If the dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats, if it exists, must be VK_FORMAT_UNDEFINED" + "text": "If the dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats, if it exists, must be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-dynamicRenderingUnusedAttachments-08912", - "text": " If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED" + "text": "If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED", + "page": "vkspec" + }, + { + "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 currently bound graphics pipeline", + "page": "vkspec" + }, + { + "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 currently bound graphics pipeline", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-09364", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled, then vkCmdSetColorBlendEnableEXT must have set the blend enable to VK_FALSE prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-09365", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-09368", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-09369", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07749", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08646", - "text": " If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the fragment stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-attachmentCount-07750", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the attachmentCount parameter of vkCmdSetColorWriteEnableEXT must be greater than or equal to the VkPipelineColorBlendStateCreateInfo::attachmentCount of the currently bound graphics pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the attachmentCount parameter of vkCmdSetColorWriteEnableEXT must be greater than or equal to the VkPipelineColorBlendStateCreateInfo::attachmentCount of the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08647", - "text": " If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the fragment stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the attachmentCount parameter of most recent call to vkCmdSetColorWriteEnableEXT in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance" + "text": "If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the attachmentCount parameter of most recent call to vkCmdSetColorWriteEnableEXT in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07751", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07880", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawClusterHUAWEI-rasterizerDiscardEnable-09236", + "text": "If the VK_EXT_discard_rectangles extension is 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, then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08648", - "text": " If the VK_EXT_discard_rectangles extension is 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, then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_discard_rectangles extension is 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, then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07881", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08649", - "text": " If the VK_EXT_discard_rectangles extension is 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 vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_discard_rectangles extension is 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 vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-dynamicRenderingUnusedAttachments-08913", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-dynamicRenderingUnusedAttachments-08914", - "text": " If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView" + "text": "If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-dynamicRenderingUnusedAttachments-08915", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-dynamicRenderingUnusedAttachments-08916", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-dynamicRenderingUnusedAttachments-08917", - "text": " If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView" + "text": "If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-dynamicRenderingUnusedAttachments-08918", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-imageView-06183", - "text": " If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentShadingRateAttachmentInfoKHR::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR" + "text": "If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentShadingRateAttachmentInfoKHR::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-imageView-06184", - "text": " If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT" + "text": "If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-colorAttachmentCount-06185", - "text": " If the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline" + "text": "If the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-pDepthAttachment-06186", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-pStencilAttachment-06187", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-multisampledRenderToSingleSampled-07285", - "text": " If the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of rasterizationSamples for the currently bound graphics pipeline" + "text": "If the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of rasterizationSamples for the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-multisampledRenderToSingleSampled-07286", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-multisampledRenderToSingleSampled-07287", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-pNext-07935", - "text": " If this command has been called inside a render pass instance started with vkCmdBeginRendering, and the pNext chain of VkRenderingInfo includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the value of rasterizationSamples for the currently bound graphics pipeline must be equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples" + "text": "If this command has been called inside a render pass instance started with vkCmdBeginRendering, and the pNext chain of VkRenderingInfo includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the value of rasterizationSamples for the currently bound graphics pipeline must be equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-renderPass-06198", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline must have been created with a VkGraphicsPipelineCreateInfo::renderPass equal to VK_NULL_HANDLE" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline must have been created with a VkGraphicsPipelineCreateInfo::renderPass equal to VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-pColorAttachments-08963", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the VkRenderingInfo::pColorAttachments->imageView was not VK_NULL_HANDLE, then the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the pipeline must not be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the VkRenderingInfo::pColorAttachments->imageView was not VK_NULL_HANDLE, then the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the pipeline must not be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-pDepthAttachment-08964", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-pStencilAttachment-08965", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, stencil test is enabled and the VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, stencil test is enabled and the VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-primitivesGeneratedQueryWithRasterizerDiscard-06708", - "text": " If the primitivesGeneratedQueryWithRasterizerDiscard feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, rasterization discard must not be enabled" + "text": "If the primitivesGeneratedQueryWithRasterizerDiscard feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, rasterization discard must not be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-primitivesGeneratedQueryWithNonZeroStreams-06709", - "text": " If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, the bound graphics pipeline must not have been created with a non-zero value in VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream" + "text": "If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, the bound graphics pipeline must not have been created with a non-zero value in VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07619", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07620", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-09237", + "text": "If a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08650", - "text": " If the depthClamp feature is 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, then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the depthClamp feature is 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, then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07621", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08651", - "text": " If 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, then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07622", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08652", - "text": " If 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, then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07623", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08653", - "text": " If 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, then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07624", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-alphaToCoverageEnable-08919", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and alphaToCoverageEnable was VK_TRUE in the last call to vkCmdSetAlphaToCoverageEnableEXT, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and alphaToCoverageEnable was VK_TRUE in the last call to vkCmdSetAlphaToCoverageEnableEXT, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08654", - "text": " If 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, then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-alphaToCoverageEnable-08920", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetAlphaToCoverageEnableEXT in the current command buffer set alphaToCoverageEnable to VK_TRUE, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetAlphaToCoverageEnableEXT in the current command buffer set alphaToCoverageEnable to VK_TRUE, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07625", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08655", - "text": " If the alphaToOne feature is 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, then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the alphaToOne feature is 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, then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07626", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08656", - "text": " If the logicOp feature is 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, then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the logicOp feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07627", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08657", - "text": " If 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, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07628", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08658", - "text": " If 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 vkCmdSetColorBlendEnableEXT for any attachment set that attachment’s value in pColorBlendEnables to VK_TRUE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetColorBlendEnableEXT for any attachment set that attachment’s value in pColorBlendEnables to VK_TRUE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07629", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08659", - "text": " If 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, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07630", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08660", - "text": " If the geometryStreams feature is enabled, and a shader object is bound to the geometry stage, then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the geometryStreams feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_GEOMETRY_BIT stage, then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07631", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08661", - "text": " If the VK_EXT_conservative_rasterization extension is 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, then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_conservative_rasterization extension is 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, then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07632", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08662", - "text": " If the VK_EXT_conservative_rasterization extension is 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 vkCmdSetConservativeRasterizationModeEXT in the current command buffer set conservativeRasterizationMode to VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_conservative_rasterization extension is 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 vkCmdSetConservativeRasterizationModeEXT in the current command buffer set conservativeRasterizationMode to VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07633", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08663", - "text": " If the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07634", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08664", - "text": " If the VK_EXT_sample_locations extension is 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, then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_sample_locations extension is 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, then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07635", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07636", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08665", - "text": " If the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the vertex stage, then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "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 in the current command buffer prior to this drawing command" + "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 in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08666", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08667", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08668", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "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 in the current command buffer prior to this drawing command" + "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 in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08669", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08670", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08671", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07849", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_EXT dynamic state enabled then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_EXT dynamic state enabled then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08672", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetLineStippleEnableEXT in the current command buffer set stippledLineEnable to VK_TRUE, then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetLineStippleEnableEXT in the current command buffer set stippledLineEnable to VK_TRUE, then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07639", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08673", - "text": " If the depthClipControl feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the depthClipControl feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07640", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08674", - "text": " If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07641", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08675", - "text": " If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07642", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08676", - "text": " If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07643", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08677", - "text": " If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetCoverageToColorEnableNV in the current command buffer set coverageToColorEnable to VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetCoverageToColorEnableNV in the current command buffer set coverageToColorEnable to VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07644", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08678", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_framebuffer_mixed_samples extension is 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, then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07645", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08679", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_framebuffer_mixed_samples extension is 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 vkCmdSetCoverageModulationModeNV in the current command buffer set coverageModulationMode to any value other than VK_COVERAGE_MODULATION_MODE_NONE_NV, then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07646", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08680", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetCoverageModulationTableEnableNV in the current command buffer set coverageModulationTableEnable to VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_framebuffer_mixed_samples extension is 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 vkCmdSetCoverageModulationTableEnableNV in the current command buffer set coverageModulationTableEnable to VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07647", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawClusterHUAWEI-pipelineFragmentShadingRate-09238", + "text": "If the pipelineFragmentShadingRate feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetFragmentShadingRateKHR must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08681", - "text": " If the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the shadingRateImage feature is 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, then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07648", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08682", - "text": " If the representativeFragmentTest feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the representativeFragmentTest feature is 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, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07649", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08683", - "text": " If the coverageReductionMode feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the coverageReductionMode feature is 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, then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-pColorBlendEnables-07470", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT state enabled and the last call to vkCmdSetColorBlendEnableEXT set pColorBlendEnables for any attachment to VK_TRUE, then for those attachments in the subpass the corresponding image view’s format features must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT state enabled and the last call to vkCmdSetColorBlendEnableEXT set pColorBlendEnables for any attachment to VK_TRUE, then for those attachments in the subpass the corresponding image view’s format features must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-rasterizationSamples-07471", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must follow the rules for a zero-attachment subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must follow the rules for a zero-attachment subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-samples-07472", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the VkPipelineMultisampleStateCreateInfo::rasterizationSamples parameter used to create the bound graphics pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the VkPipelineMultisampleStateCreateInfo::rasterizationSamples parameter used to create the bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-samples-07473", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the rasterizationSamples parameter in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the rasterizationSamples parameter in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { - "vuid": "VUID-vkCmdDrawClusterHUAWEI-multisampledRenderToSingleSampled-07475", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and none of the VK_AMD_mixed_attachment_samples extension, VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the current subpass color and/or depth/stencil attachments" + "vuid": "VUID-vkCmdDrawClusterHUAWEI-rasterizationSamples-07474", + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples extensions are enabled, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the current subpass color and/or depth/stencil attachments", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-09211", + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the rasterizationSamples member of that structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-firstAttachment-07476", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-firstAttachment-07477", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-firstAttachment-07478", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-firstAttachment-07479", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-advancedBlendMaxColorAttachments-07480", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT and VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic states enabled and the last calls to vkCmdSetColorBlendEnableEXT and vkCmdSetColorBlendAdvancedEXT have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed advancedBlendMaxColorAttachments" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT and VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic states enabled and the last calls to vkCmdSetColorBlendEnableEXT and vkCmdSetColorBlendAdvancedEXT have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed advancedBlendMaxColorAttachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-primitivesGeneratedQueryWithNonZeroStreams-07481", - "text": " If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, and the bound graphics pipeline was created with VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT state enabled, the last call to vkCmdSetRasterizationStreamEXT must have set the rasterizationStream to zero" + "text": "If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, and the bound graphics pipeline was created with VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT state enabled, the last call to vkCmdSetRasterizationStreamEXT must have set the rasterizationStream to zero", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-sampleLocationsPerPixel-07482", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-sampleLocationsPerPixel-07483", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples parameter of the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples parameter of the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-sampleLocationsEnable-07484", - "text": " If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set" + "text": "If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-sampleLocationsEnable-07485", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.width in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.width in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-sampleLocationsEnable-07486", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.height in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.height in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-sampleLocationsEnable-07487", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, the fragment shader code must not statically use the extended instruction InterpolateAtSample" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, the fragment shader code must not statically use the extended instruction InterpolateAtSample", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-sampleLocationsEnable-07936", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.width must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.width must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-sampleLocationsEnable-07937", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.height must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.height must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-sampleLocationsEnable-07938", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-coverageModulationTableEnable-07488", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-rasterizationSamples-07489", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment" + "text": "If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-coverageToColorEnable-07490", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-coverageReductionMode-07491", - "text": " If this VK_NV_coverage_reduction_mode extension is enabled, the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, the current coverage reduction mode coverageReductionMode, then the current rasterizationSamples, and the sample counts for the color and depth/stencil attachments (if the subpass has them) must be a valid combination returned by vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV" + "text": "If this VK_NV_coverage_reduction_mode extension is enabled, the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, the current coverage reduction mode coverageReductionMode, then the current rasterizationSamples, and the sample counts for the color and depth/stencil attachments (if the subpass has them) must be a valid combination returned by vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-viewportCount-07492", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-viewportCount-07493", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-rasterizationSamples-07494", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE" + "text": "If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-stippledLineEnable-07495", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-stippledLineEnable-07496", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-stippledLineEnable-07497", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-stippledLineEnable-07498", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-conservativePointAndLineRasterization-07499", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, conservativePointAndLineRasterization is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the conservativeRasterizationMode set by the last call to vkCmdSetConservativeRasterizationModeEXT must be VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, conservativePointAndLineRasterization is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the conservativeRasterizationMode set by the last call to vkCmdSetConservativeRasterizationModeEXT must be VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-stage-07073", - "text": " If the currently bound pipeline was created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT, then Mesh Shader Queries must not be active" + "text": "If the currently bound pipeline was created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT, then Mesh Shader Queries must not be active", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08877", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07850", - "text": " If dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command" + "text": "If dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08684", - "text": " If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_VERTEX_BIT" + "text": "If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_VERTEX_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08685", - "text": " If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT" + "text": "If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08686", - "text": " If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT" + "text": "If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08687", - "text": " If there is no bound graphics pipeline, and the geometryShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_GEOMETRY_BIT" + "text": "If there is no bound graphics pipeline, and the geometryShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_GEOMETRY_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08688", - "text": " If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_FRAGMENT_BIT" + "text": "If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_FRAGMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08689", - "text": " If there is no bound graphics pipeline, and the taskShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TASK_BIT_EXT" + "text": "If there is no bound graphics pipeline, and the taskShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TASK_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08690", - "text": " If there is no bound graphics pipeline, and the meshShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_MESH_BIT_EXT" + "text": "If there is no bound graphics pipeline, and the meshShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_MESH_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08693", - "text": " If there is no bound graphics pipeline, and at least one of the taskShader and meshShader features is enabled, one of the VK_SHADER_STAGE_VERTEX_BIT or VK_SHADER_STAGE_MESH_BIT_EXT stages must have a valid VkShaderEXT bound, and the other must have no VkShaderEXT bound" + "text": "If there is no bound graphics pipeline, and at least one of the taskShader and meshShader features is enabled, one of the VK_SHADER_STAGE_VERTEX_BIT or VK_SHADER_STAGE_MESH_BIT_EXT stages must have a valid VkShaderEXT bound, and the other must have no VkShaderEXT bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08694", - "text": " If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created without the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, a valid VkShaderEXT must be bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage" + "text": "If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created without the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, a valid VkShaderEXT must be bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08695", - "text": " If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created with the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, there must be no VkShaderEXT bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage" + "text": "If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created with the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, there must be no VkShaderEXT bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08696", - "text": " If there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage" + "text": "If there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08698", - "text": " If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound" + "text": "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08699", - "text": " If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound" + "text": "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08878", - "text": " All bound graphics shader objects must have been created with identical or identically defined push constant ranges" + "text": "All bound graphics shader objects must have been created with identical or identically defined push constant ranges", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08879", - "text": " All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts" + "text": "All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08880", - "text": " If there is no bound graphics pipeline and the attachmentFeedbackLoopDynamicState feature is enabled on the device, vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage and the attachmentFeedbackLoopDynamicState feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-pDynamicStates-08715", - "text": " If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable parameter in the last call to vkCmdSetDepthWriteEnable must be VK_FALSE" + "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable parameter in the last call to vkCmdSetDepthWriteEnable must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-pDynamicStates-08716", - "text": " If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_STENCIL_WRITE_MASK set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the writeMask parameter in the last call to vkCmdSetStencilWriteMask must be 0" + "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_STENCIL_WRITE_MASK set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the writeMask parameter in the last call to vkCmdSetStencilWriteMask must be 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-09116", - "text": " If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them" + "text": "If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawClusterHUAWEI-maxFragmentDualSrcAttachments-09239", + "text": "If blending is enabled for any attachment where either the source or destination blend factors for that attachment use the secondary color input, the maximum value of Location for any output attachment statically used in the Fragment Execution Model executed by this command must be less than maxFragmentDualSrcAttachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-stage-06480", - "text": " The bound graphics pipeline must not have been created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT" + "text": "The bound graphics pipeline must not have been created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07074", - "text": " Transform Feedback Queries must not be active" + "text": "Transform Feedback Queries must not be active", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07075", - "text": " Primitives Generated Queries must not be active" + "text": "Primitives Generated Queries must not be active", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-pipelineStatistics-07076", - "text": " The pipelineStatistics member used to create any active Pipeline Statistics Query must not contain VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT, VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT, or VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT" + "text": "The pipelineStatistics member used to create any active Pipeline Statistics Query must not contain VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT, VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT, or VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07819", - "text": " The pipelineStatistics member used to create any active Pipeline Statistics Query must also not contain VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT, VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT" + "text": "The pipelineStatistics member used to create any active Pipeline Statistics Query must not contain VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT, or VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-groupCountX-07820", - "text": " groupCountX must be less than or equal to VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI::maxWorkGroupCount[0]" + "text": "groupCountX must be less than or equal to VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI::maxWorkGroupCount[0]", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-groupCountY-07821", - "text": " groupCountY must be less than or equal to VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI::maxWorkGroupCount[1]" + "text": "groupCountY must be less than or equal to VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI::maxWorkGroupCount[1]", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-groupCountZ-07822", - "text": " groupCountZ must be less than or equal to VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI::maxWorkGroupCount[2]" + "text": "groupCountZ must be less than or equal to VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI::maxWorkGroupCount[2]", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-ClusterCullingHUAWEI-07823", - "text": " The current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS must contain a shader stage using the ClusterCullingHUAWEI {ExecutionModel}." + "text": "The current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS must contain a shader stage using the ClusterCullingHUAWEI Execution Model.", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-renderpass", - "text": " This command must only be called inside of a render pass instance" + "text": "This command must only be called inside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -52570,1263 +68375,1708 @@ "core": [ { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-magFilter-04553", - "text": " If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + "text": "If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-mipmapMode-04770", - "text": " If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + "text": "If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-06479", - "text": " If a VkImageView is sampled with depth comparison, the image view’s format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT" + "text": "If a VkImageView is sampled with depth comparison, the image view’s format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-02691", - "text": " If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT" + "text": "If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07888", - "text": " If a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer’s format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT" + "text": "If a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer’s format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-02692", - "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" + "text": "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-02693", - "text": " If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" + "text": "If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-filterCubic-02694", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" + "text": "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-filterCubicMinmax-02695", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" + "text": "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-cubicRangeClamp-09212", + "text": "If the cubicRangeClamp feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command
\n
\n
must not have a VkSamplerReductionModeCreateInfo
\n
\n

reductionMode equal to\nVK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM

\n
\n
\n
", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-reductionMode-09213", + "text": "Any VkImageView being sampled with a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM as a result of this command must sample with VK_FILTER_CUBIC_EXT", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-selectableCubicWeights-09214", + "text": "If the selectableCubicWeights feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have VkSamplerCubicWeightsCreateInfoQCOM::cubicWeights equal to VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-flags-02696", - "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE" + "text": "Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-OpTypeImage-07027", - "text": " For any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT" + "text": "For any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-OpTypeImage-07028", - "text": " For any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT" + "text": "For any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-OpTypeImage-07029", - "text": " For any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT" + "text": "For any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-OpTypeImage-07030", - "text": " Any VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT" + "text": "Any VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08600", - "text": " For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08601", - "text": " For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-maintenance4-08602", - "text": " If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08114", - "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08115", - "text": " If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08116", - "text": " Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08604", - "text": " Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command" + "text": "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08117", - "text": " If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08119", - "text": " If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident" + "text": "If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08605", - "text": " If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident" + "text": "If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08606", - "text": " If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command" + "text": "If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08607", - "text": " If the shaderObject is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command" + "text": "If the shaderObject is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08608", - "text": " If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound" + "text": "If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08609", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08610", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08611", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-uniformBuffers-06935", - "text": " If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08612", - "text": " If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-storageBuffers-06936", - "text": " If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08613", - "text": " If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-commandBuffer-02707", - "text": " If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource" + "text": "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-06550", - "text": " If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions" + "text": "If a bound shader accesses a VkSampler or VkImageView object that enables sampler Y′CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-ConstOffset-06551", - "text": " If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands" + "text": "If a bound shader accesses a VkSampler or VkImageView object that enables sampler Y′CBCR conversion, that object must not use the ConstOffset and Offset operands", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-viewType-07752", - "text": " If a VkImageView is accessed as a result of this command, then the image view’s viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation" + "text": "If a VkImageView is accessed as a result of this command, then the image view’s viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-format-07753", - "text": " If a VkImageView is accessed as a result of this command, then the numeric type of the image view’s format and the Sampled Type operand of the OpTypeImage must match" + "text": "If a VkImageView is accessed as a result of this command, then the numeric type of the image view’s format and the Sampled Type operand of the OpTypeImage must match", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageWrite-08795", - "text": " If a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format" + "text": "If a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageWrite-08796", - "text": " If a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components" + "text": "If a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageWrite-04469", - "text": " If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view’s format" + "text": "If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view’s format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-SampledType-04470", - "text": " If a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64" + "text": "If a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-SampledType-04471", - "text": " If a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32" + "text": "If a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-SampledType-04472", - "text": " If a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64" + "text": "If a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-SampledType-04473", - "text": " If a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32" + "text": "If a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-sparseImageInt64Atomics-04474", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command" + "text": "If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-sparseImageInt64Atomics-04475", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command" + "text": "If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageWeightedSampleQCOM-06971", - "text": " If OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageWeightedSampleQCOM-06972", - "text": " If OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageBoxFilterQCOM-06973", - "text": " If OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM" + "text": "If OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageBlockMatchSSDQCOM-06974", - "text": " If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM" + "text": "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageBlockMatchSADQCOM-06975", - "text": " If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM" + "text": "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageBlockMatchSADQCOM-06976", - "text": " If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation" + "text": "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageWeightedSampleQCOM-06977", - "text": " If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageWeightedSampleQCOM-06978", - "text": " If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM" + "text": "If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageBlockMatchWindow-09215", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageBlockMatchWindow-09216", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view’s format must be a single-component format.", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageBlockMatchWindow-09217", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07288", - "text": " Any shader invocation executed by this command must terminate" + "text": "Any shader invocation executed by this command must terminate", + "page": "vkspec" }, { "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" + "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", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-subpass-02685", - "text": " The subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS" + "text": "The subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07748", - "text": " If any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set" + "text": "If any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-OpTypeImage-07468", - "text": " If any shader executed by this pipeline accesses an OpTypeImage variable with a Dim operand of SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass" + "text": "If any shader executed by this pipeline accesses an OpTypeImage variable with a Dim operand of SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07469", - "text": " Input attachment views accessed in a subpass must be created with the same VkFormat as the corresponding subpass definition, and be created with a VkImageView that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound VkFramebuffer as specified by Fragment Input Attachment Compatibility" + "text": "Input attachment views accessed in a subpass must be created with the same VkFormat as the corresponding subpass definition, and be created with a VkImageView that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound VkFramebuffer as specified by Fragment Input Attachment Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-06537", - "text": " Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command" + "text": "Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command", + "page": "vkspec" }, { "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
" + "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
", + "page": "vkspec" }, { "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
" + "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
", + "page": "vkspec" }, { "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
" + "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-09003", - "text": " If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command" + "text": "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-06539", - "text": " If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment" + "text": "If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-06886", - "text": " If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled" + "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-06887", - "text": " If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back writeMask are not zero, and stencil test is enabled, all stencil ops must be VK_STENCIL_OP_KEEP" + "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back writeMask are not zero, and stencil test is enabled, all stencil ops must be VK_STENCIL_OP_KEEP", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07831", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07832", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07833", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08617", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08618", - "text": " If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08619", - "text": " If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07834", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08620", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07835", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08621", - "text": " If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07836", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled, and if the current depthBoundsTestEnable state is VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08622", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07837", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08623", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07838", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled then vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08624", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07839", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled then vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08625", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-maxMultiviewInstanceIndex-02688", - "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex" + "text": "If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsEnable-02689", - "text": " If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set" + "text": "If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-06666", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08626", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetSampleLocationsEnableEXT in the current command buffer set sampleLocationsEnable to VK_TRUE, vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetSampleLocationsEnableEXT in the current command buffer set sampleLocationsEnable to VK_TRUE, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsPerPixel-07934", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07840", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08627", - "text": " If a shader object is bound to any graphics stage, vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07841", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08628", - "text": " If a shader object is bound to any graphics stage, vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07843", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08629", - "text": " If a shader object is bound to any graphics stage, vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07844", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08630", - "text": " If a shader object is bound to any graphics stage, vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07845", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08631", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthTestEnable in the current command buffer set depthTestEnable to VK_TRUE, vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetDepthTestEnable in the current command buffer set depthTestEnable to VK_TRUE, then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07846", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled then vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled then vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08632", - "text": " If a shader object is bound to any graphics stage, and the depthBounds feature is enabled, the vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the depthBounds feature is enabled, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07847", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08633", - "text": " If 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, then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07848", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08634", - "text": " If 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 vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-viewportCount-03417", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-scissorCount-03418", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the scissorCount parameter of vkCmdSetScissorWithCount must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the scissorCount parameter of vkCmdSetScissorWithCount must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-viewportCount-03419", - "text": " If the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount" + "text": "If the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08635", - "text": " If a shader object is bound to any graphics stage, then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount" + "text": "If a shader object is bound to any graphics stage, then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-viewportCount-04137", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-viewportCount-04138", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-09232", + "text": "If a shader object is bound to any graphics stage, and the VK_NV_clip_space_w_scaling extension is enabled on the device, then vkCmdSetViewportWScalingNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08636", - "text": " If a shader object is bound to any graphics stage, and the VK_NV_clip_space_w_scaling extension is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If a shader object is bound to any graphics stage, and the VK_NV_clip_space_w_scaling extension is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-viewportCount-04139", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-viewportCount-04140", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-shadingRateImage-09233", + "text": "If the shadingRateImage feature is enabled, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoarseSampleOrderNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-shadingRateImage-09234", + "text": "If a shader object is bound to any graphics stage, and the shadingRateImage feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetShadingRateImageEnableNV in the current command buffer set shadingRateImageEnable to VK_TRUE, then vkCmdSetViewportShadingRatePaletteNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08637", - "text": " If a shader object is bound to any graphics stage, and the shadingRateImage feature is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If a shader object is bound to any graphics stage, and the shadingRateImage feature is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-VkPipelineVieportCreateInfo-04141", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportSwizzleStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportSwizzleStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-VkPipelineVieportCreateInfo-04142", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportExclusiveScissorStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportExclusiveScissorStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07878", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07879", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-exclusiveScissor-09235", + "text": "If a shader object is bound to any graphics stage, and the exclusiveScissor feature is enabled, then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08638", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetExclusiveScissorEnableNV in the current command buffer set any element of pExclusiveScissorEnables to VK_TRUE, then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetExclusiveScissorEnableNV in the current command buffer set any element of pExclusiveScissorEnables to VK_TRUE, then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-04876", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08639", - "text": " If a shader object is bound to any graphics stage, then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-04877", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08640", - "text": " If 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, then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-logicOp-04878", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08641", - "text": " If a shader object is bound to any graphics stage, and the logicOp feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the logicOp feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-primitiveFragmentShadingRateWithMultipleViewports-04552", - "text": " If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1" + "text": "If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-primitiveFragmentShadingRateWithMultipleViewports-08642", - "text": " If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and any shader object bound to a graphics stage writes to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1" + "text": "If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and any shader object bound to a graphics stage writes to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-blendEnable-04727", - "text": " If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the blendEnable member of the corresponding element of the pAttachments member of pColorBlendState must be VK_FALSE" + "text": "If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the blendEnable member of the corresponding element of the pAttachments member of pColorBlendState must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08643", - "text": " If 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, then for each color attachment in the render pass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the corresponding member of pColorBlendEnables in the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer that affected that attachment index must have been VK_FALSE" + "text": "If 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, then for each color attachment in the render pass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the corresponding member of pColorBlendEnables in the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer that affected that attachment index must have been VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-multisampledRenderToSingleSampled-07284", - "text": " If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments" + "text": "If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08644", - "text": " If 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 none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then the most recent call to vkCmdSetRasterizationSamplesEXT in the current command buffer must have set rasterizationSamples to be the same as the number of samples for the current render pass color and/or depth/stencil attachments" + "text": "If 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 none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then the most recent call to vkCmdSetRasterizationSamplesEXT in the current command buffer must have set rasterizationSamples to be the same as the number of samples for the current render pass color and/or depth/stencil attachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08876", - "text": " If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering" + "text": "If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-imageView-06172", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-imageView-06173", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-imageView-06174", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, this command must not write any values to the depth attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, this command must not write any values to the depth attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-imageView-06175", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-imageView-06176", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-imageView-06177", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-viewMask-06178", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::viewMask equal to VkRenderingInfo::viewMask" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::viewMask equal to VkRenderingInfo::viewMask", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-colorAttachmentCount-06179", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::colorAttachmentCount equal to VkRenderingInfo::colorAttachmentCount" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::colorAttachmentCount equal to VkRenderingInfo::colorAttachmentCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-dynamicRenderingUnusedAttachments-08910", - "text": " If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline" + "text": "If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-dynamicRenderingUnusedAttachments-08911", - "text": " If the dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats, if it exists, must be VK_FORMAT_UNDEFINED" + "text": "If the dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats, if it exists, must be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-dynamicRenderingUnusedAttachments-08912", - "text": " If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED" + "text": "If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED", + "page": "vkspec" + }, + { + "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 currently bound graphics pipeline", + "page": "vkspec" + }, + { + "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 currently bound graphics pipeline", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-09364", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled, then vkCmdSetColorBlendEnableEXT must have set the blend enable to VK_FALSE prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-09365", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-09368", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-09369", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07749", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08646", - "text": " If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the fragment stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-attachmentCount-07750", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the attachmentCount parameter of vkCmdSetColorWriteEnableEXT must be greater than or equal to the VkPipelineColorBlendStateCreateInfo::attachmentCount of the currently bound graphics pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the attachmentCount parameter of vkCmdSetColorWriteEnableEXT must be greater than or equal to the VkPipelineColorBlendStateCreateInfo::attachmentCount of the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08647", - "text": " If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the fragment stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the attachmentCount parameter of most recent call to vkCmdSetColorWriteEnableEXT in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance" + "text": "If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the attachmentCount parameter of most recent call to vkCmdSetColorWriteEnableEXT in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07751", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07880", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-rasterizerDiscardEnable-09236", + "text": "If the VK_EXT_discard_rectangles extension is 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, then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08648", - "text": " If the VK_EXT_discard_rectangles extension is 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, then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_discard_rectangles extension is 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, then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07881", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08649", - "text": " If the VK_EXT_discard_rectangles extension is 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 vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_discard_rectangles extension is 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 vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-dynamicRenderingUnusedAttachments-08913", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-dynamicRenderingUnusedAttachments-08914", - "text": " If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView" + "text": "If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-dynamicRenderingUnusedAttachments-08915", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-dynamicRenderingUnusedAttachments-08916", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-dynamicRenderingUnusedAttachments-08917", - "text": " If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView" + "text": "If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-dynamicRenderingUnusedAttachments-08918", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-imageView-06183", - "text": " If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentShadingRateAttachmentInfoKHR::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR" + "text": "If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentShadingRateAttachmentInfoKHR::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-imageView-06184", - "text": " If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT" + "text": "If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-colorAttachmentCount-06185", - "text": " If the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline" + "text": "If the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-pDepthAttachment-06186", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-pStencilAttachment-06187", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-multisampledRenderToSingleSampled-07285", - "text": " If the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of rasterizationSamples for the currently bound graphics pipeline" + "text": "If the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of rasterizationSamples for the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-multisampledRenderToSingleSampled-07286", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-multisampledRenderToSingleSampled-07287", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-pNext-07935", - "text": " If this command has been called inside a render pass instance started with vkCmdBeginRendering, and the pNext chain of VkRenderingInfo includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the value of rasterizationSamples for the currently bound graphics pipeline must be equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples" + "text": "If this command has been called inside a render pass instance started with vkCmdBeginRendering, and the pNext chain of VkRenderingInfo includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the value of rasterizationSamples for the currently bound graphics pipeline must be equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-renderPass-06198", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline must have been created with a VkGraphicsPipelineCreateInfo::renderPass equal to VK_NULL_HANDLE" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline must have been created with a VkGraphicsPipelineCreateInfo::renderPass equal to VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-pColorAttachments-08963", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the VkRenderingInfo::pColorAttachments->imageView was not VK_NULL_HANDLE, then the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the pipeline must not be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the VkRenderingInfo::pColorAttachments->imageView was not VK_NULL_HANDLE, then the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the pipeline must not be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-pDepthAttachment-08964", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-pStencilAttachment-08965", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, stencil test is enabled and the VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, stencil test is enabled and the VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-primitivesGeneratedQueryWithRasterizerDiscard-06708", - "text": " If the primitivesGeneratedQueryWithRasterizerDiscard feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, rasterization discard must not be enabled" + "text": "If the primitivesGeneratedQueryWithRasterizerDiscard feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, rasterization discard must not be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-primitivesGeneratedQueryWithNonZeroStreams-06709", - "text": " If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, the bound graphics pipeline must not have been created with a non-zero value in VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream" + "text": "If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, the bound graphics pipeline must not have been created with a non-zero value in VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07619", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07620", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-09237", + "text": "If a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08650", - "text": " If the depthClamp feature is 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, then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the depthClamp feature is 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, then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07621", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08651", - "text": " If 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, then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07622", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08652", - "text": " If 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, then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07623", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08653", - "text": " If 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, then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07624", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-alphaToCoverageEnable-08919", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and alphaToCoverageEnable was VK_TRUE in the last call to vkCmdSetAlphaToCoverageEnableEXT, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and alphaToCoverageEnable was VK_TRUE in the last call to vkCmdSetAlphaToCoverageEnableEXT, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08654", - "text": " If 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, then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-alphaToCoverageEnable-08920", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetAlphaToCoverageEnableEXT in the current command buffer set alphaToCoverageEnable to VK_TRUE, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetAlphaToCoverageEnableEXT in the current command buffer set alphaToCoverageEnable to VK_TRUE, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07625", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08655", - "text": " If the alphaToOne feature is 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, then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the alphaToOne feature is 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, then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07626", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08656", - "text": " If the logicOp feature is 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, then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the logicOp feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07627", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08657", - "text": " If 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, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07628", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08658", - "text": " If 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 vkCmdSetColorBlendEnableEXT for any attachment set that attachment’s value in pColorBlendEnables to VK_TRUE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetColorBlendEnableEXT for any attachment set that attachment’s value in pColorBlendEnables to VK_TRUE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07629", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08659", - "text": " If 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, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07630", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08660", - "text": " If the geometryStreams feature is enabled, and a shader object is bound to the geometry stage, then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the geometryStreams feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_GEOMETRY_BIT stage, then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07631", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08661", - "text": " If the VK_EXT_conservative_rasterization extension is 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, then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_conservative_rasterization extension is 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, then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07632", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08662", - "text": " If the VK_EXT_conservative_rasterization extension is 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 vkCmdSetConservativeRasterizationModeEXT in the current command buffer set conservativeRasterizationMode to VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_conservative_rasterization extension is 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 vkCmdSetConservativeRasterizationModeEXT in the current command buffer set conservativeRasterizationMode to VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07633", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08663", - "text": " If the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07634", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08664", - "text": " If the VK_EXT_sample_locations extension is 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, then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_sample_locations extension is 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, then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07635", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07636", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08665", - "text": " If the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the vertex stage, then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "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 in the current command buffer prior to this drawing command" + "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 in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08666", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08667", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08668", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "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 in the current command buffer prior to this drawing command" + "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 in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08669", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08670", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08671", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07849", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_EXT dynamic state enabled then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_EXT dynamic state enabled then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08672", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetLineStippleEnableEXT in the current command buffer set stippledLineEnable to VK_TRUE, then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetLineStippleEnableEXT in the current command buffer set stippledLineEnable to VK_TRUE, then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07639", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08673", - "text": " If the depthClipControl feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the depthClipControl feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07640", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08674", - "text": " If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07641", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08675", - "text": " If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07642", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08676", - "text": " If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07643", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08677", - "text": " If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetCoverageToColorEnableNV in the current command buffer set coverageToColorEnable to VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetCoverageToColorEnableNV in the current command buffer set coverageToColorEnable to VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07644", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08678", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_framebuffer_mixed_samples extension is 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, then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07645", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08679", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_framebuffer_mixed_samples extension is 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 vkCmdSetCoverageModulationModeNV in the current command buffer set coverageModulationMode to any value other than VK_COVERAGE_MODULATION_MODE_NONE_NV, then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07646", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08680", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetCoverageModulationTableEnableNV in the current command buffer set coverageModulationTableEnable to VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_framebuffer_mixed_samples extension is 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 vkCmdSetCoverageModulationTableEnableNV in the current command buffer set coverageModulationTableEnable to VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07647", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-pipelineFragmentShadingRate-09238", + "text": "If the pipelineFragmentShadingRate feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetFragmentShadingRateKHR must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08681", - "text": " If the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the shadingRateImage feature is 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, then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07648", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08682", - "text": " If the representativeFragmentTest feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the representativeFragmentTest feature is 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, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07649", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08683", - "text": " If the coverageReductionMode feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the coverageReductionMode feature is 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, then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-pColorBlendEnables-07470", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT state enabled and the last call to vkCmdSetColorBlendEnableEXT set pColorBlendEnables for any attachment to VK_TRUE, then for those attachments in the subpass the corresponding image view’s format features must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT state enabled and the last call to vkCmdSetColorBlendEnableEXT set pColorBlendEnables for any attachment to VK_TRUE, then for those attachments in the subpass the corresponding image view’s format features must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-rasterizationSamples-07471", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must follow the rules for a zero-attachment subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must follow the rules for a zero-attachment subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-samples-07472", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the VkPipelineMultisampleStateCreateInfo::rasterizationSamples parameter used to create the bound graphics pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the VkPipelineMultisampleStateCreateInfo::rasterizationSamples parameter used to create the bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-samples-07473", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the rasterizationSamples parameter in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the rasterizationSamples parameter in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { - "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-multisampledRenderToSingleSampled-07475", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and none of the VK_AMD_mixed_attachment_samples extension, VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the current subpass color and/or depth/stencil attachments" + "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-rasterizationSamples-07474", + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples extensions are enabled, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the current subpass color and/or depth/stencil attachments", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-09211", + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the rasterizationSamples member of that structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-firstAttachment-07476", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-firstAttachment-07477", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-firstAttachment-07478", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-firstAttachment-07479", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-advancedBlendMaxColorAttachments-07480", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT and VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic states enabled and the last calls to vkCmdSetColorBlendEnableEXT and vkCmdSetColorBlendAdvancedEXT have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed advancedBlendMaxColorAttachments" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT and VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic states enabled and the last calls to vkCmdSetColorBlendEnableEXT and vkCmdSetColorBlendAdvancedEXT have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed advancedBlendMaxColorAttachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-primitivesGeneratedQueryWithNonZeroStreams-07481", - "text": " If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, and the bound graphics pipeline was created with VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT state enabled, the last call to vkCmdSetRasterizationStreamEXT must have set the rasterizationStream to zero" + "text": "If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, and the bound graphics pipeline was created with VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT state enabled, the last call to vkCmdSetRasterizationStreamEXT must have set the rasterizationStream to zero", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsPerPixel-07482", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsPerPixel-07483", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples parameter of the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples parameter of the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsEnable-07484", - "text": " If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set" + "text": "If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsEnable-07485", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.width in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.width in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsEnable-07486", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.height in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.height in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsEnable-07487", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, the fragment shader code must not statically use the extended instruction InterpolateAtSample" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, the fragment shader code must not statically use the extended instruction InterpolateAtSample", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsEnable-07936", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.width must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.width must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsEnable-07937", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.height must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.height must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsEnable-07938", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-coverageModulationTableEnable-07488", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-rasterizationSamples-07489", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment" + "text": "If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-coverageToColorEnable-07490", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-coverageReductionMode-07491", - "text": " If this VK_NV_coverage_reduction_mode extension is enabled, the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, the current coverage reduction mode coverageReductionMode, then the current rasterizationSamples, and the sample counts for the color and depth/stencil attachments (if the subpass has them) must be a valid combination returned by vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV" + "text": "If this VK_NV_coverage_reduction_mode extension is enabled, the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, the current coverage reduction mode coverageReductionMode, then the current rasterizationSamples, and the sample counts for the color and depth/stencil attachments (if the subpass has them) must be a valid combination returned by vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-viewportCount-07492", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-viewportCount-07493", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-rasterizationSamples-07494", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE" + "text": "If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-stippledLineEnable-07495", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-stippledLineEnable-07496", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-stippledLineEnable-07497", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-stippledLineEnable-07498", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-conservativePointAndLineRasterization-07499", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, conservativePointAndLineRasterization is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the conservativeRasterizationMode set by the last call to vkCmdSetConservativeRasterizationModeEXT must be VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, conservativePointAndLineRasterization is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the conservativeRasterizationMode set by the last call to vkCmdSetConservativeRasterizationModeEXT must be VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-stage-07073", - "text": " If the currently bound pipeline was created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT, then Mesh Shader Queries must not be active" + "text": "If the currently bound pipeline was created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT, then Mesh Shader Queries must not be active", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08877", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07850", - "text": " If dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command" + "text": "If dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08684", - "text": " If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_VERTEX_BIT" + "text": "If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_VERTEX_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08685", - "text": " If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT" + "text": "If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08686", - "text": " If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT" + "text": "If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08687", - "text": " If there is no bound graphics pipeline, and the geometryShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_GEOMETRY_BIT" + "text": "If there is no bound graphics pipeline, and the geometryShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_GEOMETRY_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08688", - "text": " If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_FRAGMENT_BIT" + "text": "If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_FRAGMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08689", - "text": " If there is no bound graphics pipeline, and the taskShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TASK_BIT_EXT" + "text": "If there is no bound graphics pipeline, and the taskShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TASK_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08690", - "text": " If there is no bound graphics pipeline, and the meshShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_MESH_BIT_EXT" + "text": "If there is no bound graphics pipeline, and the meshShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_MESH_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08693", - "text": " If there is no bound graphics pipeline, and at least one of the taskShader and meshShader features is enabled, one of the VK_SHADER_STAGE_VERTEX_BIT or VK_SHADER_STAGE_MESH_BIT_EXT stages must have a valid VkShaderEXT bound, and the other must have no VkShaderEXT bound" + "text": "If there is no bound graphics pipeline, and at least one of the taskShader and meshShader features is enabled, one of the VK_SHADER_STAGE_VERTEX_BIT or VK_SHADER_STAGE_MESH_BIT_EXT stages must have a valid VkShaderEXT bound, and the other must have no VkShaderEXT bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08694", - "text": " If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created without the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, a valid VkShaderEXT must be bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage" + "text": "If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created without the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, a valid VkShaderEXT must be bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08695", - "text": " If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created with the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, there must be no VkShaderEXT bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage" + "text": "If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created with the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, there must be no VkShaderEXT bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08696", - "text": " If there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage" + "text": "If there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08698", - "text": " If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound" + "text": "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08699", - "text": " If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound" + "text": "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08878", - "text": " All bound graphics shader objects must have been created with identical or identically defined push constant ranges" + "text": "All bound graphics shader objects must have been created with identical or identically defined push constant ranges", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08879", - "text": " All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts" + "text": "All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08880", - "text": " If there is no bound graphics pipeline and the attachmentFeedbackLoopDynamicState feature is enabled on the device, vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage and the attachmentFeedbackLoopDynamicState feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-pDynamicStates-08715", - "text": " If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable parameter in the last call to vkCmdSetDepthWriteEnable must be VK_FALSE" + "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable parameter in the last call to vkCmdSetDepthWriteEnable must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-pDynamicStates-08716", - "text": " If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_STENCIL_WRITE_MASK set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the writeMask parameter in the last call to vkCmdSetStencilWriteMask must be 0" + "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_STENCIL_WRITE_MASK set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the writeMask parameter in the last call to vkCmdSetStencilWriteMask must be 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-09116", - "text": " If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them" + "text": "If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-maxFragmentDualSrcAttachments-09239", + "text": "If blending is enabled for any attachment where either the source or destination blend factors for that attachment use the secondary color input, the maximum value of Location for any output attachment statically used in the Fragment Execution Model executed by this command must be less than maxFragmentDualSrcAttachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-stage-06480", - "text": " The bound graphics pipeline must not have been created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT" + "text": "The bound graphics pipeline must not have been created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07074", - "text": " Transform Feedback Queries must not be active" + "text": "Transform Feedback Queries must not be active", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07075", - "text": " Primitives Generated Queries must not be active" + "text": "Primitives Generated Queries must not be active", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-pipelineStatistics-07076", - "text": " The pipelineStatistics member used to create any active Pipeline Statistics Query must not contain VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT, VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT, or VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT" + "text": "The pipelineStatistics member used to create any active Pipeline Statistics Query must not contain VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT, VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT, or VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-drawCount-02718", - "text": " If the multiDrawIndirect feature is not enabled, drawCount must be 0 or 1" + "text": "If the multiDrawIndirect feature is not enabled, drawCount must be 0 or 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-drawCount-02719", - "text": " drawCount must be less than or equal to VkPhysicalDeviceLimits::maxDrawIndirectCount" + "text": "drawCount must be less than or equal to VkPhysicalDeviceLimits::maxDrawIndirectCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-ClusterCullingHUAWEI-07824", - "text": " The current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS must contain a shader stage using the ClusterCullingHUAWEI {ExecutionModel}." + "text": "The current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS must contain a shader stage using the ClusterCullingHUAWEI Execution Model.", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-offset-07918", - "text": " offset must be a multiple of VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI::indirectBufferOffsetAlignment" + "text": "offset must be a multiple of VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI::indirectBufferOffsetAlignment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-buffer-parameter", - "text": " buffer must be a valid VkBuffer handle" + "text": "buffer must be a valid VkBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-renderpass", - "text": " This command must only be called inside of a render pass instance" + "text": "This command must only be called inside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-commonparent", - "text": " Both of buffer, and commandBuffer must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of buffer, and commandBuffer must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -53834,47 +70084,58 @@ "core": [ { "vuid": "VUID-VkPipelineVertexInputStateCreateInfo-vertexBindingDescriptionCount-00613", - "text": " vertexBindingDescriptionCount must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputBindings" + "text": "vertexBindingDescriptionCount must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputBindings", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineVertexInputStateCreateInfo-vertexAttributeDescriptionCount-00614", - "text": " vertexAttributeDescriptionCount must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputAttributes" + "text": "vertexAttributeDescriptionCount must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputAttributes", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineVertexInputStateCreateInfo-binding-00615", - "text": " For every binding specified by each element of pVertexAttributeDescriptions, a VkVertexInputBindingDescription must exist in pVertexBindingDescriptions with the same value of binding" + "text": "For every binding specified by each element of pVertexAttributeDescriptions, a VkVertexInputBindingDescription must exist in pVertexBindingDescriptions with the same value of binding", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineVertexInputStateCreateInfo-pVertexBindingDescriptions-00616", - "text": " All elements of pVertexBindingDescriptions must describe distinct binding numbers" + "text": "All elements of pVertexBindingDescriptions must describe distinct binding numbers", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineVertexInputStateCreateInfo-pVertexAttributeDescriptions-00617", - "text": " All elements of pVertexAttributeDescriptions must describe distinct attribute locations" + "text": "All elements of pVertexAttributeDescriptions must describe distinct attribute locations", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineVertexInputStateCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineVertexInputStateCreateInfo-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkPipelineVertexInputDivisorStateCreateInfoEXT" + "text": "pNext must be NULL or a pointer to a valid instance of VkPipelineVertexInputDivisorStateCreateInfoEXT", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineVertexInputStateCreateInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineVertexInputStateCreateInfo-flags-zerobitmask", - "text": " flags must be 0" + "text": "flags must be 0", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineVertexInputStateCreateInfo-pVertexBindingDescriptions-parameter", - "text": " If vertexBindingDescriptionCount is not 0, pVertexBindingDescriptions must be a valid pointer to an array of vertexBindingDescriptionCount valid VkVertexInputBindingDescription structures" + "text": "If vertexBindingDescriptionCount is not 0, pVertexBindingDescriptions must be a valid pointer to an array of vertexBindingDescriptionCount valid VkVertexInputBindingDescription structures", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineVertexInputStateCreateInfo-pVertexAttributeDescriptions-parameter", - "text": " If vertexAttributeDescriptionCount is not 0, pVertexAttributeDescriptions must be a valid pointer to an array of vertexAttributeDescriptionCount valid VkVertexInputAttributeDescription structures" + "text": "If vertexAttributeDescriptionCount is not 0, pVertexAttributeDescriptions must be a valid pointer to an array of vertexAttributeDescriptionCount valid VkVertexInputAttributeDescription structures", + "page": "vkspec" } ] }, @@ -53882,19 +70143,23 @@ "core": [ { "vuid": "VUID-VkVertexInputBindingDescription-binding-00618", - "text": " binding must be less than VkPhysicalDeviceLimits::maxVertexInputBindings" + "text": "binding must be less than VkPhysicalDeviceLimits::maxVertexInputBindings", + "page": "vkspec" }, { "vuid": "VUID-VkVertexInputBindingDescription-stride-00619", - "text": " stride must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputBindingStride" + "text": "stride must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputBindingStride", + "page": "vkspec" }, { "vuid": "VUID-VkVertexInputBindingDescription-stride-04456", - "text": " If the VK_KHR_portability_subset extension is enabled, stride must be a multiple of, and at least as large as, VkPhysicalDevicePortabilitySubsetPropertiesKHR::minVertexInputBindingStrideAlignment" + "text": "If the VK_KHR_portability_subset extension is enabled, stride must be a multiple of, and at least as large as, VkPhysicalDevicePortabilitySubsetPropertiesKHR::minVertexInputBindingStrideAlignment", + "page": "vkspec" }, { "vuid": "VUID-VkVertexInputBindingDescription-inputRate-parameter", - "text": " inputRate must be a valid VkVertexInputRate value" + "text": "inputRate must be a valid VkVertexInputRate value", + "page": "vkspec" } ] }, @@ -53902,27 +70167,33 @@ "core": [ { "vuid": "VUID-VkVertexInputAttributeDescription-location-00620", - "text": " location must be less than VkPhysicalDeviceLimits::maxVertexInputAttributes" + "text": "location must be less than VkPhysicalDeviceLimits::maxVertexInputAttributes", + "page": "vkspec" }, { "vuid": "VUID-VkVertexInputAttributeDescription-binding-00621", - "text": " binding must be less than VkPhysicalDeviceLimits::maxVertexInputBindings" + "text": "binding must be less than VkPhysicalDeviceLimits::maxVertexInputBindings", + "page": "vkspec" }, { "vuid": "VUID-VkVertexInputAttributeDescription-offset-00622", - "text": " offset must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputAttributeOffset" + "text": "offset must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputAttributeOffset", + "page": "vkspec" }, { "vuid": "VUID-VkVertexInputAttributeDescription-format-00623", - "text": " The format features of format must contain VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + "text": "The format features of format must contain VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkVertexInputAttributeDescription-vertexAttributeAccessBeyondStride-04457", - "text": " If the VK_KHR_portability_subset extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::vertexAttributeAccessBeyondStride is VK_FALSE, the sum of offset plus the size of the vertex attribute data described by format must not be greater than stride in the VkVertexInputBindingDescription referenced in binding" + "text": "If the VK_KHR_portability_subset extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::vertexAttributeAccessBeyondStride is VK_FALSE, the sum of offset plus the size of the vertex attribute data described by format must not be greater than stride in the VkVertexInputBindingDescription referenced in binding", + "page": "vkspec" }, { "vuid": "VUID-VkVertexInputAttributeDescription-format-parameter", - "text": " format must be a valid VkFormat value" + "text": "format must be a valid VkFormat value", + "page": "vkspec" } ] }, @@ -53930,51 +70201,63 @@ "core": [ { "vuid": "VUID-vkCmdSetVertexInputEXT-None-08546", - "text": " Either the vertexInputDynamicState feature or the shaderObject feature or both must be enabled" + "text": "Either the vertexInputDynamicState feature or the shaderObject feature or both must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetVertexInputEXT-vertexBindingDescriptionCount-04791", - "text": " vertexBindingDescriptionCount must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputBindings" + "text": "vertexBindingDescriptionCount must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputBindings", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetVertexInputEXT-vertexAttributeDescriptionCount-04792", - "text": " vertexAttributeDescriptionCount must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputAttributes" + "text": "vertexAttributeDescriptionCount must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputAttributes", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetVertexInputEXT-binding-04793", - "text": " For every binding specified by each element of pVertexAttributeDescriptions, a VkVertexInputBindingDescription2EXT must exist in pVertexBindingDescriptions with the same value of binding" + "text": "For every binding specified by each element of pVertexAttributeDescriptions, a VkVertexInputBindingDescription2EXT must exist in pVertexBindingDescriptions with the same value of binding", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetVertexInputEXT-pVertexBindingDescriptions-04794", - "text": " All elements of pVertexBindingDescriptions must describe distinct binding numbers" + "text": "All elements of pVertexBindingDescriptions must describe distinct binding numbers", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetVertexInputEXT-pVertexAttributeDescriptions-04795", - "text": " All elements of pVertexAttributeDescriptions must describe distinct attribute locations" + "text": "All elements of pVertexAttributeDescriptions must describe distinct attribute locations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetVertexInputEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetVertexInputEXT-pVertexBindingDescriptions-parameter", - "text": " If vertexBindingDescriptionCount is not 0, pVertexBindingDescriptions must be a valid pointer to an array of vertexBindingDescriptionCount valid VkVertexInputBindingDescription2EXT structures" + "text": "If vertexBindingDescriptionCount is not 0, pVertexBindingDescriptions must be a valid pointer to an array of vertexBindingDescriptionCount valid VkVertexInputBindingDescription2EXT structures", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetVertexInputEXT-pVertexAttributeDescriptions-parameter", - "text": " If vertexAttributeDescriptionCount is not 0, pVertexAttributeDescriptions must be a valid pointer to an array of vertexAttributeDescriptionCount valid VkVertexInputAttributeDescription2EXT structures" + "text": "If vertexAttributeDescriptionCount is not 0, pVertexAttributeDescriptions must be a valid pointer to an array of vertexAttributeDescriptionCount valid VkVertexInputAttributeDescription2EXT structures", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetVertexInputEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetVertexInputEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetVertexInputEXT-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -53982,35 +70265,43 @@ "core": [ { "vuid": "VUID-VkVertexInputBindingDescription2EXT-binding-04796", - "text": " binding must be less than VkPhysicalDeviceLimits::maxVertexInputBindings" + "text": "binding must be less than VkPhysicalDeviceLimits::maxVertexInputBindings", + "page": "vkspec" }, { "vuid": "VUID-VkVertexInputBindingDescription2EXT-stride-04797", - "text": " stride must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputBindingStride" + "text": "stride must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputBindingStride", + "page": "vkspec" }, { "vuid": "VUID-VkVertexInputBindingDescription2EXT-divisor-04798", - "text": " If the vertexAttributeInstanceRateZeroDivisor feature is not enabled, divisor must not be 0" + "text": "If the vertexAttributeInstanceRateZeroDivisor feature is not enabled, divisor must not be 0", + "page": "vkspec" }, { "vuid": "VUID-VkVertexInputBindingDescription2EXT-divisor-04799", - "text": " If the vertexAttributeInstanceRateDivisor feature is not enabled, divisor must be 1" + "text": "If the vertexAttributeInstanceRateDivisor feature is not enabled, divisor must be 1", + "page": "vkspec" }, { "vuid": "VUID-VkVertexInputBindingDescription2EXT-divisor-06226", - "text": " divisor must be a value between 0 and VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT::maxVertexAttribDivisor, inclusive" + "text": "divisor must be a value between 0 and VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT::maxVertexAttribDivisor, inclusive", + "page": "vkspec" }, { "vuid": "VUID-VkVertexInputBindingDescription2EXT-divisor-06227", - "text": " If divisor is not 1 then inputRate must be of type VK_VERTEX_INPUT_RATE_INSTANCE" + "text": "If divisor is not 1 then inputRate must be of type VK_VERTEX_INPUT_RATE_INSTANCE", + "page": "vkspec" }, { "vuid": "VUID-VkVertexInputBindingDescription2EXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkVertexInputBindingDescription2EXT-inputRate-parameter", - "text": " inputRate must be a valid VkVertexInputRate value" + "text": "inputRate must be a valid VkVertexInputRate value", + "page": "vkspec" } ] }, @@ -54018,31 +70309,38 @@ "core": [ { "vuid": "VUID-VkVertexInputAttributeDescription2EXT-location-06228", - "text": " location must be less than VkPhysicalDeviceLimits::maxVertexInputAttributes" + "text": "location must be less than VkPhysicalDeviceLimits::maxVertexInputAttributes", + "page": "vkspec" }, { "vuid": "VUID-VkVertexInputAttributeDescription2EXT-binding-06229", - "text": " binding must be less than VkPhysicalDeviceLimits::maxVertexInputBindings" + "text": "binding must be less than VkPhysicalDeviceLimits::maxVertexInputBindings", + "page": "vkspec" }, { "vuid": "VUID-VkVertexInputAttributeDescription2EXT-offset-06230", - "text": " offset must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputAttributeOffset" + "text": "offset must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputAttributeOffset", + "page": "vkspec" }, { "vuid": "VUID-VkVertexInputAttributeDescription2EXT-format-04805", - "text": " The format features of format must contain VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + "text": "The format features of format must contain VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkVertexInputAttributeDescription2EXT-vertexAttributeAccessBeyondStride-04806", - "text": " If the VK_KHR_portability_subset extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::vertexAttributeAccessBeyondStride is VK_FALSE, the sum of offset plus the size of the vertex attribute data described by format must not be greater than stride in the VkVertexInputBindingDescription2EXT referenced in binding" + "text": "If the VK_KHR_portability_subset extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::vertexAttributeAccessBeyondStride is VK_FALSE, the sum of offset plus the size of the vertex attribute data described by format must not be greater than stride in the VkVertexInputBindingDescription2EXT referenced in binding", + "page": "vkspec" }, { "vuid": "VUID-VkVertexInputAttributeDescription2EXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkVertexInputAttributeDescription2EXT-format-parameter", - "text": " format must be a valid VkFormat value" + "text": "format must be a valid VkFormat value", + "page": "vkspec" } ] }, @@ -54050,63 +70348,78 @@ "core": [ { "vuid": "VUID-vkCmdBindVertexBuffers-firstBinding-00624", - "text": " firstBinding must be less than VkPhysicalDeviceLimits::maxVertexInputBindings" + "text": "firstBinding must be less than VkPhysicalDeviceLimits::maxVertexInputBindings", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindVertexBuffers-firstBinding-00625", - "text": " The sum of firstBinding and bindingCount must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputBindings" + "text": "The sum of firstBinding and bindingCount must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputBindings", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindVertexBuffers-pOffsets-00626", - "text": " All elements of pOffsets must be less than the size of the corresponding element in pBuffers" + "text": "All elements of pOffsets must be less than the size of the corresponding element in pBuffers", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindVertexBuffers-pBuffers-00627", - "text": " All elements of pBuffers must have been created with the VK_BUFFER_USAGE_VERTEX_BUFFER_BIT flag" + "text": "All elements of pBuffers must have been created with the VK_BUFFER_USAGE_VERTEX_BUFFER_BIT flag", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindVertexBuffers-pBuffers-00628", - "text": " Each element of pBuffers that is non-sparse must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "Each element of pBuffers that is non-sparse must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindVertexBuffers-pBuffers-04001", - "text": " If the nullDescriptor feature is not enabled, all elements of pBuffers must not be VK_NULL_HANDLE" + "text": "If the nullDescriptor feature is not enabled, all elements of pBuffers must not be VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindVertexBuffers-pBuffers-04002", - "text": " If an element of pBuffers is VK_NULL_HANDLE, then the corresponding element of pOffsets must be zero" + "text": "If an element of pBuffers is VK_NULL_HANDLE, then the corresponding element of pOffsets must be zero", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindVertexBuffers-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindVertexBuffers-pBuffers-parameter", - "text": " pBuffers must be a valid pointer to an array of bindingCount valid or VK_NULL_HANDLE VkBuffer handles" + "text": "pBuffers must be a valid pointer to an array of bindingCount valid or VK_NULL_HANDLE VkBuffer handles", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindVertexBuffers-pOffsets-parameter", - "text": " pOffsets must be a valid pointer to an array of bindingCount VkDeviceSize values" + "text": "pOffsets must be a valid pointer to an array of bindingCount VkDeviceSize values", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindVertexBuffers-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindVertexBuffers-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindVertexBuffers-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindVertexBuffers-bindingCount-arraylength", - "text": " bindingCount must be greater than 0" + "text": "bindingCount must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindVertexBuffers-commonparent", - "text": " Both of commandBuffer, and the elements of pBuffers that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of commandBuffer, and the elements of pBuffers that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -54114,87 +70427,103 @@ "core": [ { "vuid": "VUID-vkCmdBindVertexBuffers2-firstBinding-03355", - "text": " firstBinding must be less than VkPhysicalDeviceLimits::maxVertexInputBindings" + "text": "firstBinding must be less than VkPhysicalDeviceLimits::maxVertexInputBindings", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindVertexBuffers2-firstBinding-03356", - "text": " The sum of firstBinding and bindingCount must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputBindings" + "text": "The sum of firstBinding and bindingCount must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputBindings", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindVertexBuffers2-pOffsets-03357", - "text": " All elements of pOffsets must be less than the size of the corresponding element in pBuffers" + "text": "If pSizes is not NULL, all elements of pOffsets must be less than the size of the corresponding element in pBuffers", + "page": "vkspec" }, { - "vuid": "VUID-vkCmdBindVertexBuffers2-pSizes-08769", - "text": " If pSizes is not NULL, all elements of pSizes that are not VK_WHOLE_SIZE must have the corresponding elements in pOffsets plus pSizes be less than or equal to the size of the corresponding element in pBuffers" - }, - { - "vuid": "VUID-vkCmdBindVertexBuffers2-pSizes-08770", - "text": " If pSizes is not NULL, all elements of pSizes that are VK_WHOLE_SIZE must have the corresponding element in pOffsets be less than the size of the corresponding element in pBuffers" + "vuid": "VUID-vkCmdBindVertexBuffers2-pSizes-03358", + "text": "If pSizes is not NULL, all elements of pOffsets plus pSizes , where pSizes is not VK_WHOLE_SIZE, must be less than or equal to the size of the corresponding element in pBuffers", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindVertexBuffers2-pBuffers-03359", - "text": " All elements of pBuffers must have been created with the VK_BUFFER_USAGE_VERTEX_BUFFER_BIT flag" + "text": "All elements of pBuffers must have been created with the VK_BUFFER_USAGE_VERTEX_BUFFER_BIT flag", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindVertexBuffers2-pBuffers-03360", - "text": " Each element of pBuffers that is non-sparse must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "Each element of pBuffers that is non-sparse must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindVertexBuffers2-pBuffers-04111", - "text": " If the nullDescriptor feature is not enabled, all elements of pBuffers must not be VK_NULL_HANDLE" + "text": "If the nullDescriptor feature is not enabled, all elements of pBuffers must not be VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindVertexBuffers2-pBuffers-04112", - "text": " If an element of pBuffers is VK_NULL_HANDLE, then the corresponding element of pOffsets must be zero" + "text": "If an element of pBuffers is VK_NULL_HANDLE, then the corresponding element of pOffsets must be zero", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindVertexBuffers2-pStrides-03362", - "text": " If pStrides is not NULL each element of pStrides must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputBindingStride" + "text": "If pStrides is not NULL each element of pStrides must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputBindingStride", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindVertexBuffers2-pStrides-06209", - "text": " If pStrides is not NULL each element of pStrides must be either 0 or greater than or equal to the maximum extent of all vertex input attributes fetched from the corresponding binding, where the extent is calculated as the VkVertexInputAttributeDescription::offset plus VkVertexInputAttributeDescription::format size" + "text": "If pStrides is not NULL each element of pStrides must be either 0 or greater than or equal to the maximum extent of all vertex input attributes fetched from the corresponding binding, where the extent is calculated as the VkVertexInputAttributeDescription::offset plus VkVertexInputAttributeDescription::format size", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindVertexBuffers2-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindVertexBuffers2-pBuffers-parameter", - "text": " pBuffers must be a valid pointer to an array of bindingCount valid or VK_NULL_HANDLE VkBuffer handles" + "text": "pBuffers must be a valid pointer to an array of bindingCount valid or VK_NULL_HANDLE VkBuffer handles", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindVertexBuffers2-pOffsets-parameter", - "text": " pOffsets must be a valid pointer to an array of bindingCount VkDeviceSize values" + "text": "pOffsets must be a valid pointer to an array of bindingCount VkDeviceSize values", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindVertexBuffers2-pSizes-parameter", - "text": " If pSizes is not NULL, pSizes must be a valid pointer to an array of bindingCount VkDeviceSize values" + "text": "If pSizes is not NULL, pSizes must be a valid pointer to an array of bindingCount VkDeviceSize values", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindVertexBuffers2-pStrides-parameter", - "text": " If pStrides is not NULL, pStrides must be a valid pointer to an array of bindingCount VkDeviceSize values" + "text": "If pStrides is not NULL, pStrides must be a valid pointer to an array of bindingCount VkDeviceSize values", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindVertexBuffers2-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindVertexBuffers2-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindVertexBuffers2-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindVertexBuffers2-bindingCount-arraylength", - "text": " If any of pSizes, or pStrides are not NULL, bindingCount must be greater than 0" + "text": "If any of pSizes, or pStrides are not NULL, bindingCount must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindVertexBuffers2-commonparent", - "text": " Both of commandBuffer, and the elements of pBuffers that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of commandBuffer, and the elements of pBuffers that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -54202,15 +70531,18 @@ "core": [ { "vuid": "VUID-VkPipelineVertexInputDivisorStateCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineVertexInputDivisorStateCreateInfoEXT-pVertexBindingDivisors-parameter", - "text": " pVertexBindingDivisors must be a valid pointer to an array of vertexBindingDivisorCount VkVertexInputBindingDivisorDescriptionEXT structures" + "text": "pVertexBindingDivisors must be a valid pointer to an array of vertexBindingDivisorCount VkVertexInputBindingDivisorDescriptionEXT structures", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineVertexInputDivisorStateCreateInfoEXT-vertexBindingDivisorCount-arraylength", - "text": " vertexBindingDivisorCount must be greater than 0" + "text": "vertexBindingDivisorCount must be greater than 0", + "page": "vkspec" } ] }, @@ -54218,23 +70550,28 @@ "core": [ { "vuid": "VUID-VkVertexInputBindingDivisorDescriptionEXT-binding-01869", - "text": " binding must be less than VkPhysicalDeviceLimits::maxVertexInputBindings" + "text": "binding must be less than VkPhysicalDeviceLimits::maxVertexInputBindings", + "page": "vkspec" }, { "vuid": "VUID-VkVertexInputBindingDivisorDescriptionEXT-vertexAttributeInstanceRateZeroDivisor-02228", - "text": " If the vertexAttributeInstanceRateZeroDivisor feature is not enabled, divisor must not be 0" + "text": "If the vertexAttributeInstanceRateZeroDivisor feature is not enabled, divisor must not be 0", + "page": "vkspec" }, { "vuid": "VUID-VkVertexInputBindingDivisorDescriptionEXT-vertexAttributeInstanceRateDivisor-02229", - "text": " If the vertexAttributeInstanceRateDivisor feature is not enabled, divisor must be 1" + "text": "If the vertexAttributeInstanceRateDivisor feature is not enabled, divisor must be 1", + "page": "vkspec" }, { "vuid": "VUID-VkVertexInputBindingDivisorDescriptionEXT-divisor-01870", - "text": " divisor must be a value between 0 and VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT::maxVertexAttribDivisor, inclusive" + "text": "divisor must be a value between 0 and VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT::maxVertexAttribDivisor, inclusive", + "page": "vkspec" }, { "vuid": "VUID-VkVertexInputBindingDivisorDescriptionEXT-inputRate-01871", - "text": " VkVertexInputBindingDescription::inputRate must be of type VK_VERTEX_INPUT_RATE_INSTANCE for this binding" + "text": "VkVertexInputBindingDescription::inputRate must be of type VK_VERTEX_INPUT_RATE_INSTANCE for this binding", + "page": "vkspec" } ] }, @@ -54242,23 +70579,28 @@ "core": [ { "vuid": "VUID-VkPipelineTessellationStateCreateInfo-patchControlPoints-01214", - "text": " patchControlPoints must be greater than zero and less than or equal to VkPhysicalDeviceLimits::maxTessellationPatchSize" + "text": "patchControlPoints must be greater than zero and less than or equal to VkPhysicalDeviceLimits::maxTessellationPatchSize", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineTessellationStateCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineTessellationStateCreateInfo-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkPipelineTessellationDomainOriginStateCreateInfo" + "text": "pNext must be NULL or a pointer to a valid instance of VkPipelineTessellationDomainOriginStateCreateInfo", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineTessellationStateCreateInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineTessellationStateCreateInfo-flags-zerobitmask", - "text": " flags must be 0" + "text": "flags must be 0", + "page": "vkspec" } ] }, @@ -54266,11 +70608,13 @@ "core": [ { "vuid": "VUID-VkPipelineTessellationDomainOriginStateCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineTessellationDomainOriginStateCreateInfo-domainOrigin-parameter", - "text": " domainOrigin must be a valid VkTessellationDomainOrigin value" + "text": "domainOrigin must be a valid VkTessellationDomainOrigin value", + "page": "vkspec" } ] }, @@ -54278,27 +70622,33 @@ "core": [ { "vuid": "VUID-vkCmdSetTessellationDomainOriginEXT-None-08576", - "text": " Either the extendedDynamicState3TessellationDomainOrigin feature or the shaderObject feature or both must be enabled" + "text": "Either the extendedDynamicState3TessellationDomainOrigin feature or the shaderObject feature or both must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetTessellationDomainOriginEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetTessellationDomainOriginEXT-domainOrigin-parameter", - "text": " domainOrigin must be a valid VkTessellationDomainOrigin value" + "text": "domainOrigin must be a valid VkTessellationDomainOrigin value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetTessellationDomainOriginEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetTessellationDomainOriginEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetTessellationDomainOriginEXT-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -54306,79 +70656,98 @@ "core": [ { "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-transformFeedback-02355", - "text": " VkPhysicalDeviceTransformFeedbackFeaturesEXT::transformFeedback must be enabled" + "text": "VkPhysicalDeviceTransformFeedbackFeaturesEXT::transformFeedback must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-firstBinding-02356", - "text": " firstBinding must be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBuffers" + "text": "firstBinding must be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBuffers", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-firstBinding-02357", - "text": " The sum of firstBinding and bindingCount must be less than or equal to VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBuffers" + "text": "The sum of firstBinding and bindingCount must be less than or equal to VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBuffers", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-pOffsets-02358", - "text": " All elements of pOffsets must be less than the size of the corresponding element in pBuffers" + "text": "All elements of pOffsets must be less than the size of the corresponding element in pBuffers", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-pOffsets-02359", - "text": " All elements of pOffsets must be a multiple of 4" + "text": "All elements of pOffsets must be a multiple of 4", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-pBuffers-02360", - "text": " All elements of pBuffers must have been created with the VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT flag" + "text": "All elements of pBuffers must have been created with the VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT flag", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-pSize-02361", - "text": " If the optional pSize array is specified, each element of pSizes must either be VK_WHOLE_SIZE, or be less than or equal to VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBufferSize" + "text": "If the optional pSize array is specified, each element of pSizes must either be VK_WHOLE_SIZE, or be less than or equal to VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBufferSize", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-pSizes-02362", - "text": " All elements of pSizes must be either VK_WHOLE_SIZE, or less than or equal to the size of the corresponding buffer in pBuffers" + "text": "All elements of pSizes must be either VK_WHOLE_SIZE, or less than or equal to the size of the corresponding buffer in pBuffers", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-pOffsets-02363", - "text": " All elements of pOffsets plus pSizes, where the pSizes, element is not VK_WHOLE_SIZE, must be less than or equal to the size of the corresponding buffer in pBuffers" + "text": "All elements of pOffsets plus pSizes, where the pSizes, element is not VK_WHOLE_SIZE, must be less than or equal to the size of the corresponding buffer in pBuffers", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-pBuffers-02364", - "text": " Each element of pBuffers that is non-sparse must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "Each element of pBuffers that is non-sparse must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-None-02365", - "text": " Transform feedback must not be active when the vkCmdBindTransformFeedbackBuffersEXT command is recorded" + "text": "Transform feedback must not be active when the vkCmdBindTransformFeedbackBuffersEXT command is recorded", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-pBuffers-parameter", - "text": " pBuffers must be a valid pointer to an array of bindingCount valid VkBuffer handles" + "text": "pBuffers must be a valid pointer to an array of bindingCount valid VkBuffer handles", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-pOffsets-parameter", - "text": " pOffsets must be a valid pointer to an array of bindingCount VkDeviceSize values" + "text": "pOffsets must be a valid pointer to an array of bindingCount VkDeviceSize values", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-bindingCount-arraylength", - "text": " bindingCount must be greater than 0" + "text": "bindingCount must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-commonparent", - "text": " Both of commandBuffer, and the elements of pBuffers must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of commandBuffer, and the elements of pBuffers must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -54386,75 +70755,93 @@ "core": [ { "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-transformFeedback-02366", - "text": " VkPhysicalDeviceTransformFeedbackFeaturesEXT::transformFeedback must be enabled" + "text": "VkPhysicalDeviceTransformFeedbackFeaturesEXT::transformFeedback must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-None-02367", - "text": " Transform feedback must not be active" + "text": "Transform feedback must not be active", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-firstCounterBuffer-02368", - "text": " firstCounterBuffer must be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBuffers" + "text": "firstCounterBuffer must be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBuffers", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-firstCounterBuffer-02369", - "text": " The sum of firstCounterBuffer and counterBufferCount must be less than or equal to VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBuffers" + "text": "The sum of firstCounterBuffer and counterBufferCount must be less than or equal to VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBuffers", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-counterBufferCount-02607", - "text": " If counterBufferCount is not 0, and pCounterBuffers is not NULL, pCounterBuffers must be a valid pointer to an array of counterBufferCount VkBuffer handles that are either valid or VK_NULL_HANDLE" + "text": "If counterBufferCount is not 0, and pCounterBuffers is not NULL, pCounterBuffers must be a valid pointer to an array of counterBufferCount VkBuffer handles that are either valid or VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-pCounterBufferOffsets-02370", - "text": " For each buffer handle in the array, if it is not VK_NULL_HANDLE it must reference a buffer large enough to hold 4 bytes at the corresponding offset from the pCounterBufferOffsets array" + "text": "For each buffer handle in the array, if it is not VK_NULL_HANDLE it must reference a buffer large enough to hold 4 bytes at the corresponding offset from the pCounterBufferOffsets array", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-pCounterBuffer-02371", - "text": " If pCounterBuffer is NULL, then pCounterBufferOffsets must also be NULL" + "text": "If pCounterBuffer is NULL, then pCounterBufferOffsets must also be NULL", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-pCounterBuffers-02372", - "text": " For each buffer handle in the pCounterBuffers array that is not VK_NULL_HANDLE it must have been created with a usage value containing VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT" + "text": "For each buffer handle in the pCounterBuffers array that is not VK_NULL_HANDLE it must have been created with a usage value containing VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-None-06233", - "text": " A valid graphics pipeline must be bound to VK_PIPELINE_BIND_POINT_GRAPHICS" + "text": "A valid graphics pipeline must be bound to VK_PIPELINE_BIND_POINT_GRAPHICS", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-None-04128", - "text": " The last pre-rasterization shader stage of the bound graphics pipeline must have been declared with the Xfb execution mode" + "text": "The last pre-rasterization shader stage of the bound graphics pipeline must have been declared with the Xfb execution mode", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-None-02373", - "text": " Transform feedback must not be made active in a render pass instance with multiview enabled" + "text": "Transform feedback must not be made active in a render pass instance with multiview enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-pCounterBufferOffsets-parameter", - "text": " If counterBufferCount is not 0, and pCounterBufferOffsets is not NULL, pCounterBufferOffsets must be a valid pointer to an array of counterBufferCount VkDeviceSize values" + "text": "If counterBufferCount is not 0, and pCounterBufferOffsets is not NULL, pCounterBufferOffsets must be a valid pointer to an array of counterBufferCount VkDeviceSize values", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-renderpass", - "text": " This command must only be called inside of a render pass instance" + "text": "This command must only be called inside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-commonparent", - "text": " Both of commandBuffer, and the elements of pCounterBuffers that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of commandBuffer, and the elements of pCounterBuffers that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -54462,63 +70849,78 @@ "core": [ { "vuid": "VUID-vkCmdEndTransformFeedbackEXT-transformFeedback-02374", - "text": " VkPhysicalDeviceTransformFeedbackFeaturesEXT::transformFeedback must be enabled" + "text": "VkPhysicalDeviceTransformFeedbackFeaturesEXT::transformFeedback must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndTransformFeedbackEXT-None-02375", - "text": " Transform feedback must be active" + "text": "Transform feedback must be active", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndTransformFeedbackEXT-firstCounterBuffer-02376", - "text": " firstCounterBuffer must be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBuffers" + "text": "firstCounterBuffer must be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBuffers", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndTransformFeedbackEXT-firstCounterBuffer-02377", - "text": " The sum of firstCounterBuffer and counterBufferCount must be less than or equal to VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBuffers" + "text": "The sum of firstCounterBuffer and counterBufferCount must be less than or equal to VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBuffers", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndTransformFeedbackEXT-counterBufferCount-02608", - "text": " If counterBufferCount is not 0, and pCounterBuffers is not NULL, pCounterBuffers must be a valid pointer to an array of counterBufferCount VkBuffer handles that are either valid or VK_NULL_HANDLE" + "text": "If counterBufferCount is not 0, and pCounterBuffers is not NULL, pCounterBuffers must be a valid pointer to an array of counterBufferCount VkBuffer handles that are either valid or VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndTransformFeedbackEXT-pCounterBufferOffsets-02378", - "text": " For each buffer handle in the array, if it is not VK_NULL_HANDLE it must reference a buffer large enough to hold 4 bytes at the corresponding offset from the pCounterBufferOffsets array" + "text": "For each buffer handle in the array, if it is not VK_NULL_HANDLE it must reference a buffer large enough to hold 4 bytes at the corresponding offset from the pCounterBufferOffsets array", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndTransformFeedbackEXT-pCounterBuffer-02379", - "text": " If pCounterBuffer is NULL, then pCounterBufferOffsets must also be NULL" + "text": "If pCounterBuffer is NULL, then pCounterBufferOffsets must also be NULL", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndTransformFeedbackEXT-pCounterBuffers-02380", - "text": " For each buffer handle in the pCounterBuffers array that is not VK_NULL_HANDLE it must have been created with a usage value containing VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT" + "text": "For each buffer handle in the pCounterBuffers array that is not VK_NULL_HANDLE it must have been created with a usage value containing VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndTransformFeedbackEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndTransformFeedbackEXT-pCounterBufferOffsets-parameter", - "text": " If counterBufferCount is not 0, and pCounterBufferOffsets is not NULL, pCounterBufferOffsets must be a valid pointer to an array of counterBufferCount VkDeviceSize values" + "text": "If counterBufferCount is not 0, and pCounterBufferOffsets is not NULL, pCounterBufferOffsets must be a valid pointer to an array of counterBufferCount VkDeviceSize values", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndTransformFeedbackEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndTransformFeedbackEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndTransformFeedbackEXT-renderpass", - "text": " This command must only be called inside of a render pass instance" + "text": "This command must only be called inside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndTransformFeedbackEXT-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndTransformFeedbackEXT-commonparent", - "text": " Both of commandBuffer, and the elements of pCounterBuffers that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of commandBuffer, and the elements of pCounterBuffers that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -54526,23 +70928,28 @@ "core": [ { "vuid": "VUID-VkPipelineViewportSwizzleStateCreateInfoNV-viewportCount-01215", - "text": " viewportCount must be greater than or equal to the viewportCount set in VkPipelineViewportStateCreateInfo" + "text": "viewportCount must be greater than or equal to the viewportCount set in VkPipelineViewportStateCreateInfo", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineViewportSwizzleStateCreateInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV" + "text": "sType must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineViewportSwizzleStateCreateInfoNV-flags-zerobitmask", - "text": " flags must be 0" + "text": "flags must be 0", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineViewportSwizzleStateCreateInfoNV-pViewportSwizzles-parameter", - "text": " pViewportSwizzles must be a valid pointer to an array of viewportCount valid VkViewportSwizzleNV structures" + "text": "pViewportSwizzles must be a valid pointer to an array of viewportCount valid VkViewportSwizzleNV structures", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineViewportSwizzleStateCreateInfoNV-viewportCount-arraylength", - "text": " viewportCount must be greater than 0" + "text": "viewportCount must be greater than 0", + "page": "vkspec" } ] }, @@ -54550,31 +70957,38 @@ "core": [ { "vuid": "VUID-vkCmdSetViewportSwizzleNV-None-08578", - "text": " Either the extendedDynamicState3ViewportSwizzle feature or the shaderObject feature or both must be enabled" + "text": "Either the extendedDynamicState3ViewportSwizzle feature or the shaderObject feature or both must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetViewportSwizzleNV-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetViewportSwizzleNV-pViewportSwizzles-parameter", - "text": " pViewportSwizzles must be a valid pointer to an array of viewportCount valid VkViewportSwizzleNV structures" + "text": "pViewportSwizzles must be a valid pointer to an array of viewportCount valid VkViewportSwizzleNV structures", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetViewportSwizzleNV-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetViewportSwizzleNV-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetViewportSwizzleNV-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetViewportSwizzleNV-viewportCount-arraylength", - "text": " viewportCount must be greater than 0" + "text": "viewportCount must be greater than 0", + "page": "vkspec" } ] }, @@ -54582,19 +70996,23 @@ "core": [ { "vuid": "VUID-VkViewportSwizzleNV-x-parameter", - "text": " x must be a valid VkViewportCoordinateSwizzleNV value" + "text": "x must be a valid VkViewportCoordinateSwizzleNV value", + "page": "vkspec" }, { "vuid": "VUID-VkViewportSwizzleNV-y-parameter", - "text": " y must be a valid VkViewportCoordinateSwizzleNV value" + "text": "y must be a valid VkViewportCoordinateSwizzleNV value", + "page": "vkspec" }, { "vuid": "VUID-VkViewportSwizzleNV-z-parameter", - "text": " z must be a valid VkViewportCoordinateSwizzleNV value" + "text": "z must be a valid VkViewportCoordinateSwizzleNV value", + "page": "vkspec" }, { "vuid": "VUID-VkViewportSwizzleNV-w-parameter", - "text": " w must be a valid VkViewportCoordinateSwizzleNV value" + "text": "w must be a valid VkViewportCoordinateSwizzleNV value", + "page": "vkspec" } ] }, @@ -54602,15 +71020,18 @@ "core": [ { "vuid": "VUID-VkPipelineRasterizationProvokingVertexStateCreateInfoEXT-provokingVertexMode-04883", - "text": " If provokingVertexMode is VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT, then the provokingVertexLast feature must be enabled" + "text": "If provokingVertexMode is VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT, then the provokingVertexLast feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineRasterizationProvokingVertexStateCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineRasterizationProvokingVertexStateCreateInfoEXT-provokingVertexMode-parameter", - "text": " provokingVertexMode must be a valid VkProvokingVertexModeEXT value" + "text": "provokingVertexMode must be a valid VkProvokingVertexModeEXT value", + "page": "vkspec" } ] }, @@ -54618,31 +71039,38 @@ "core": [ { "vuid": "VUID-vkCmdSetProvokingVertexModeEXT-None-08580", - "text": " Either the extendedDynamicState3ProvokingVertexMode feature or the shaderObject feature or both must be enabled" + "text": "Either the extendedDynamicState3ProvokingVertexMode feature or the shaderObject feature or both must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetProvokingVertexModeEXT-provokingVertexMode-07447", - "text": " If provokingVertexMode is VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT, then the provokingVertexLast feature must be enabled" + "text": "If provokingVertexMode is VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT, then the provokingVertexLast feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetProvokingVertexModeEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetProvokingVertexModeEXT-provokingVertexMode-parameter", - "text": " provokingVertexMode must be a valid VkProvokingVertexModeEXT value" + "text": "provokingVertexMode must be a valid VkProvokingVertexModeEXT value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetProvokingVertexModeEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetProvokingVertexModeEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetProvokingVertexModeEXT-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -54650,27 +71078,33 @@ "core": [ { "vuid": "VUID-vkCmdSetDepthClampEnableEXT-None-08582", - "text": " Either the extendedDynamicState3DepthClampEnable feature or the shaderObject feature or both must be enabled" + "text": "Either the extendedDynamicState3DepthClampEnable feature or the shaderObject feature or both must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDepthClampEnableEXT-depthClamp-07449", - "text": " If the depthClamp feature is not enabled, depthClampEnable must be VK_FALSE" + "text": "If the depthClamp feature is not enabled, depthClampEnable must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDepthClampEnableEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDepthClampEnableEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDepthClampEnableEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDepthClampEnableEXT-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -54678,27 +71112,33 @@ "core": [ { "vuid": "VUID-vkCmdSetDepthClipEnableEXT-None-08584", - "text": " Either the extendedDynamicState3DepthClipEnable feature or the shaderObject feature or both must be enabled" + "text": "Either the extendedDynamicState3DepthClipEnable feature or the shaderObject feature or both must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDepthClipEnableEXT-depthClipEnable-07451", - "text": " The depthClipEnable feature must be enabled" + "text": "The depthClipEnable feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDepthClipEnableEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDepthClipEnableEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDepthClipEnableEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDepthClipEnableEXT-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -54706,11 +71146,13 @@ "core": [ { "vuid": "VUID-VkPipelineViewportDepthClipControlCreateInfoEXT-negativeOneToOne-06470", - "text": " If depthClipControl is not enabled, negativeOneToOne must be VK_FALSE" + "text": "If depthClipControl is not enabled, negativeOneToOne must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineViewportDepthClipControlCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT", + "page": "vkspec" } ] }, @@ -54718,27 +71160,33 @@ "core": [ { "vuid": "VUID-vkCmdSetDepthClipNegativeOneToOneEXT-None-08586", - "text": " Either the extendedDynamicState3DepthClipNegativeOneToOne feature or the shaderObject feature or both must be enabled" + "text": "Either the extendedDynamicState3DepthClipNegativeOneToOne feature or the shaderObject feature or both must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDepthClipNegativeOneToOneEXT-depthClipControl-07453", - "text": " The depthClipControl feature must be enabled" + "text": "The depthClipControl feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDepthClipNegativeOneToOneEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDepthClipNegativeOneToOneEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDepthClipNegativeOneToOneEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDepthClipNegativeOneToOneEXT-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -54746,11 +71194,13 @@ "core": [ { "vuid": "VUID-VkPipelineViewportWScalingStateCreateInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV" + "text": "sType must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineViewportWScalingStateCreateInfoNV-viewportCount-arraylength", - "text": " viewportCount must be greater than 0" + "text": "viewportCount must be greater than 0", + "page": "vkspec" } ] }, @@ -54758,23 +71208,28 @@ "core": [ { "vuid": "VUID-vkCmdSetViewportWScalingEnableNV-None-08594", - "text": " Either the extendedDynamicState3ViewportWScalingEnable feature or the shaderObject feature or both must be enabled" + "text": "Either the extendedDynamicState3ViewportWScalingEnable feature or the shaderObject feature or both must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetViewportWScalingEnableNV-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetViewportWScalingEnableNV-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetViewportWScalingEnableNV-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetViewportWScalingEnableNV-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -54782,31 +71237,38 @@ "core": [ { "vuid": "VUID-vkCmdSetViewportWScalingNV-firstViewport-01324", - "text": " The sum of firstViewport and viewportCount must be between 1 and VkPhysicalDeviceLimits::maxViewports, inclusive" + "text": "The sum of firstViewport and viewportCount must be between 1 and VkPhysicalDeviceLimits::maxViewports, inclusive", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetViewportWScalingNV-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetViewportWScalingNV-pViewportWScalings-parameter", - "text": " pViewportWScalings must be a valid pointer to an array of viewportCount VkViewportWScalingNV structures" + "text": "pViewportWScalings must be a valid pointer to an array of viewportCount VkViewportWScalingNV structures", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetViewportWScalingNV-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetViewportWScalingNV-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetViewportWScalingNV-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetViewportWScalingNV-viewportCount-arraylength", - "text": " viewportCount must be greater than 0" + "text": "viewportCount must be greater than 0", + "page": "vkspec" } ] }, @@ -54814,63 +71276,78 @@ "core": [ { "vuid": "VUID-VkPipelineViewportStateCreateInfo-viewportCount-01216", - "text": " If the multiViewport feature is not enabled, viewportCount must not be greater than 1" + "text": "If the multiViewport feature is not enabled, viewportCount must not be greater than 1", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineViewportStateCreateInfo-scissorCount-01217", - "text": " If the multiViewport feature is not enabled, scissorCount must not be greater than 1" + "text": "If the multiViewport feature is not enabled, scissorCount must not be greater than 1", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineViewportStateCreateInfo-viewportCount-01218", - "text": " viewportCount must be less than or equal to VkPhysicalDeviceLimits::maxViewports" + "text": "viewportCount must be less than or equal to VkPhysicalDeviceLimits::maxViewports", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineViewportStateCreateInfo-scissorCount-01219", - "text": " scissorCount must be less than or equal to VkPhysicalDeviceLimits::maxViewports" + "text": "scissorCount must be less than or equal to VkPhysicalDeviceLimits::maxViewports", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineViewportStateCreateInfo-x-02821", - "text": " The x and y members of offset member of any element of pScissors must be greater than or equal to 0" + "text": "The x and y members of offset member of any element of pScissors must be greater than or equal to 0", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineViewportStateCreateInfo-offset-02822", - "text": " Evaluation of (offset.x + extent.width) must not cause a signed integer addition overflow for any element of pScissors" + "text": "Evaluation of (offset.x + extent.width) must not cause a signed integer addition overflow for any element of pScissors", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineViewportStateCreateInfo-offset-02823", - "text": " Evaluation of (offset.y + extent.height) must not cause a signed integer addition overflow for any element of pScissors" + "text": "Evaluation of (offset.y + extent.height) must not cause a signed integer addition overflow for any element of pScissors", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineViewportStateCreateInfo-scissorCount-04134", - "text": " If scissorCount and viewportCount are both not dynamic, then scissorCount and viewportCount must be identical" + "text": "If scissorCount and viewportCount are both not dynamic, then scissorCount and viewportCount must be identical", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineViewportStateCreateInfo-viewportCount-04135", - "text": " If the graphics pipeline is being created with VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT set then viewportCount must be 0, otherwise it must be greater than 0" + "text": "If the graphics pipeline is being created with VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT set then viewportCount must be 0, otherwise it must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineViewportStateCreateInfo-scissorCount-04136", - "text": " If the graphics pipeline is being created with VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT set then scissorCount must be 0, otherwise it must be greater than 0" + "text": "If the graphics pipeline is being created with VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT set then scissorCount must be 0, otherwise it must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineViewportStateCreateInfo-viewportWScalingEnable-01726", - "text": " If the viewportWScalingEnable member of a VkPipelineViewportWScalingStateCreateInfoNV structure included in the pNext chain is VK_TRUE, the viewportCount member of the VkPipelineViewportWScalingStateCreateInfoNV structure must be greater than or equal to VkPipelineViewportStateCreateInfo::viewportCount" + "text": "If the viewportWScalingEnable member of a VkPipelineViewportWScalingStateCreateInfoNV structure included in the pNext chain is VK_TRUE, the viewportCount member of the VkPipelineViewportWScalingStateCreateInfoNV structure must be greater than or equal to VkPipelineViewportStateCreateInfo::viewportCount", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineViewportStateCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineViewportStateCreateInfo-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 VkPipelineViewportCoarseSampleOrderStateCreateInfoNV, VkPipelineViewportDepthClipControlCreateInfoEXT, VkPipelineViewportExclusiveScissorStateCreateInfoNV, VkPipelineViewportShadingRateImageStateCreateInfoNV, VkPipelineViewportSwizzleStateCreateInfoNV, or VkPipelineViewportWScalingStateCreateInfoNV" + "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 VkPipelineViewportCoarseSampleOrderStateCreateInfoNV, VkPipelineViewportDepthClipControlCreateInfoEXT, VkPipelineViewportExclusiveScissorStateCreateInfoNV, VkPipelineViewportShadingRateImageStateCreateInfoNV, VkPipelineViewportSwizzleStateCreateInfoNV, or VkPipelineViewportWScalingStateCreateInfoNV", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineViewportStateCreateInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineViewportStateCreateInfo-flags-zerobitmask", - "text": " flags must be 0" + "text": "flags must be 0", + "page": "vkspec" } ] }, @@ -54878,43 +71355,53 @@ "core": [ { "vuid": "VUID-vkCmdSetViewportWithCount-None-08971", - "text": " At least one of the following must be true:
\n\n
" + "text": "At least one of the following must be true:
\n\n
", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetViewportWithCount-viewportCount-03394", - "text": " viewportCount must be between 1 and VkPhysicalDeviceLimits::maxViewports, inclusive" + "text": "viewportCount must be between 1 and VkPhysicalDeviceLimits::maxViewports, inclusive", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetViewportWithCount-viewportCount-03395", - "text": " If the multiViewport feature is not enabled, viewportCount must be 1" + "text": "If the multiViewport feature is not enabled, viewportCount must be 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetViewportWithCount-commandBuffer-04819", - "text": " commandBuffer must not have VkCommandBufferInheritanceViewportScissorInfoNV::viewportScissor2D enabled" + "text": "commandBuffer must not have VkCommandBufferInheritanceViewportScissorInfoNV::viewportScissor2D enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetViewportWithCount-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetViewportWithCount-pViewports-parameter", - "text": " pViewports must be a valid pointer to an array of viewportCount valid VkViewport structures" + "text": "pViewports must be a valid pointer to an array of viewportCount valid VkViewport structures", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetViewportWithCount-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetViewportWithCount-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetViewportWithCount-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetViewportWithCount-viewportCount-arraylength", - "text": " viewportCount must be greater than 0" + "text": "viewportCount must be greater than 0", + "page": "vkspec" } ] }, @@ -54922,55 +71409,68 @@ "core": [ { "vuid": "VUID-vkCmdSetScissorWithCount-None-08971", - "text": " At least one of the following must be true:
\n\n
" + "text": "At least one of the following must be true:
\n\n
", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetScissorWithCount-scissorCount-03397", - "text": " scissorCount must be between 1 and VkPhysicalDeviceLimits::maxViewports, inclusive" + "text": "scissorCount must be between 1 and VkPhysicalDeviceLimits::maxViewports, inclusive", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetScissorWithCount-scissorCount-03398", - "text": " If the multiViewport feature is not enabled, scissorCount must be 1" + "text": "If the multiViewport feature is not enabled, scissorCount must be 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetScissorWithCount-x-03399", - "text": " The x and y members of offset member of any element of pScissors must be greater than or equal to 0" + "text": "The x and y members of offset member of any element of pScissors must be greater than or equal to 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetScissorWithCount-offset-03400", - "text": " Evaluation of (offset.x + extent.width) must not cause a signed integer addition overflow for any element of pScissors" + "text": "Evaluation of (offset.x + extent.width) must not cause a signed integer addition overflow for any element of pScissors", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetScissorWithCount-offset-03401", - "text": " Evaluation of (offset.y + extent.height) must not cause a signed integer addition overflow for any element of pScissors" + "text": "Evaluation of (offset.y + extent.height) must not cause a signed integer addition overflow for any element of pScissors", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetScissorWithCount-commandBuffer-04820", - "text": " commandBuffer must not have VkCommandBufferInheritanceViewportScissorInfoNV::viewportScissor2D enabled" + "text": "commandBuffer must not have VkCommandBufferInheritanceViewportScissorInfoNV::viewportScissor2D enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetScissorWithCount-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetScissorWithCount-pScissors-parameter", - "text": " pScissors must be a valid pointer to an array of scissorCount VkRect2D structures" + "text": "pScissors must be a valid pointer to an array of scissorCount VkRect2D structures", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetScissorWithCount-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetScissorWithCount-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetScissorWithCount-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetScissorWithCount-scissorCount-arraylength", - "text": " scissorCount must be greater than 0" + "text": "scissorCount must be greater than 0", + "page": "vkspec" } ] }, @@ -54978,43 +71478,53 @@ "core": [ { "vuid": "VUID-vkCmdSetViewport-firstViewport-01223", - "text": " The sum of firstViewport and viewportCount must be between 1 and VkPhysicalDeviceLimits::maxViewports, inclusive" + "text": "The sum of firstViewport and viewportCount must be between 1 and VkPhysicalDeviceLimits::maxViewports, inclusive", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetViewport-firstViewport-01224", - "text": " If the multiViewport feature is not enabled, firstViewport must be 0" + "text": "If the multiViewport feature is not enabled, firstViewport must be 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetViewport-viewportCount-01225", - "text": " If the multiViewport feature is not enabled, viewportCount must be 1" + "text": "If the multiViewport feature is not enabled, viewportCount must be 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetViewport-commandBuffer-04821", - "text": " commandBuffer must not have VkCommandBufferInheritanceViewportScissorInfoNV::viewportScissor2D enabled" + "text": "commandBuffer must not have VkCommandBufferInheritanceViewportScissorInfoNV::viewportScissor2D enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetViewport-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetViewport-pViewports-parameter", - "text": " pViewports must be a valid pointer to an array of viewportCount valid VkViewport structures" + "text": "pViewports must be a valid pointer to an array of viewportCount valid VkViewport structures", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetViewport-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetViewport-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetViewport-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetViewport-viewportCount-arraylength", - "text": " viewportCount must be greater than 0" + "text": "viewportCount must be greater than 0", + "page": "vkspec" } ] }, @@ -55022,51 +71532,63 @@ "core": [ { "vuid": "VUID-VkViewport-width-01770", - "text": " width must be greater than 0.0" + "text": "width must be greater than 0.0", + "page": "vkspec" }, { "vuid": "VUID-VkViewport-width-01771", - "text": " width must be less than or equal to VkPhysicalDeviceLimits::maxViewportDimensions[0]" + "text": "width must be less than or equal to VkPhysicalDeviceLimits::maxViewportDimensions[0]", + "page": "vkspec" }, { "vuid": "VUID-VkViewport-apiVersion-07917", - "text": " If the VK_KHR_maintenance1 extension is not enabled, the VK_AMD_negative_viewport_height extension is not enabled, and VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, height must be greater than 0.0" + "text": "If the VK_KHR_maintenance1 extension is not enabled, the VK_AMD_negative_viewport_height extension is not enabled, and VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, height must be greater than 0.0", + "page": "vkspec" }, { "vuid": "VUID-VkViewport-height-01773", - "text": " The absolute value of height must be less than or equal to VkPhysicalDeviceLimits::maxViewportDimensions[1]" + "text": "The absolute value of height must be less than or equal to VkPhysicalDeviceLimits::maxViewportDimensions[1]", + "page": "vkspec" }, { "vuid": "VUID-VkViewport-x-01774", - "text": " x must be greater than or equal to viewportBoundsRange[0]" + "text": "x must be greater than or equal to viewportBoundsRange[0]", + "page": "vkspec" }, { "vuid": "VUID-VkViewport-x-01232", - "text": " (x + width) must be less than or equal to viewportBoundsRange[1]" + "text": "(x + width) must be less than or equal to viewportBoundsRange[1]", + "page": "vkspec" }, { "vuid": "VUID-VkViewport-y-01775", - "text": " y must be greater than or equal to viewportBoundsRange[0]" + "text": "y must be greater than or equal to viewportBoundsRange[0]", + "page": "vkspec" }, { "vuid": "VUID-VkViewport-y-01776", - "text": " y must be less than or equal to viewportBoundsRange[1]" + "text": "y must be less than or equal to viewportBoundsRange[1]", + "page": "vkspec" }, { "vuid": "VUID-VkViewport-y-01777", - "text": " (y + height) must be greater than or equal to viewportBoundsRange[0]" + "text": "(y + height) must be greater than or equal to viewportBoundsRange[0]", + "page": "vkspec" }, { "vuid": "VUID-VkViewport-y-01233", - "text": " (y + height) must be less than or equal to viewportBoundsRange[1]" + "text": "(y + height) must be less than or equal to viewportBoundsRange[1]", + "page": "vkspec" }, { "vuid": "VUID-VkViewport-minDepth-01234", - "text": " If the VK_EXT_depth_range_unrestricted extension is not enabled, minDepth must be between 0.0 and 1.0, inclusive" + "text": "If the VK_EXT_depth_range_unrestricted extension is not enabled, minDepth must be between 0.0 and 1.0, inclusive", + "page": "vkspec" }, { "vuid": "VUID-VkViewport-maxDepth-01235", - "text": " If the VK_EXT_depth_range_unrestricted extension is not enabled, maxDepth must be between 0.0 and 1.0, inclusive" + "text": "If the VK_EXT_depth_range_unrestricted extension is not enabled, maxDepth must be between 0.0 and 1.0, inclusive", + "page": "vkspec" } ] }, @@ -55074,47 +71596,58 @@ "core": [ { "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-depthClampEnable-00782", - "text": " If the depthClamp feature is not enabled, depthClampEnable must be VK_FALSE" + "text": "If the depthClamp feature is not enabled, depthClampEnable must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-polygonMode-01507", - "text": " If the fillModeNonSolid feature is not enabled, polygonMode must be VK_POLYGON_MODE_FILL or VK_POLYGON_MODE_FILL_RECTANGLE_NV" + "text": "If the fillModeNonSolid feature is not enabled, polygonMode must be VK_POLYGON_MODE_FILL or VK_POLYGON_MODE_FILL_RECTANGLE_NV", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-polygonMode-01414", - "text": " If the VK_NV_fill_rectangle extension is not enabled, polygonMode must not be VK_POLYGON_MODE_FILL_RECTANGLE_NV" + "text": "If the VK_NV_fill_rectangle extension is not enabled, polygonMode must not be VK_POLYGON_MODE_FILL_RECTANGLE_NV", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-pointPolygons-04458", - "text": " If the VK_KHR_portability_subset extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::pointPolygons is VK_FALSE, and rasterizerDiscardEnable is VK_FALSE, polygonMode must not be VK_POLYGON_MODE_POINT" + "text": "If the VK_KHR_portability_subset extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::pointPolygons is VK_FALSE, and rasterizerDiscardEnable is VK_FALSE, polygonMode must not be VK_POLYGON_MODE_POINT", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-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 VkDepthBiasRepresentationInfoEXT, VkPipelineRasterizationConservativeStateCreateInfoEXT, VkPipelineRasterizationDepthClipStateCreateInfoEXT, VkPipelineRasterizationLineStateCreateInfoEXT, VkPipelineRasterizationProvokingVertexStateCreateInfoEXT, VkPipelineRasterizationStateRasterizationOrderAMD, or VkPipelineRasterizationStateStreamCreateInfoEXT" + "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 VkDepthBiasRepresentationInfoEXT, VkPipelineRasterizationConservativeStateCreateInfoEXT, VkPipelineRasterizationDepthClipStateCreateInfoEXT, VkPipelineRasterizationLineStateCreateInfoEXT, VkPipelineRasterizationProvokingVertexStateCreateInfoEXT, VkPipelineRasterizationStateRasterizationOrderAMD, or VkPipelineRasterizationStateStreamCreateInfoEXT", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-flags-zerobitmask", - "text": " flags must be 0" + "text": "flags must be 0", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-polygonMode-parameter", - "text": " polygonMode must be a valid VkPolygonMode value" + "text": "polygonMode must be a valid VkPolygonMode value", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-cullMode-parameter", - "text": " cullMode must be a valid combination of VkCullModeFlagBits values" + "text": "cullMode must be a valid combination of VkCullModeFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-frontFace-parameter", - "text": " frontFace must be a valid VkFrontFace value" + "text": "frontFace must be a valid VkFrontFace value", + "page": "vkspec" } ] }, @@ -55122,11 +71655,13 @@ "core": [ { "vuid": "VUID-VkPipelineRasterizationDepthClipStateCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineRasterizationDepthClipStateCreateInfoEXT-flags-zerobitmask", - "text": " flags must be 0" + "text": "flags must be 0", + "page": "vkspec" } ] }, @@ -55134,43 +71669,53 @@ "core": [ { "vuid": "VUID-VkPipelineMultisampleStateCreateInfo-sampleShadingEnable-00784", - "text": " If the sampleRateShading feature is not enabled, sampleShadingEnable must be VK_FALSE" + "text": "If the sampleRateShading feature is not enabled, sampleShadingEnable must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineMultisampleStateCreateInfo-alphaToOneEnable-00785", - "text": " If the alphaToOne feature is not enabled, alphaToOneEnable must be VK_FALSE" + "text": "If the alphaToOne feature is not enabled, alphaToOneEnable must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineMultisampleStateCreateInfo-minSampleShading-00786", - "text": " minSampleShading must be in the range [0,1]" + "text": "minSampleShading must be in the range [0,1]", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineMultisampleStateCreateInfo-rasterizationSamples-01415", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the subpass has any color attachments and rasterizationSamples is greater than the number of color samples, then sampleShadingEnable must be VK_FALSE" + "text": "If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the subpass has any color attachments and rasterizationSamples is greater than the number of color samples, then sampleShadingEnable must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineMultisampleStateCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineMultisampleStateCreateInfo-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 VkPipelineCoverageModulationStateCreateInfoNV, VkPipelineCoverageReductionStateCreateInfoNV, VkPipelineCoverageToColorStateCreateInfoNV, or VkPipelineSampleLocationsStateCreateInfoEXT" + "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 VkPipelineCoverageModulationStateCreateInfoNV, VkPipelineCoverageReductionStateCreateInfoNV, VkPipelineCoverageToColorStateCreateInfoNV, or VkPipelineSampleLocationsStateCreateInfoEXT", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineMultisampleStateCreateInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineMultisampleStateCreateInfo-flags-zerobitmask", - "text": " flags must be 0" + "text": "flags must be 0", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineMultisampleStateCreateInfo-rasterizationSamples-parameter", - "text": " rasterizationSamples must be a valid VkSampleCountFlagBits value" + "text": "rasterizationSamples must be a valid VkSampleCountFlagBits value", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineMultisampleStateCreateInfo-pSampleMask-parameter", - "text": " If pSampleMask is not NULL, pSampleMask must be a valid pointer to an array of \\(\\lceil{\\mathit{rasterizationSamples} \\over 32}\\rceil\\) VkSampleMask values" + "text": "If pSampleMask is not NULL, pSampleMask must be a valid pointer to an array of \\(\\lceil{\\mathit{rasterizationSamples} \\over 32}\\rceil\\) VkSampleMask values", + "page": "vkspec" } ] }, @@ -55178,23 +71723,28 @@ "core": [ { "vuid": "VUID-vkCmdSetRasterizerDiscardEnable-None-08970", - "text": " At least one of the following must be true:
\n\n
" + "text": "At least one of the following must be true:
\n\n
", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetRasterizerDiscardEnable-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetRasterizerDiscardEnable-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetRasterizerDiscardEnable-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetRasterizerDiscardEnable-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -55202,23 +71752,28 @@ "core": [ { "vuid": "VUID-VkPipelineRasterizationStateStreamCreateInfoEXT-geometryStreams-02324", - "text": " VkPhysicalDeviceTransformFeedbackFeaturesEXT::geometryStreams must be enabled" + "text": "VkPhysicalDeviceTransformFeedbackFeaturesEXT::geometryStreams must be enabled", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineRasterizationStateStreamCreateInfoEXT-rasterizationStream-02325", - "text": " rasterizationStream must be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackStreams" + "text": "rasterizationStream must be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackStreams", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineRasterizationStateStreamCreateInfoEXT-rasterizationStream-02326", - "text": " rasterizationStream must be zero if VkPhysicalDeviceTransformFeedbackPropertiesEXT::transformFeedbackRasterizationStreamSelect is VK_FALSE" + "text": "rasterizationStream must be zero if VkPhysicalDeviceTransformFeedbackPropertiesEXT::transformFeedbackRasterizationStreamSelect is VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineRasterizationStateStreamCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineRasterizationStateStreamCreateInfoEXT-flags-zerobitmask", - "text": " flags must be 0" + "text": "flags must be 0", + "page": "vkspec" } ] }, @@ -55226,35 +71781,43 @@ "core": [ { "vuid": "VUID-vkCmdSetRasterizationStreamEXT-None-08550", - "text": " Either the extendedDynamicState3RasterizationStream feature or the shaderObject feature or both must be enabled" + "text": "Either the extendedDynamicState3RasterizationStream feature or the shaderObject feature or both must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetRasterizationStreamEXT-transformFeedback-07411", - "text": " The transformFeedback feature must be enabled" + "text": "The transformFeedback feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetRasterizationStreamEXT-rasterizationStream-07412", - "text": " rasterizationStream must be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackStreams" + "text": "rasterizationStream must be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackStreams", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetRasterizationStreamEXT-rasterizationStream-07413", - "text": " rasterizationStream must be zero if VkPhysicalDeviceTransformFeedbackPropertiesEXT::transformFeedbackRasterizationStreamSelect is VK_FALSE" + "text": "rasterizationStream must be zero if VkPhysicalDeviceTransformFeedbackPropertiesEXT::transformFeedbackRasterizationStreamSelect is VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetRasterizationStreamEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetRasterizationStreamEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetRasterizationStreamEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetRasterizationStreamEXT-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -55262,11 +71825,13 @@ "core": [ { "vuid": "VUID-VkPipelineRasterizationStateRasterizationOrderAMD-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD" + "text": "sType must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineRasterizationStateRasterizationOrderAMD-rasterizationOrder-parameter", - "text": " rasterizationOrder must be a valid VkRasterizationOrderAMD value" + "text": "rasterizationOrder must be a valid VkRasterizationOrderAMD value", + "page": "vkspec" } ] }, @@ -55274,27 +71839,33 @@ "core": [ { "vuid": "VUID-vkCmdSetRasterizationSamplesEXT-None-08552", - "text": " Either the extendedDynamicState3RasterizationSamples feature or the shaderObject feature or both must be enabled" + "text": "Either the extendedDynamicState3RasterizationSamples feature or the shaderObject feature or both must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetRasterizationSamplesEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetRasterizationSamplesEXT-rasterizationSamples-parameter", - "text": " rasterizationSamples must be a valid VkSampleCountFlagBits value" + "text": "rasterizationSamples must be a valid VkSampleCountFlagBits value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetRasterizationSamplesEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetRasterizationSamplesEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetRasterizationSamplesEXT-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -55302,11 +71873,13 @@ "core": [ { "vuid": "VUID-VkPipelineSampleLocationsStateCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineSampleLocationsStateCreateInfoEXT-sampleLocationsInfo-parameter", - "text": " sampleLocationsInfo must be a valid VkSampleLocationsInfoEXT structure" + "text": "sampleLocationsInfo must be a valid VkSampleLocationsInfoEXT structure", + "page": "vkspec" } ] }, @@ -55314,19 +71887,23 @@ "core": [ { "vuid": "VUID-VkSampleLocationsInfoEXT-sampleLocationsPerPixel-01526", - "text": " sampleLocationsPerPixel must be a bit value that is set in VkPhysicalDeviceSampleLocationsPropertiesEXT::sampleLocationSampleCounts" + "text": "sampleLocationsPerPixel must be a bit value that is set in VkPhysicalDeviceSampleLocationsPropertiesEXT::sampleLocationSampleCounts", + "page": "vkspec" }, { "vuid": "VUID-VkSampleLocationsInfoEXT-sampleLocationsCount-01527", - "text": " sampleLocationsCount must equal sampleLocationsPerPixel {times} sampleLocationGridSize.width {times} sampleLocationGridSize.height" + "text": "sampleLocationsCount must equal sampleLocationsPerPixel × sampleLocationGridSize.width × sampleLocationGridSize.height", + "page": "vkspec" }, { "vuid": "VUID-VkSampleLocationsInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkSampleLocationsInfoEXT-pSampleLocations-parameter", - "text": " If sampleLocationsCount is not 0, pSampleLocations must be a valid pointer to an array of sampleLocationsCount VkSampleLocationEXT structures" + "text": "If sampleLocationsCount is not 0, pSampleLocations must be a valid pointer to an array of sampleLocationsCount VkSampleLocationEXT structures", + "page": "vkspec" } ] }, @@ -55334,23 +71911,28 @@ "core": [ { "vuid": "VUID-vkCmdSetSampleLocationsEnableEXT-None-08554", - "text": " Either the extendedDynamicState3SampleLocationsEnable feature or the shaderObject feature or both must be enabled" + "text": "Either the extendedDynamicState3SampleLocationsEnable feature or the shaderObject feature or both must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetSampleLocationsEnableEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetSampleLocationsEnableEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetSampleLocationsEnableEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetSampleLocationsEnableEXT-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -55358,27 +71940,33 @@ "core": [ { "vuid": "VUID-vkCmdSetSampleLocationsEXT-variableSampleLocations-01530", - "text": " If VkPhysicalDeviceSampleLocationsPropertiesEXT::variableSampleLocations is VK_FALSE then the current render pass must have been begun by specifying a VkRenderPassSampleLocationsBeginInfoEXT structure whose pPostSubpassSampleLocations member contains an element with a subpassIndex matching the current subpass index and the sampleLocationsInfo member of that element must match the sample locations state pointed to by pSampleLocationsInfo" + "text": "If VkPhysicalDeviceSampleLocationsPropertiesEXT::variableSampleLocations is VK_FALSE then the current render pass must have been begun by specifying a VkRenderPassSampleLocationsBeginInfoEXT structure whose pPostSubpassSampleLocations member contains an element with a subpassIndex matching the current subpass index and the sampleLocationsInfo member of that element must match the sample locations state pointed to by pSampleLocationsInfo", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetSampleLocationsEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetSampleLocationsEXT-pSampleLocationsInfo-parameter", - "text": " pSampleLocationsInfo must be a valid pointer to a valid VkSampleLocationsInfoEXT structure" + "text": "pSampleLocationsInfo must be a valid pointer to a valid VkSampleLocationsInfoEXT structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetSampleLocationsEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetSampleLocationsEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetSampleLocationsEXT-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -55386,15 +71974,18 @@ "core": [ { "vuid": "VUID-vkGetPhysicalDeviceFragmentShadingRatesKHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": "physicalDevice must be a valid VkPhysicalDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceFragmentShadingRatesKHR-pFragmentShadingRateCount-parameter", - "text": " pFragmentShadingRateCount must be a valid pointer to a uint32_t value" + "text": "pFragmentShadingRateCount must be a valid pointer to a uint32_t value", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceFragmentShadingRatesKHR-pFragmentShadingRates-parameter", - "text": " If the value referenced by pFragmentShadingRateCount is not 0, and pFragmentShadingRates is not NULL, pFragmentShadingRates must be a valid pointer to an array of pFragmentShadingRateCount VkPhysicalDeviceFragmentShadingRateKHR structures" + "text": "If the value referenced by pFragmentShadingRateCount is not 0, and pFragmentShadingRates is not NULL, pFragmentShadingRates must be a valid pointer to an array of pFragmentShadingRateCount VkPhysicalDeviceFragmentShadingRateKHR structures", + "page": "vkspec" } ] }, @@ -55402,11 +71993,13 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceFragmentShadingRateKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkPhysicalDeviceFragmentShadingRateKHR-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" } ] }, @@ -55414,7 +72007,8 @@ "core": [ { "vuid": "VUID-VkPipelineFragmentShadingRateStateCreateInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR", + "page": "vkspec" } ] }, @@ -55422,75 +72016,93 @@ "core": [ { "vuid": "VUID-vkCmdSetFragmentShadingRateKHR-pipelineFragmentShadingRate-04507", - "text": " If pipelineFragmentShadingRate is not enabled, pFragmentSize->width must be 1" + "text": "If pipelineFragmentShadingRate is not enabled, pFragmentSize->width must be 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetFragmentShadingRateKHR-pipelineFragmentShadingRate-04508", - "text": " If pipelineFragmentShadingRate is not enabled, pFragmentSize->height must be 1" + "text": "If pipelineFragmentShadingRate is not enabled, pFragmentSize->height must be 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetFragmentShadingRateKHR-pipelineFragmentShadingRate-04509", - "text": " One of pipelineFragmentShadingRate, primitiveFragmentShadingRate, or attachmentFragmentShadingRate must be enabled" + "text": "One of pipelineFragmentShadingRate, primitiveFragmentShadingRate, or attachmentFragmentShadingRate must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetFragmentShadingRateKHR-primitiveFragmentShadingRate-04510", - "text": " If the primitiveFragmentShadingRate feature is not enabled, combinerOps[0] must be VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR" + "text": "If the primitiveFragmentShadingRate feature is not enabled, combinerOps[0] must be VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetFragmentShadingRateKHR-attachmentFragmentShadingRate-04511", - "text": " If the attachmentFragmentShadingRate feature is not enabled, combinerOps[1] must be VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR" + "text": "If the attachmentFragmentShadingRate feature is not enabled, combinerOps[1] must be VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetFragmentShadingRateKHR-fragmentSizeNonTrivialCombinerOps-04512", - "text": " If the fragmentSizeNonTrivialCombinerOps limit is not supported, elements of combinerOps must be either VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR or VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR" + "text": "If the fragmentSizeNonTrivialCombinerOps limit is not supported, elements of combinerOps must be either VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR or VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-04513", - "text": " pFragmentSize->width must be greater than or equal to 1" + "text": "pFragmentSize->width must be greater than or equal to 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-04514", - "text": " pFragmentSize->height must be greater than or equal to 1" + "text": "pFragmentSize->height must be greater than or equal to 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-04515", - "text": " pFragmentSize->width must be a power-of-two value" + "text": "pFragmentSize->width must be a power-of-two value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-04516", - "text": " pFragmentSize->height must be a power-of-two value" + "text": "pFragmentSize->height must be a power-of-two value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-04517", - "text": " pFragmentSize->width must be less than or equal to 4" + "text": "pFragmentSize->width must be less than or equal to 4", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-04518", - "text": " pFragmentSize->height must be less than or equal to 4" + "text": "pFragmentSize->height must be less than or equal to 4", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetFragmentShadingRateKHR-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-parameter", - "text": " pFragmentSize must be a valid pointer to a valid VkExtent2D structure" + "text": "pFragmentSize must be a valid pointer to a valid VkExtent2D structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetFragmentShadingRateKHR-combinerOps-parameter", - "text": " Each element of combinerOps must be a valid VkFragmentShadingRateCombinerOpKHR value" + "text": "Each element of combinerOps must be a valid VkFragmentShadingRateCombinerOpKHR value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetFragmentShadingRateKHR-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetFragmentShadingRateKHR-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetFragmentShadingRateKHR-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -55498,7 +72110,8 @@ "core": [ { "vuid": "VUID-VkPipelineFragmentShadingRateEnumStateCreateInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV" + "text": "sType must be VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV", + "page": "vkspec" } ] }, @@ -55506,59 +72119,73 @@ "core": [ { "vuid": "VUID-vkCmdSetFragmentShadingRateEnumNV-pipelineFragmentShadingRate-04576", - "text": " If pipelineFragmentShadingRate is not enabled, shadingRate must be VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV" + "text": "If pipelineFragmentShadingRate is not enabled, shadingRate must be VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetFragmentShadingRateEnumNV-supersampleFragmentShadingRates-04577", - "text": " If supersampleFragmentShadingRates is not enabled, shadingRate must not be VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV, VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV, VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV, or VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV" + "text": "If supersampleFragmentShadingRates is not enabled, shadingRate must not be VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV, VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV, VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV, or VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetFragmentShadingRateEnumNV-noInvocationFragmentShadingRates-04578", - "text": " If noInvocationFragmentShadingRates is not enabled, shadingRate must not be VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV" + "text": "If noInvocationFragmentShadingRates is not enabled, shadingRate must not be VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetFragmentShadingRateEnumNV-fragmentShadingRateEnums-04579", - "text": " The fragmentShadingRateEnums feature must be enabled" + "text": "The fragmentShadingRateEnums feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetFragmentShadingRateEnumNV-pipelineFragmentShadingRate-04580", - "text": " One of the pipelineFragmentShadingRate, primitiveFragmentShadingRate, or attachmentFragmentShadingRate features must be enabled" + "text": "One of the pipelineFragmentShadingRate, primitiveFragmentShadingRate, or attachmentFragmentShadingRate features must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetFragmentShadingRateEnumNV-primitiveFragmentShadingRate-04581", - "text": " If the primitiveFragmentShadingRate feature is not enabled, combinerOps[0] must be VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR" + "text": "If the primitiveFragmentShadingRate feature is not enabled, combinerOps[0] must be VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetFragmentShadingRateEnumNV-attachmentFragmentShadingRate-04582", - "text": " If the attachmentFragmentShadingRate feature is not enabled, combinerOps[1] must be VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR" + "text": "If the attachmentFragmentShadingRate feature is not enabled, combinerOps[1] must be VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetFragmentShadingRateEnumNV-fragmentSizeNonTrivialCombinerOps-04583", - "text": " If the fragmentSizeNonTrivialCombinerOps limit is not supported, elements of combinerOps must be either VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR or VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR" + "text": "If the fragmentSizeNonTrivialCombinerOps limit is not supported, elements of combinerOps must be either VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR or VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetFragmentShadingRateEnumNV-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetFragmentShadingRateEnumNV-shadingRate-parameter", - "text": " shadingRate must be a valid VkFragmentShadingRateNV value" + "text": "shadingRate must be a valid VkFragmentShadingRateNV value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetFragmentShadingRateEnumNV-combinerOps-parameter", - "text": " Each element of combinerOps must be a valid VkFragmentShadingRateCombinerOpKHR value" + "text": "Each element of combinerOps must be a valid VkFragmentShadingRateCombinerOpKHR value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetFragmentShadingRateEnumNV-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetFragmentShadingRateEnumNV-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetFragmentShadingRateEnumNV-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -55566,19 +72193,23 @@ "core": [ { "vuid": "VUID-VkPipelineViewportShadingRateImageStateCreateInfoNV-viewportCount-02054", - "text": " If the multiViewport feature is not enabled, viewportCount must be 0 or 1" + "text": "If the multiViewport feature is not enabled, viewportCount must be 0 or 1", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineViewportShadingRateImageStateCreateInfoNV-viewportCount-02055", - "text": " viewportCount must be less than or equal to VkPhysicalDeviceLimits::maxViewports" + "text": "viewportCount must be less than or equal to VkPhysicalDeviceLimits::maxViewports", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineViewportShadingRateImageStateCreateInfoNV-shadingRateImageEnable-02056", - "text": " If shadingRateImageEnable is VK_TRUE, viewportCount must be greater or equal to the viewportCount member of VkPipelineViewportStateCreateInfo" + "text": "If shadingRateImageEnable is VK_TRUE, viewportCount must be greater or equal to the viewportCount member of VkPipelineViewportStateCreateInfo", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineViewportShadingRateImageStateCreateInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV" + "text": "sType must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV", + "page": "vkspec" } ] }, @@ -55586,55 +72217,68 @@ "core": [ { "vuid": "VUID-vkCmdBindShadingRateImageNV-None-02058", - "text": " The shadingRateImage feature must be enabled" + "text": "The shadingRateImage feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindShadingRateImageNV-imageView-02059", - "text": " If imageView is not VK_NULL_HANDLE, it must be a valid VkImageView handle of type VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY" + "text": "If imageView is not VK_NULL_HANDLE, it must be a valid VkImageView handle of type VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindShadingRateImageNV-imageView-02060", - "text": " If imageView is not VK_NULL_HANDLE, it must have a format of VK_FORMAT_R8_UINT" + "text": "If imageView is not VK_NULL_HANDLE, it must have a format of VK_FORMAT_R8_UINT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindShadingRateImageNV-imageView-02061", - "text": " If imageView is not VK_NULL_HANDLE, it must have been created with a usage value including VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV" + "text": "If imageView is not VK_NULL_HANDLE, it must have been created with a usage value including VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindShadingRateImageNV-imageView-02062", - "text": " If imageView is not VK_NULL_HANDLE, imageLayout must match the actual VkImageLayout of each subresource accessible from imageView at the time the subresource is accessed" + "text": "If imageView is not VK_NULL_HANDLE, imageLayout must match the actual VkImageLayout of each subresource accessible from imageView at the time the subresource is accessed", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindShadingRateImageNV-imageLayout-02063", - "text": " If imageView is not VK_NULL_HANDLE, imageLayout must be VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV or VK_IMAGE_LAYOUT_GENERAL" + "text": "If imageView is not VK_NULL_HANDLE, imageLayout must be VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV or VK_IMAGE_LAYOUT_GENERAL", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindShadingRateImageNV-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindShadingRateImageNV-imageView-parameter", - "text": " If imageView is not VK_NULL_HANDLE, imageView must be a valid VkImageView handle" + "text": "If imageView is not VK_NULL_HANDLE, imageView must be a valid VkImageView handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindShadingRateImageNV-imageLayout-parameter", - "text": " imageLayout must be a valid VkImageLayout value" + "text": "imageLayout must be a valid VkImageLayout value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindShadingRateImageNV-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindShadingRateImageNV-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindShadingRateImageNV-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindShadingRateImageNV-commonparent", - "text": " Both of commandBuffer, and imageView that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of commandBuffer, and imageView that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -55642,23 +72286,28 @@ "core": [ { "vuid": "VUID-vkCmdSetShadingRateImageEnableNV-None-08556", - "text": " Either the extendedDynamicState3ShadingRateImageEnable feature or the shaderObject feature or both must be enabled" + "text": "Either the extendedDynamicState3ShadingRateImageEnable feature or the shaderObject feature or both must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetShadingRateImageEnableNV-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetShadingRateImageEnableNV-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetShadingRateImageEnableNV-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetShadingRateImageEnableNV-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -55666,43 +72315,53 @@ "core": [ { "vuid": "VUID-vkCmdSetViewportShadingRatePaletteNV-None-02064", - "text": " The shadingRateImage feature must be enabled" + "text": "The shadingRateImage feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetViewportShadingRatePaletteNV-firstViewport-02067", - "text": " The sum of firstViewport and viewportCount must be between 1 and VkPhysicalDeviceLimits::maxViewports, inclusive" + "text": "The sum of firstViewport and viewportCount must be between 1 and VkPhysicalDeviceLimits::maxViewports, inclusive", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetViewportShadingRatePaletteNV-firstViewport-02068", - "text": " If the multiViewport feature is not enabled, firstViewport must be 0" + "text": "If the multiViewport feature is not enabled, firstViewport must be 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetViewportShadingRatePaletteNV-viewportCount-02069", - "text": " If the multiViewport feature is not enabled, viewportCount must be 1" + "text": "If the multiViewport feature is not enabled, viewportCount must be 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetViewportShadingRatePaletteNV-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetViewportShadingRatePaletteNV-pShadingRatePalettes-parameter", - "text": " pShadingRatePalettes must be a valid pointer to an array of viewportCount valid VkShadingRatePaletteNV structures" + "text": "pShadingRatePalettes must be a valid pointer to an array of viewportCount valid VkShadingRatePaletteNV structures", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetViewportShadingRatePaletteNV-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetViewportShadingRatePaletteNV-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetViewportShadingRatePaletteNV-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetViewportShadingRatePaletteNV-viewportCount-arraylength", - "text": " viewportCount must be greater than 0" + "text": "viewportCount must be greater than 0", + "page": "vkspec" } ] }, @@ -55710,15 +72369,18 @@ "core": [ { "vuid": "VUID-VkShadingRatePaletteNV-shadingRatePaletteEntryCount-02071", - "text": " shadingRatePaletteEntryCount must be between 1 and VkPhysicalDeviceShadingRateImagePropertiesNV::shadingRatePaletteSize, inclusive" + "text": "shadingRatePaletteEntryCount must be between 1 and VkPhysicalDeviceShadingRateImagePropertiesNV::shadingRatePaletteSize, inclusive", + "page": "vkspec" }, { "vuid": "VUID-VkShadingRatePaletteNV-pShadingRatePaletteEntries-parameter", - "text": " pShadingRatePaletteEntries must be a valid pointer to an array of shadingRatePaletteEntryCount valid VkShadingRatePaletteEntryNV values" + "text": "pShadingRatePaletteEntries must be a valid pointer to an array of shadingRatePaletteEntryCount valid VkShadingRatePaletteEntryNV values", + "page": "vkspec" }, { "vuid": "VUID-VkShadingRatePaletteNV-shadingRatePaletteEntryCount-arraylength", - "text": " shadingRatePaletteEntryCount must be greater than 0" + "text": "shadingRatePaletteEntryCount must be greater than 0", + "page": "vkspec" } ] }, @@ -55726,23 +72388,28 @@ "core": [ { "vuid": "VUID-VkPipelineViewportCoarseSampleOrderStateCreateInfoNV-sampleOrderType-02072", - "text": " If sampleOrderType is not VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV, customSamplerOrderCount must be 0" + "text": "If sampleOrderType is not VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV, customSamplerOrderCount must be 0", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineViewportCoarseSampleOrderStateCreateInfoNV-pCustomSampleOrders-02234", - "text": " The array pCustomSampleOrders must not contain two structures with matching values for both the shadingRate and sampleCount members" + "text": "The array pCustomSampleOrders must not contain two structures with matching values for both the shadingRate and sampleCount members", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineViewportCoarseSampleOrderStateCreateInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV" + "text": "sType must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineViewportCoarseSampleOrderStateCreateInfoNV-sampleOrderType-parameter", - "text": " sampleOrderType must be a valid VkCoarseSampleOrderTypeNV value" + "text": "sampleOrderType must be a valid VkCoarseSampleOrderTypeNV value", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineViewportCoarseSampleOrderStateCreateInfoNV-pCustomSampleOrders-parameter", - "text": " If customSampleOrderCount is not 0, pCustomSampleOrders must be a valid pointer to an array of customSampleOrderCount valid VkCoarseSampleOrderCustomNV structures" + "text": "If customSampleOrderCount is not 0, pCustomSampleOrders must be a valid pointer to an array of customSampleOrderCount valid VkCoarseSampleOrderCustomNV structures", + "page": "vkspec" } ] }, @@ -55750,35 +72417,43 @@ "core": [ { "vuid": "VUID-VkCoarseSampleOrderCustomNV-shadingRate-02073", - "text": " shadingRate must be a shading rate that generates fragments with more than one pixel" + "text": "shadingRate must be a shading rate that generates fragments with more than one pixel", + "page": "vkspec" }, { "vuid": "VUID-VkCoarseSampleOrderCustomNV-sampleCount-02074", - "text": " sampleCount must correspond to a sample count enumerated in VkSampleCountFlags whose corresponding bit is set in VkPhysicalDeviceLimits::framebufferNoAttachmentsSampleCounts" + "text": "sampleCount must correspond to a sample count enumerated in VkSampleCountFlags whose corresponding bit is set in VkPhysicalDeviceLimits::framebufferNoAttachmentsSampleCounts", + "page": "vkspec" }, { "vuid": "VUID-VkCoarseSampleOrderCustomNV-sampleLocationCount-02075", - "text": " sampleLocationCount must be equal to the product of sampleCount, the fragment width for shadingRate, and the fragment height for shadingRate" + "text": "sampleLocationCount must be equal to the product of sampleCount, the fragment width for shadingRate, and the fragment height for shadingRate", + "page": "vkspec" }, { "vuid": "VUID-VkCoarseSampleOrderCustomNV-sampleLocationCount-02076", - "text": " sampleLocationCount must be less than or equal to the value of VkPhysicalDeviceShadingRateImagePropertiesNV::shadingRateMaxCoarseSamples" + "text": "sampleLocationCount must be less than or equal to the value of VkPhysicalDeviceShadingRateImagePropertiesNV::shadingRateMaxCoarseSamples", + "page": "vkspec" }, { "vuid": "VUID-VkCoarseSampleOrderCustomNV-pSampleLocations-02077", - "text": " The array pSampleLocations must contain exactly one entry for every combination of valid values for pixelX, pixelY, and sample in the structure VkCoarseSampleOrderCustomNV" + "text": "The array pSampleLocations must contain exactly one entry for every combination of valid values for pixelX, pixelY, and sample in the structure VkCoarseSampleOrderCustomNV", + "page": "vkspec" }, { "vuid": "VUID-VkCoarseSampleOrderCustomNV-shadingRate-parameter", - "text": " shadingRate must be a valid VkShadingRatePaletteEntryNV value" + "text": "shadingRate must be a valid VkShadingRatePaletteEntryNV value", + "page": "vkspec" }, { "vuid": "VUID-VkCoarseSampleOrderCustomNV-pSampleLocations-parameter", - "text": " pSampleLocations must be a valid pointer to an array of sampleLocationCount VkCoarseSampleLocationNV structures" + "text": "pSampleLocations must be a valid pointer to an array of sampleLocationCount VkCoarseSampleLocationNV structures", + "page": "vkspec" }, { "vuid": "VUID-VkCoarseSampleOrderCustomNV-sampleLocationCount-arraylength", - "text": " sampleLocationCount must be greater than 0" + "text": "sampleLocationCount must be greater than 0", + "page": "vkspec" } ] }, @@ -55786,15 +72461,18 @@ "core": [ { "vuid": "VUID-VkCoarseSampleLocationNV-pixelX-02078", - "text": " pixelX must be less than the width (in pixels) of the fragment" + "text": "pixelX must be less than the width (in pixels) of the fragment", + "page": "vkspec" }, { "vuid": "VUID-VkCoarseSampleLocationNV-pixelY-02079", - "text": " pixelY must be less than the height (in pixels) of the fragment" + "text": "pixelY must be less than the height (in pixels) of the fragment", + "page": "vkspec" }, { "vuid": "VUID-VkCoarseSampleLocationNV-sample-02080", - "text": " sample must be less than the number of coverage samples in each pixel belonging to the fragment" + "text": "sample must be less than the number of coverage samples in each pixel belonging to the fragment", + "page": "vkspec" } ] }, @@ -55802,35 +72480,43 @@ "core": [ { "vuid": "VUID-vkCmdSetCoarseSampleOrderNV-sampleOrderType-02081", - "text": " If sampleOrderType is not VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV, customSamplerOrderCount must be 0" + "text": "If sampleOrderType is not VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV, customSamplerOrderCount must be 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetCoarseSampleOrderNV-pCustomSampleOrders-02235", - "text": " The array pCustomSampleOrders must not contain two structures with matching values for both the shadingRate and sampleCount members" + "text": "The array pCustomSampleOrders must not contain two structures with matching values for both the shadingRate and sampleCount members", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetCoarseSampleOrderNV-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetCoarseSampleOrderNV-sampleOrderType-parameter", - "text": " sampleOrderType must be a valid VkCoarseSampleOrderTypeNV value" + "text": "sampleOrderType must be a valid VkCoarseSampleOrderTypeNV value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetCoarseSampleOrderNV-pCustomSampleOrders-parameter", - "text": " If customSampleOrderCount is not 0, pCustomSampleOrders must be a valid pointer to an array of customSampleOrderCount valid VkCoarseSampleOrderCustomNV structures" + "text": "If customSampleOrderCount is not 0, pCustomSampleOrders must be a valid pointer to an array of customSampleOrderCount valid VkCoarseSampleOrderCustomNV structures", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetCoarseSampleOrderNV-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetCoarseSampleOrderNV-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetCoarseSampleOrderNV-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -55838,39 +72524,48 @@ "core": [ { "vuid": "VUID-VkPipelineRasterizationLineStateCreateInfoEXT-lineRasterizationMode-02768", - "text": " If lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the rectangularLines feature must be enabled" + "text": "If lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the rectangularLines feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineRasterizationLineStateCreateInfoEXT-lineRasterizationMode-02769", - "text": " If lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the bresenhamLines feature must be enabled" + "text": "If lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the bresenhamLines feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineRasterizationLineStateCreateInfoEXT-lineRasterizationMode-02770", - "text": " If lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the smoothLines feature must be enabled" + "text": "If lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the smoothLines feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineRasterizationLineStateCreateInfoEXT-stippledLineEnable-02771", - "text": " If stippledLineEnable is VK_TRUE and lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled" + "text": "If stippledLineEnable is VK_TRUE and lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineRasterizationLineStateCreateInfoEXT-stippledLineEnable-02772", - "text": " If stippledLineEnable is VK_TRUE and lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled" + "text": "If stippledLineEnable is VK_TRUE and lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineRasterizationLineStateCreateInfoEXT-stippledLineEnable-02773", - "text": " If stippledLineEnable is VK_TRUE and lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled" + "text": "If stippledLineEnable is VK_TRUE and lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineRasterizationLineStateCreateInfoEXT-stippledLineEnable-02774", - "text": " If stippledLineEnable is VK_TRUE and lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE" + "text": "If stippledLineEnable is VK_TRUE and lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineRasterizationLineStateCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineRasterizationLineStateCreateInfoEXT-lineRasterizationMode-parameter", - "text": " lineRasterizationMode must be a valid VkLineRasterizationModeEXT value" + "text": "lineRasterizationMode must be a valid VkLineRasterizationModeEXT value", + "page": "vkspec" } ] }, @@ -55878,39 +72573,48 @@ "core": [ { "vuid": "VUID-vkCmdSetLineRasterizationModeEXT-None-08558", - "text": " Either the extendedDynamicState3LineRasterizationMode feature or the shaderObject feature or both must be enabled" + "text": "Either the extendedDynamicState3LineRasterizationMode feature or the shaderObject feature or both must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetLineRasterizationModeEXT-lineRasterizationMode-07418", - "text": " If lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the rectangularLines feature must be enabled" + "text": "If lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the rectangularLines feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetLineRasterizationModeEXT-lineRasterizationMode-07419", - "text": " If lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the bresenhamLines feature must be enabled" + "text": "If lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the bresenhamLines feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetLineRasterizationModeEXT-lineRasterizationMode-07420", - "text": " If lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the smoothLines feature must be enabled" + "text": "If lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the smoothLines feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetLineRasterizationModeEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetLineRasterizationModeEXT-lineRasterizationMode-parameter", - "text": " lineRasterizationMode must be a valid VkLineRasterizationModeEXT value" + "text": "lineRasterizationMode must be a valid VkLineRasterizationModeEXT value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetLineRasterizationModeEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetLineRasterizationModeEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetLineRasterizationModeEXT-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -55918,23 +72622,28 @@ "core": [ { "vuid": "VUID-vkCmdSetLineStippleEnableEXT-None-08560", - "text": " Either the extendedDynamicState3LineStippleEnable feature or the shaderObject feature or both must be enabled" + "text": "Either the extendedDynamicState3LineStippleEnable feature or the shaderObject feature or both must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetLineStippleEnableEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetLineStippleEnableEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetLineStippleEnableEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetLineStippleEnableEXT-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -55942,23 +72651,28 @@ "core": [ { "vuid": "VUID-vkCmdSetLineWidth-lineWidth-00788", - "text": " If the wideLines feature is not enabled, lineWidth must be 1.0" + "text": "If the wideLines feature is not enabled, lineWidth must be 1.0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetLineWidth-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetLineWidth-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetLineWidth-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetLineWidth-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -55966,23 +72680,28 @@ "core": [ { "vuid": "VUID-vkCmdSetLineStippleEXT-lineStippleFactor-02776", - "text": " lineStippleFactor must be in the range [1,256]" + "text": "lineStippleFactor must be in the range [1,256]", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetLineStippleEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetLineStippleEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetLineStippleEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetLineStippleEXT-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -55990,27 +72709,33 @@ "core": [ { "vuid": "VUID-vkCmdSetFrontFace-None-08971", - "text": " At least one of the following must be true:
\n\n
" + "text": "At least one of the following must be true:
\n\n
", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetFrontFace-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetFrontFace-frontFace-parameter", - "text": " frontFace must be a valid VkFrontFace value" + "text": "frontFace must be a valid VkFrontFace value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetFrontFace-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetFrontFace-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetFrontFace-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -56018,27 +72743,33 @@ "core": [ { "vuid": "VUID-vkCmdSetCullMode-None-08971", - "text": " At least one of the following must be true:
\n\n
" + "text": "At least one of the following must be true:
\n\n
", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetCullMode-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetCullMode-cullMode-parameter", - "text": " cullMode must be a valid combination of VkCullModeFlagBits values" + "text": "cullMode must be a valid combination of VkCullModeFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetCullMode-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetCullMode-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetCullMode-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -56046,35 +72777,43 @@ "core": [ { "vuid": "VUID-vkCmdSetPolygonModeEXT-None-08566", - "text": " Either the extendedDynamicState3PolygonMode feature or the shaderObject feature or both must be enabled" + "text": "Either the extendedDynamicState3PolygonMode feature or the shaderObject feature or both must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetPolygonModeEXT-fillModeNonSolid-07424", - "text": " If the fillModeNonSolid feature is not enabled, polygonMode must be VK_POLYGON_MODE_FILL or VK_POLYGON_MODE_FILL_RECTANGLE_NV" + "text": "If the fillModeNonSolid feature is not enabled, polygonMode must be VK_POLYGON_MODE_FILL or VK_POLYGON_MODE_FILL_RECTANGLE_NV", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetPolygonModeEXT-polygonMode-07425", - "text": " If the VK_NV_fill_rectangle extension is not enabled, polygonMode must not be VK_POLYGON_MODE_FILL_RECTANGLE_NV" + "text": "If the VK_NV_fill_rectangle extension is not enabled, polygonMode must not be VK_POLYGON_MODE_FILL_RECTANGLE_NV", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetPolygonModeEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetPolygonModeEXT-polygonMode-parameter", - "text": " polygonMode must be a valid VkPolygonMode value" + "text": "polygonMode must be a valid VkPolygonMode value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetPolygonModeEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetPolygonModeEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetPolygonModeEXT-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -56082,23 +72821,28 @@ "core": [ { "vuid": "VUID-vkCmdSetDepthBiasEnable-None-08970", - "text": " At least one of the following must be true:
\n\n
" + "text": "At least one of the following must be true:
\n\n
", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDepthBiasEnable-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDepthBiasEnable-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDepthBiasEnable-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDepthBiasEnable-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -56106,23 +72850,28 @@ "core": [ { "vuid": "VUID-vkCmdSetDepthBias-depthBiasClamp-00790", - "text": " If the depthBiasClamp feature is not enabled, depthBiasClamp must be 0.0" + "text": "If the depthBiasClamp feature is not enabled, depthBiasClamp must be 0.0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDepthBias-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDepthBias-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDepthBias-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDepthBias-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -56130,23 +72879,28 @@ "core": [ { "vuid": "VUID-VkDepthBiasRepresentationInfoEXT-leastRepresentableValueForceUnormRepresentation-08947", - "text": " If the leastRepresentableValueForceUnormRepresentation feature is not enabled, depthBiasRepresentation must not be VK_DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORCE_UNORM_EXT" + "text": "If the leastRepresentableValueForceUnormRepresentation feature is not enabled, depthBiasRepresentation must not be VK_DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORCE_UNORM_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkDepthBiasRepresentationInfoEXT-floatRepresentation-08948", - "text": " If the floatRepresentation feature is not enabled, depthBiasRepresentation must not be VK_DEPTH_BIAS_REPRESENTATION_FLOAT_EXT" + "text": "If the floatRepresentation feature is not enabled, depthBiasRepresentation must not be VK_DEPTH_BIAS_REPRESENTATION_FLOAT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkDepthBiasRepresentationInfoEXT-depthBiasExact-08949", - "text": " If the depthBiasExact feature is not enabled, depthBiasExact must be VK_FALSE" + "text": "If the depthBiasExact feature is not enabled, depthBiasExact must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-VkDepthBiasRepresentationInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEPTH_BIAS_REPRESENTATION_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_DEPTH_BIAS_REPRESENTATION_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkDepthBiasRepresentationInfoEXT-depthBiasRepresentation-parameter", - "text": " depthBiasRepresentation must be a valid VkDepthBiasRepresentationEXT value" + "text": "depthBiasRepresentation must be a valid VkDepthBiasRepresentationEXT value", + "page": "vkspec" } ] }, @@ -56154,19 +72908,23 @@ "core": [ { "vuid": "VUID-VkDepthBiasInfoEXT-depthBiasClamp-08950", - "text": " If the depthBiasClamp feature is not enabled, depthBiasClamp must be 0.0" + "text": "If the depthBiasClamp feature is not enabled, depthBiasClamp must be 0.0", + "page": "vkspec" }, { "vuid": "VUID-VkDepthBiasInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEPTH_BIAS_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_DEPTH_BIAS_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkDepthBiasInfoEXT-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkDepthBiasRepresentationInfoEXT" + "text": "pNext must be NULL or a pointer to a valid instance of VkDepthBiasRepresentationInfoEXT", + "page": "vkspec" }, { "vuid": "VUID-VkDepthBiasInfoEXT-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" } ] }, @@ -56174,23 +72932,28 @@ "core": [ { "vuid": "VUID-vkCmdSetDepthBias2EXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDepthBias2EXT-pDepthBiasInfo-parameter", - "text": " pDepthBiasInfo must be a valid pointer to a valid VkDepthBiasInfoEXT structure" + "text": "pDepthBiasInfo must be a valid pointer to a valid VkDepthBiasInfoEXT structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDepthBias2EXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDepthBias2EXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDepthBias2EXT-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -56198,19 +72961,23 @@ "core": [ { "vuid": "VUID-VkPipelineRasterizationConservativeStateCreateInfoEXT-extraPrimitiveOverestimationSize-01769", - "text": " extraPrimitiveOverestimationSize must be in the range of 0.0 to VkPhysicalDeviceConservativeRasterizationPropertiesEXT::maxExtraPrimitiveOverestimationSize inclusive" + "text": "extraPrimitiveOverestimationSize must be in the range of 0.0 to VkPhysicalDeviceConservativeRasterizationPropertiesEXT::maxExtraPrimitiveOverestimationSize inclusive", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineRasterizationConservativeStateCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineRasterizationConservativeStateCreateInfoEXT-flags-zerobitmask", - "text": " flags must be 0" + "text": "flags must be 0", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineRasterizationConservativeStateCreateInfoEXT-conservativeRasterizationMode-parameter", - "text": " conservativeRasterizationMode must be a valid VkConservativeRasterizationModeEXT value" + "text": "conservativeRasterizationMode must be a valid VkConservativeRasterizationModeEXT value", + "page": "vkspec" } ] }, @@ -56218,27 +72985,33 @@ "core": [ { "vuid": "VUID-vkCmdSetConservativeRasterizationModeEXT-None-08570", - "text": " Either the extendedDynamicState3ConservativeRasterizationMode feature or the shaderObject feature or both must be enabled" + "text": "Either the extendedDynamicState3ConservativeRasterizationMode feature or the shaderObject feature or both must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetConservativeRasterizationModeEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetConservativeRasterizationModeEXT-conservativeRasterizationMode-parameter", - "text": " conservativeRasterizationMode must be a valid VkConservativeRasterizationModeEXT value" + "text": "conservativeRasterizationMode must be a valid VkConservativeRasterizationModeEXT value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetConservativeRasterizationModeEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetConservativeRasterizationModeEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetConservativeRasterizationModeEXT-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -56246,27 +73019,33 @@ "core": [ { "vuid": "VUID-vkCmdSetExtraPrimitiveOverestimationSizeEXT-None-08572", - "text": " Either the extendedDynamicState3ExtraPrimitiveOverestimationSize feature or the shaderObject feature or both must be enabled" + "text": "Either the extendedDynamicState3ExtraPrimitiveOverestimationSize feature or the shaderObject feature or both must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetExtraPrimitiveOverestimationSizeEXT-extraPrimitiveOverestimationSize-07428", - "text": " extraPrimitiveOverestimationSize must be in the range of 0.0 to VkPhysicalDeviceConservativeRasterizationPropertiesEXT::maxExtraPrimitiveOverestimationSize inclusive" + "text": "extraPrimitiveOverestimationSize must be in the range of 0.0 to VkPhysicalDeviceConservativeRasterizationPropertiesEXT::maxExtraPrimitiveOverestimationSize inclusive", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetExtraPrimitiveOverestimationSizeEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetExtraPrimitiveOverestimationSizeEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetExtraPrimitiveOverestimationSizeEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetExtraPrimitiveOverestimationSizeEXT-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -56274,19 +73053,23 @@ "core": [ { "vuid": "VUID-VkPipelineDiscardRectangleStateCreateInfoEXT-discardRectangleCount-00582", - "text": " discardRectangleCount must be less than or equal to VkPhysicalDeviceDiscardRectanglePropertiesEXT::maxDiscardRectangles" + "text": "discardRectangleCount must be less than or equal to VkPhysicalDeviceDiscardRectanglePropertiesEXT::maxDiscardRectangles", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineDiscardRectangleStateCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineDiscardRectangleStateCreateInfoEXT-flags-zerobitmask", - "text": " flags must be 0" + "text": "flags must be 0", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineDiscardRectangleStateCreateInfoEXT-discardRectangleMode-parameter", - "text": " discardRectangleMode must be a valid VkDiscardRectangleModeEXT value" + "text": "discardRectangleMode must be a valid VkDiscardRectangleModeEXT value", + "page": "vkspec" } ] }, @@ -56294,47 +73077,58 @@ "core": [ { "vuid": "VUID-vkCmdSetDiscardRectangleEXT-firstDiscardRectangle-00585", - "text": " The sum of firstDiscardRectangle and discardRectangleCount must be less than or equal to VkPhysicalDeviceDiscardRectanglePropertiesEXT::maxDiscardRectangles" + "text": "The sum of firstDiscardRectangle and discardRectangleCount must be less than or equal to VkPhysicalDeviceDiscardRectanglePropertiesEXT::maxDiscardRectangles", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDiscardRectangleEXT-x-00587", - "text": " The x and y member of offset in each VkRect2D element of pDiscardRectangles must be greater than or equal to 0" + "text": "The x and y member of offset in each VkRect2D element of pDiscardRectangles must be greater than or equal to 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDiscardRectangleEXT-offset-00588", - "text": " Evaluation of (offset.x + extent.width) in each VkRect2D element of pDiscardRectangles must not cause a signed integer addition overflow" + "text": "Evaluation of (offset.x + extent.width) in each VkRect2D element of pDiscardRectangles must not cause a signed integer addition overflow", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDiscardRectangleEXT-offset-00589", - "text": " Evaluation of (offset.y + extent.height) in each VkRect2D element of pDiscardRectangles must not cause a signed integer addition overflow" + "text": "Evaluation of (offset.y + extent.height) in each VkRect2D element of pDiscardRectangles must not cause a signed integer addition overflow", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDiscardRectangleEXT-viewportScissor2D-04788", - "text": " If this command is recorded in a secondary command buffer with VkCommandBufferInheritanceViewportScissorInfoNV::viewportScissor2D enabled, then this function must not be called" + "text": "If this command is recorded in a secondary command buffer with VkCommandBufferInheritanceViewportScissorInfoNV::viewportScissor2D enabled, then this function must not be called", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDiscardRectangleEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDiscardRectangleEXT-pDiscardRectangles-parameter", - "text": " pDiscardRectangles must be a valid pointer to an array of discardRectangleCount VkRect2D structures" + "text": "pDiscardRectangles must be a valid pointer to an array of discardRectangleCount VkRect2D structures", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDiscardRectangleEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDiscardRectangleEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDiscardRectangleEXT-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDiscardRectangleEXT-discardRectangleCount-arraylength", - "text": " discardRectangleCount must be greater than 0" + "text": "discardRectangleCount must be greater than 0", + "page": "vkspec" } ] }, @@ -56342,23 +73136,28 @@ "core": [ { "vuid": "VUID-vkCmdSetDiscardRectangleEnableEXT-specVersion-07851", - "text": " The VK_EXT_discard_rectangles extension must be enabled, and the implementation must support at least specVersion 2 of this extension" + "text": "The VK_EXT_discard_rectangles extension must be enabled, and the implementation must support at least specVersion 2 of this extension", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDiscardRectangleEnableEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDiscardRectangleEnableEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDiscardRectangleEnableEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDiscardRectangleEnableEXT-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -56366,27 +73165,33 @@ "core": [ { "vuid": "VUID-vkCmdSetDiscardRectangleModeEXT-specVersion-07852", - "text": " The VK_EXT_discard_rectangles extension must be enabled, and the implementation must support at least specVersion 2 of this extension" + "text": "The VK_EXT_discard_rectangles extension must be enabled, and the implementation must support at least specVersion 2 of this extension", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDiscardRectangleModeEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDiscardRectangleModeEXT-discardRectangleMode-parameter", - "text": " discardRectangleMode must be a valid VkDiscardRectangleModeEXT value" + "text": "discardRectangleMode must be a valid VkDiscardRectangleModeEXT value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDiscardRectangleModeEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDiscardRectangleModeEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDiscardRectangleModeEXT-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -56394,55 +73199,68 @@ "core": [ { "vuid": "VUID-vkCmdSetScissor-firstScissor-00592", - "text": " The sum of firstScissor and scissorCount must be between 1 and VkPhysicalDeviceLimits::maxViewports, inclusive" + "text": "The sum of firstScissor and scissorCount must be between 1 and VkPhysicalDeviceLimits::maxViewports, inclusive", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetScissor-firstScissor-00593", - "text": " If the multiViewport feature is not enabled, firstScissor must be 0" + "text": "If the multiViewport feature is not enabled, firstScissor must be 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetScissor-scissorCount-00594", - "text": " If the multiViewport feature is not enabled, scissorCount must be 1" + "text": "If the multiViewport feature is not enabled, scissorCount must be 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetScissor-x-00595", - "text": " The x and y members of offset member of any element of pScissors must be greater than or equal to 0" + "text": "The x and y members of offset member of any element of pScissors must be greater than or equal to 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetScissor-offset-00596", - "text": " Evaluation of (offset.x + extent.width) must not cause a signed integer addition overflow for any element of pScissors" + "text": "Evaluation of (offset.x + extent.width) must not cause a signed integer addition overflow for any element of pScissors", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetScissor-offset-00597", - "text": " Evaluation of (offset.y + extent.height) must not cause a signed integer addition overflow for any element of pScissors" + "text": "Evaluation of (offset.y + extent.height) must not cause a signed integer addition overflow for any element of pScissors", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetScissor-viewportScissor2D-04789", - "text": " If this command is recorded in a secondary command buffer with VkCommandBufferInheritanceViewportScissorInfoNV::viewportScissor2D enabled, then this function must not be called" + "text": "If this command is recorded in a secondary command buffer with VkCommandBufferInheritanceViewportScissorInfoNV::viewportScissor2D enabled, then this function must not be called", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetScissor-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetScissor-pScissors-parameter", - "text": " pScissors must be a valid pointer to an array of scissorCount VkRect2D structures" + "text": "pScissors must be a valid pointer to an array of scissorCount VkRect2D structures", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetScissor-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetScissor-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetScissor-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetScissor-scissorCount-arraylength", - "text": " scissorCount must be greater than 0" + "text": "scissorCount must be greater than 0", + "page": "vkspec" } ] }, @@ -56450,19 +73268,23 @@ "core": [ { "vuid": "VUID-VkPipelineViewportExclusiveScissorStateCreateInfoNV-exclusiveScissorCount-02027", - "text": " If the multiViewport feature is not enabled, exclusiveScissorCount must be 0 or 1" + "text": "If the multiViewport feature is not enabled, exclusiveScissorCount must be 0 or 1", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineViewportExclusiveScissorStateCreateInfoNV-exclusiveScissorCount-02028", - "text": " exclusiveScissorCount must be less than or equal to VkPhysicalDeviceLimits::maxViewports" + "text": "exclusiveScissorCount must be less than or equal to VkPhysicalDeviceLimits::maxViewports", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineViewportExclusiveScissorStateCreateInfoNV-exclusiveScissorCount-02029", - "text": " exclusiveScissorCount must be 0 or greater than or equal to the viewportCount member of VkPipelineViewportStateCreateInfo" + "text": "exclusiveScissorCount must be 0 or greater than or equal to the viewportCount member of VkPipelineViewportStateCreateInfo", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineViewportExclusiveScissorStateCreateInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV" + "text": "sType must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV", + "page": "vkspec" } ] }, @@ -56470,55 +73292,68 @@ "core": [ { "vuid": "VUID-vkCmdSetExclusiveScissorNV-None-02031", - "text": " The exclusiveScissor feature must be enabled" + "text": "The exclusiveScissor feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetExclusiveScissorNV-firstExclusiveScissor-02034", - "text": " The sum of firstExclusiveScissor and exclusiveScissorCount must be between 1 and VkPhysicalDeviceLimits::maxViewports, inclusive" + "text": "The sum of firstExclusiveScissor and exclusiveScissorCount must be between 1 and VkPhysicalDeviceLimits::maxViewports, inclusive", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetExclusiveScissorNV-firstExclusiveScissor-02035", - "text": " If the multiViewport feature is not enabled, firstExclusiveScissor must be 0" + "text": "If the multiViewport feature is not enabled, firstExclusiveScissor must be 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetExclusiveScissorNV-exclusiveScissorCount-02036", - "text": " If the multiViewport feature is not enabled, exclusiveScissorCount must be 1" + "text": "If the multiViewport feature is not enabled, exclusiveScissorCount must be 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetExclusiveScissorNV-x-02037", - "text": " The x and y members of offset in each member of pExclusiveScissors must be greater than or equal to 0" + "text": "The x and y members of offset in each member of pExclusiveScissors must be greater than or equal to 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetExclusiveScissorNV-offset-02038", - "text": " Evaluation of (offset.x + extent.width) for each member of pExclusiveScissors must not cause a signed integer addition overflow" + "text": "Evaluation of (offset.x + extent.width) for each member of pExclusiveScissors must not cause a signed integer addition overflow", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetExclusiveScissorNV-offset-02039", - "text": " Evaluation of (offset.y + extent.height) for each member of pExclusiveScissors must not cause a signed integer addition overflow" + "text": "Evaluation of (offset.y + extent.height) for each member of pExclusiveScissors must not cause a signed integer addition overflow", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetExclusiveScissorNV-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetExclusiveScissorNV-pExclusiveScissors-parameter", - "text": " pExclusiveScissors must be a valid pointer to an array of exclusiveScissorCount VkRect2D structures" + "text": "pExclusiveScissors must be a valid pointer to an array of exclusiveScissorCount VkRect2D structures", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetExclusiveScissorNV-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetExclusiveScissorNV-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetExclusiveScissorNV-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetExclusiveScissorNV-exclusiveScissorCount-arraylength", - "text": " exclusiveScissorCount must be greater than 0" + "text": "exclusiveScissorCount must be greater than 0", + "page": "vkspec" } ] }, @@ -56526,31 +73361,38 @@ "core": [ { "vuid": "VUID-vkCmdSetExclusiveScissorEnableNV-exclusiveScissor-07853", - "text": " The exclusiveScissor feature must be enabled, and the implementation must support at least specVersion 2 of the VK_NV_scissor_exclusive extension" + "text": "The exclusiveScissor feature must be enabled, and the implementation must support at least specVersion 2 of the VK_NV_scissor_exclusive extension", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetExclusiveScissorEnableNV-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetExclusiveScissorEnableNV-pExclusiveScissorEnables-parameter", - "text": " pExclusiveScissorEnables must be a valid pointer to an array of exclusiveScissorCount VkBool32 values" + "text": "pExclusiveScissorEnables must be a valid pointer to an array of exclusiveScissorCount VkBool32 values", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetExclusiveScissorEnableNV-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetExclusiveScissorEnableNV-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetExclusiveScissorEnableNV-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetExclusiveScissorEnableNV-exclusiveScissorCount-arraylength", - "text": " exclusiveScissorCount must be greater than 0" + "text": "exclusiveScissorCount must be greater than 0", + "page": "vkspec" } ] }, @@ -56558,31 +73400,38 @@ "core": [ { "vuid": "VUID-vkCmdSetSampleMaskEXT-None-08504", - "text": " Either the extendedDynamicState3SampleMask feature or the shaderObject feature or both must be enabled" + "text": "Either the extendedDynamicState3SampleMask feature or the shaderObject feature or both must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetSampleMaskEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetSampleMaskEXT-samples-parameter", - "text": " samples must be a valid VkSampleCountFlagBits value" + "text": "samples must be a valid VkSampleCountFlagBits value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetSampleMaskEXT-pSampleMask-parameter", - "text": " pSampleMask must be a valid pointer to an array of \\(\\lceil{\\mathit{samples} \\over 32}\\rceil\\) VkSampleMask values" + "text": "pSampleMask must be a valid pointer to an array of \\(\\lceil{\\mathit{samples} \\over 32}\\rceil\\) VkSampleMask values", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetSampleMaskEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetSampleMaskEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetSampleMaskEXT-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -56590,23 +73439,28 @@ "core": [ { "vuid": "VUID-vkCmdSetAlphaToCoverageEnableEXT-None-08506", - "text": " Either the extendedDynamicState3AlphaToCoverageEnable feature or the shaderObject feature or both must be enabled" + "text": "Either the extendedDynamicState3AlphaToCoverageEnable feature or the shaderObject feature or both must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetAlphaToCoverageEnableEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetAlphaToCoverageEnableEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetAlphaToCoverageEnableEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetAlphaToCoverageEnableEXT-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -56614,27 +73468,33 @@ "core": [ { "vuid": "VUID-vkCmdSetAlphaToOneEnableEXT-None-08508", - "text": " Either the extendedDynamicState3AlphaToOneEnable feature or the shaderObject feature or both must be enabled" + "text": "Either the extendedDynamicState3AlphaToOneEnable feature or the shaderObject feature or both must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetAlphaToOneEnableEXT-alphaToOne-07607", - "text": " If the alphaToOne feature is not enabled, alphaToOneEnable must be VK_FALSE" + "text": "If the alphaToOne feature is not enabled, alphaToOneEnable must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetAlphaToOneEnableEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetAlphaToOneEnableEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetAlphaToOneEnableEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetAlphaToOneEnableEXT-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -56642,43 +73502,53 @@ "core": [ { "vuid": "VUID-VkPipelineDepthStencilStateCreateInfo-depthBoundsTestEnable-00598", - "text": " If the depthBounds feature is not enabled, depthBoundsTestEnable must be VK_FALSE" + "text": "If the depthBounds feature is not enabled, depthBoundsTestEnable must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineDepthStencilStateCreateInfo-separateStencilMaskRef-04453", - "text": " If the VK_KHR_portability_subset extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::separateStencilMaskRef is VK_FALSE, and the value of VkPipelineDepthStencilStateCreateInfo::stencilTestEnable is VK_TRUE, and the value of VkPipelineRasterizationStateCreateInfo::cullMode is VK_CULL_MODE_NONE, the value of reference in each of the VkStencilOpState structs in front and back must be the same" + "text": "If the VK_KHR_portability_subset extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::separateStencilMaskRef is VK_FALSE, and the value of VkPipelineDepthStencilStateCreateInfo::stencilTestEnable is VK_TRUE, and the value of VkPipelineRasterizationStateCreateInfo::cullMode is VK_CULL_MODE_NONE, the value of reference in each of the VkStencilOpState structs in front and back must be the same", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineDepthStencilStateCreateInfo-rasterizationOrderDepthAttachmentAccess-06463", - "text": " If the rasterizationOrderDepthAttachmentAccess feature is not enabled, flags must not include VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT" + "text": "If the rasterizationOrderDepthAttachmentAccess feature is not enabled, flags must not include VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineDepthStencilStateCreateInfo-rasterizationOrderStencilAttachmentAccess-06464", - "text": " If the rasterizationOrderStencilAttachmentAccess feature is not enabled, flags must not include VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT" + "text": "If the rasterizationOrderStencilAttachmentAccess feature is not enabled, flags must not include VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineDepthStencilStateCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineDepthStencilStateCreateInfo-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineDepthStencilStateCreateInfo-flags-parameter", - "text": " flags must be a valid combination of VkPipelineDepthStencilStateCreateFlagBits values" + "text": "flags must be a valid combination of VkPipelineDepthStencilStateCreateFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineDepthStencilStateCreateInfo-depthCompareOp-parameter", - "text": " depthCompareOp must be a valid VkCompareOp value" + "text": "depthCompareOp must be a valid VkCompareOp value", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineDepthStencilStateCreateInfo-front-parameter", - "text": " front must be a valid VkStencilOpState structure" + "text": "front must be a valid VkStencilOpState structure", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineDepthStencilStateCreateInfo-back-parameter", - "text": " back must be a valid VkStencilOpState structure" + "text": "back must be a valid VkStencilOpState structure", + "page": "vkspec" } ] }, @@ -56686,23 +73556,28 @@ "core": [ { "vuid": "VUID-vkCmdSetDepthBoundsTestEnable-None-08971", - "text": " At least one of the following must be true:
\n\n
" + "text": "At least one of the following must be true:
\n\n
", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDepthBoundsTestEnable-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDepthBoundsTestEnable-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDepthBoundsTestEnable-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDepthBoundsTestEnable-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -56710,27 +73585,33 @@ "core": [ { "vuid": "VUID-vkCmdSetDepthBounds-minDepthBounds-00600", - "text": " If the VK_EXT_depth_range_unrestricted extension is not enabled minDepthBounds must be between 0.0 and 1.0, inclusive" + "text": "If the VK_EXT_depth_range_unrestricted extension is not enabled minDepthBounds must be between 0.0 and 1.0, inclusive", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDepthBounds-maxDepthBounds-00601", - "text": " If the VK_EXT_depth_range_unrestricted extension is not enabled maxDepthBounds must be between 0.0 and 1.0, inclusive" + "text": "If the VK_EXT_depth_range_unrestricted extension is not enabled maxDepthBounds must be between 0.0 and 1.0, inclusive", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDepthBounds-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDepthBounds-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDepthBounds-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDepthBounds-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -56738,23 +73619,28 @@ "core": [ { "vuid": "VUID-vkCmdSetStencilTestEnable-None-08971", - "text": " At least one of the following must be true:
\n\n
" + "text": "At least one of the following must be true:
\n\n
", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetStencilTestEnable-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetStencilTestEnable-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetStencilTestEnable-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetStencilTestEnable-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -56762,47 +73648,58 @@ "core": [ { "vuid": "VUID-vkCmdSetStencilOp-None-08971", - "text": " At least one of the following must be true:
\n\n
" + "text": "At least one of the following must be true:
\n\n
", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetStencilOp-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetStencilOp-faceMask-parameter", - "text": " faceMask must be a valid combination of VkStencilFaceFlagBits values" + "text": "faceMask must be a valid combination of VkStencilFaceFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetStencilOp-faceMask-requiredbitmask", - "text": " faceMask must not be 0" + "text": "faceMask must not be 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetStencilOp-failOp-parameter", - "text": " failOp must be a valid VkStencilOp value" + "text": "failOp must be a valid VkStencilOp value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetStencilOp-passOp-parameter", - "text": " passOp must be a valid VkStencilOp value" + "text": "passOp must be a valid VkStencilOp value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetStencilOp-depthFailOp-parameter", - "text": " depthFailOp must be a valid VkStencilOp value" + "text": "depthFailOp must be a valid VkStencilOp value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetStencilOp-compareOp-parameter", - "text": " compareOp must be a valid VkCompareOp value" + "text": "compareOp must be a valid VkCompareOp value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetStencilOp-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetStencilOp-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetStencilOp-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -56810,19 +73707,23 @@ "core": [ { "vuid": "VUID-VkStencilOpState-failOp-parameter", - "text": " failOp must be a valid VkStencilOp value" + "text": "failOp must be a valid VkStencilOp value", + "page": "vkspec" }, { "vuid": "VUID-VkStencilOpState-passOp-parameter", - "text": " passOp must be a valid VkStencilOp value" + "text": "passOp must be a valid VkStencilOp value", + "page": "vkspec" }, { "vuid": "VUID-VkStencilOpState-depthFailOp-parameter", - "text": " depthFailOp must be a valid VkStencilOp value" + "text": "depthFailOp must be a valid VkStencilOp value", + "page": "vkspec" }, { "vuid": "VUID-VkStencilOpState-compareOp-parameter", - "text": " compareOp must be a valid VkCompareOp value" + "text": "compareOp must be a valid VkCompareOp value", + "page": "vkspec" } ] }, @@ -56830,27 +73731,33 @@ "core": [ { "vuid": "VUID-vkCmdSetStencilCompareMask-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetStencilCompareMask-faceMask-parameter", - "text": " faceMask must be a valid combination of VkStencilFaceFlagBits values" + "text": "faceMask must be a valid combination of VkStencilFaceFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetStencilCompareMask-faceMask-requiredbitmask", - "text": " faceMask must not be 0" + "text": "faceMask must not be 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetStencilCompareMask-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetStencilCompareMask-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetStencilCompareMask-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -56858,27 +73765,33 @@ "core": [ { "vuid": "VUID-vkCmdSetStencilWriteMask-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetStencilWriteMask-faceMask-parameter", - "text": " faceMask must be a valid combination of VkStencilFaceFlagBits values" + "text": "faceMask must be a valid combination of VkStencilFaceFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetStencilWriteMask-faceMask-requiredbitmask", - "text": " faceMask must not be 0" + "text": "faceMask must not be 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetStencilWriteMask-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetStencilWriteMask-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetStencilWriteMask-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -56886,27 +73799,33 @@ "core": [ { "vuid": "VUID-vkCmdSetStencilReference-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetStencilReference-faceMask-parameter", - "text": " faceMask must be a valid combination of VkStencilFaceFlagBits values" + "text": "faceMask must be a valid combination of VkStencilFaceFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetStencilReference-faceMask-requiredbitmask", - "text": " faceMask must not be 0" + "text": "faceMask must not be 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetStencilReference-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetStencilReference-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetStencilReference-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -56914,23 +73833,28 @@ "core": [ { "vuid": "VUID-vkCmdSetDepthTestEnable-None-08971", - "text": " At least one of the following must be true:
\n\n
" + "text": "At least one of the following must be true:
\n\n
", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDepthTestEnable-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDepthTestEnable-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDepthTestEnable-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDepthTestEnable-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -56938,27 +73862,33 @@ "core": [ { "vuid": "VUID-vkCmdSetDepthCompareOp-None-08971", - "text": " At least one of the following must be true:
\n\n
" + "text": "At least one of the following must be true:
\n\n
", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDepthCompareOp-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDepthCompareOp-depthCompareOp-parameter", - "text": " depthCompareOp must be a valid VkCompareOp value" + "text": "depthCompareOp must be a valid VkCompareOp value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDepthCompareOp-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDepthCompareOp-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDepthCompareOp-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -56966,23 +73896,28 @@ "core": [ { "vuid": "VUID-vkCmdSetDepthWriteEnable-None-08971", - "text": " At least one of the following must be true:
\n\n
" + "text": "At least one of the following must be true:
\n\n
", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDepthWriteEnable-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDepthWriteEnable-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDepthWriteEnable-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetDepthWriteEnable-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -56990,7 +73925,8 @@ "core": [ { "vuid": "VUID-VkPipelineRepresentativeFragmentTestStateCreateInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV" + "text": "sType must be VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV", + "page": "vkspec" } ] }, @@ -56998,23 +73934,28 @@ "core": [ { "vuid": "VUID-vkCmdSetRepresentativeFragmentTestEnableNV-None-08522", - "text": " Either the extendedDynamicState3RepresentativeFragmentTestEnable feature or the shaderObject feature or both must be enabled" + "text": "Either the extendedDynamicState3RepresentativeFragmentTestEnable feature or the shaderObject feature or both must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetRepresentativeFragmentTestEnableNV-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetRepresentativeFragmentTestEnableNV-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetRepresentativeFragmentTestEnableNV-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetRepresentativeFragmentTestEnableNV-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -57022,15 +73963,18 @@ "core": [ { "vuid": "VUID-VkPipelineCoverageToColorStateCreateInfoNV-coverageToColorEnable-01404", - "text": " If coverageToColorEnable is VK_TRUE, then the render pass subpass indicated by VkGraphicsPipelineCreateInfo::renderPass and VkGraphicsPipelineCreateInfo::subpass must have a color attachment at the location selected by coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT" + "text": "If coverageToColorEnable is VK_TRUE, then the render pass subpass indicated by VkGraphicsPipelineCreateInfo::renderPass and VkGraphicsPipelineCreateInfo::subpass must have a color attachment at the location selected by coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineCoverageToColorStateCreateInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV" + "text": "sType must be VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineCoverageToColorStateCreateInfoNV-flags-zerobitmask", - "text": " flags must be 0" + "text": "flags must be 0", + "page": "vkspec" } ] }, @@ -57038,23 +73982,28 @@ "core": [ { "vuid": "VUID-vkCmdSetCoverageToColorEnableNV-None-08524", - "text": " Either the extendedDynamicState3CoverageToColorEnable feature or the shaderObject feature or both must be enabled" + "text": "Either the extendedDynamicState3CoverageToColorEnable feature or the shaderObject feature or both must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetCoverageToColorEnableNV-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetCoverageToColorEnableNV-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetCoverageToColorEnableNV-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetCoverageToColorEnableNV-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -57062,23 +74011,28 @@ "core": [ { "vuid": "VUID-vkCmdSetCoverageToColorLocationNV-None-08526", - "text": " Either the extendedDynamicState3CoverageToColorLocation feature or the shaderObject feature or both must be enabled" + "text": "Either the extendedDynamicState3CoverageToColorLocation feature or the shaderObject feature or both must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetCoverageToColorLocationNV-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetCoverageToColorLocationNV-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetCoverageToColorLocationNV-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetCoverageToColorLocationNV-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -57086,15 +74040,18 @@ "core": [ { "vuid": "VUID-VkPipelineCoverageReductionStateCreateInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV" + "text": "sType must be VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineCoverageReductionStateCreateInfoNV-flags-zerobitmask", - "text": " flags must be 0" + "text": "flags must be 0", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineCoverageReductionStateCreateInfoNV-coverageReductionMode-parameter", - "text": " coverageReductionMode must be a valid VkCoverageReductionModeNV value" + "text": "coverageReductionMode must be a valid VkCoverageReductionModeNV value", + "page": "vkspec" } ] }, @@ -57102,27 +74059,33 @@ "core": [ { "vuid": "VUID-vkCmdSetCoverageReductionModeNV-None-08528", - "text": " Either the extendedDynamicState3CoverageReductionMode feature or the shaderObject feature or both must be enabled" + "text": "Either the extendedDynamicState3CoverageReductionMode feature or the shaderObject feature or both must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetCoverageReductionModeNV-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetCoverageReductionModeNV-coverageReductionMode-parameter", - "text": " coverageReductionMode must be a valid VkCoverageReductionModeNV value" + "text": "coverageReductionMode must be a valid VkCoverageReductionModeNV value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetCoverageReductionModeNV-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetCoverageReductionModeNV-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetCoverageReductionModeNV-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -57130,15 +74093,18 @@ "core": [ { "vuid": "VUID-vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": "physicalDevice must be a valid VkPhysicalDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV-pCombinationCount-parameter", - "text": " pCombinationCount must be a valid pointer to a uint32_t value" + "text": "pCombinationCount must be a valid pointer to a uint32_t value", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV-pCombinations-parameter", - "text": " If the value referenced by pCombinationCount is not 0, and pCombinations is not NULL, pCombinations must be a valid pointer to an array of pCombinationCount VkFramebufferMixedSamplesCombinationNV structures" + "text": "If the value referenced by pCombinationCount is not 0, and pCombinations is not NULL, pCombinations must be a valid pointer to an array of pCombinationCount VkFramebufferMixedSamplesCombinationNV structures", + "page": "vkspec" } ] }, @@ -57146,11 +74112,13 @@ "core": [ { "vuid": "VUID-VkFramebufferMixedSamplesCombinationNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV" + "text": "sType must be VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV", + "page": "vkspec" }, { "vuid": "VUID-VkFramebufferMixedSamplesCombinationNV-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" } ] }, @@ -57158,19 +74126,23 @@ "core": [ { "vuid": "VUID-VkPipelineCoverageModulationStateCreateInfoNV-coverageModulationTableEnable-01405", - "text": " If coverageModulationTableEnable is VK_TRUE, coverageModulationTableCount must be equal to the number of rasterization samples divided by the number of color samples in the subpass" + "text": "If coverageModulationTableEnable is VK_TRUE, coverageModulationTableCount must be equal to the number of rasterization samples divided by the number of color samples in the subpass", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineCoverageModulationStateCreateInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV" + "text": "sType must be VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineCoverageModulationStateCreateInfoNV-flags-zerobitmask", - "text": " flags must be 0" + "text": "flags must be 0", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineCoverageModulationStateCreateInfoNV-coverageModulationMode-parameter", - "text": " coverageModulationMode must be a valid VkCoverageModulationModeNV value" + "text": "coverageModulationMode must be a valid VkCoverageModulationModeNV value", + "page": "vkspec" } ] }, @@ -57178,27 +74150,33 @@ "core": [ { "vuid": "VUID-vkCmdSetCoverageModulationModeNV-None-08530", - "text": " Either the extendedDynamicState3CoverageModulationMode feature or the shaderObject feature or both must be enabled" + "text": "Either the extendedDynamicState3CoverageModulationMode feature or the shaderObject feature or both must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetCoverageModulationModeNV-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetCoverageModulationModeNV-coverageModulationMode-parameter", - "text": " coverageModulationMode must be a valid VkCoverageModulationModeNV value" + "text": "coverageModulationMode must be a valid VkCoverageModulationModeNV value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetCoverageModulationModeNV-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetCoverageModulationModeNV-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetCoverageModulationModeNV-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -57206,23 +74184,28 @@ "core": [ { "vuid": "VUID-vkCmdSetCoverageModulationTableEnableNV-None-08532", - "text": " Either the extendedDynamicState3CoverageModulationTableEnable feature or the shaderObject feature or both must be enabled" + "text": "Either the extendedDynamicState3CoverageModulationTableEnable feature or the shaderObject feature or both must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetCoverageModulationTableEnableNV-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetCoverageModulationTableEnableNV-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetCoverageModulationTableEnableNV-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetCoverageModulationTableEnableNV-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -57230,31 +74213,38 @@ "core": [ { "vuid": "VUID-vkCmdSetCoverageModulationTableNV-None-08534", - "text": " Either the extendedDynamicState3CoverageModulationTable feature or the shaderObject feature or both must be enabled" + "text": "Either the extendedDynamicState3CoverageModulationTable feature or the shaderObject feature or both must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetCoverageModulationTableNV-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetCoverageModulationTableNV-pCoverageModulationTable-parameter", - "text": " pCoverageModulationTable must be a valid pointer to an array of coverageModulationTableCount float values" + "text": "pCoverageModulationTable must be a valid pointer to an array of coverageModulationTableCount float values", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetCoverageModulationTableNV-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetCoverageModulationTableNV-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetCoverageModulationTableNV-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetCoverageModulationTableNV-coverageModulationTableCount-arraylength", - "text": " coverageModulationTableCount must be greater than 0" + "text": "coverageModulationTableCount must be greater than 0", + "page": "vkspec" } ] }, @@ -57262,43 +74252,53 @@ "core": [ { "vuid": "VUID-VkPipelineColorBlendStateCreateInfo-pAttachments-00605", - "text": " If the independentBlend feature is not enabled, all elements of pAttachments must be identical" + "text": "If the independentBlend feature is not enabled, all elements of pAttachments must be identical", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineColorBlendStateCreateInfo-logicOpEnable-00606", - "text": " If the logicOp feature is not enabled, logicOpEnable must be VK_FALSE" + "text": "If the logicOp feature is not enabled, logicOpEnable must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineColorBlendStateCreateInfo-logicOpEnable-00607", - "text": " If logicOpEnable is VK_TRUE, logicOp must be a valid VkLogicOp value" + "text": "If logicOpEnable is VK_TRUE, logicOp must be a valid VkLogicOp value", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineColorBlendStateCreateInfo-rasterizationOrderColorAttachmentAccess-06465", - "text": " If the rasterizationOrderColorAttachmentAccess feature is not enabled, flags must not include VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT" + "text": "If the rasterizationOrderColorAttachmentAccess feature is not enabled, flags must not include VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineColorBlendStateCreateInfo-pAttachments-07353", - "text": " If attachmentCount is not 0, and any of VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT, VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT, VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT, or VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT are not set, pAttachments must be a valid pointer to an array of attachmentCount valid VkPipelineColorBlendAttachmentState structures" + "text": "If attachmentCount is not 0 , and any of VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT, VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT, VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT, or VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT are not set, pAttachments must be a valid pointer to an array of attachmentCount valid VkPipelineColorBlendAttachmentState structures", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineColorBlendStateCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineColorBlendStateCreateInfo-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 VkPipelineColorBlendAdvancedStateCreateInfoEXT or VkPipelineColorWriteCreateInfoEXT" + "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 VkPipelineColorBlendAdvancedStateCreateInfoEXT or VkPipelineColorWriteCreateInfoEXT", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineColorBlendStateCreateInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineColorBlendStateCreateInfo-flags-parameter", - "text": " flags must be a valid combination of VkPipelineColorBlendStateCreateFlagBits values" + "text": "flags must be a valid combination of VkPipelineColorBlendStateCreateFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineColorBlendStateCreateInfo-pAttachments-parameter", - "text": " If attachmentCount is not 0, and pAttachments is not NULL, pAttachments must be a valid pointer to an array of attachmentCount valid VkPipelineColorBlendAttachmentState structures" + "text": "If attachmentCount is not 0, and pAttachments is not NULL, pAttachments must be a valid pointer to an array of attachmentCount valid VkPipelineColorBlendAttachmentState structures", + "page": "vkspec" } ] }, @@ -57306,75 +74306,93 @@ "core": [ { "vuid": "VUID-VkPipelineColorBlendAttachmentState-srcColorBlendFactor-00608", - "text": " If the dualSrcBlend feature is not enabled, srcColorBlendFactor must not be VK_BLEND_FACTOR_SRC1_COLOR, VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR, VK_BLEND_FACTOR_SRC1_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA" + "text": "If the dualSrcBlend feature is not enabled, srcColorBlendFactor must not be VK_BLEND_FACTOR_SRC1_COLOR, VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR, VK_BLEND_FACTOR_SRC1_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineColorBlendAttachmentState-dstColorBlendFactor-00609", - "text": " If the dualSrcBlend feature is not enabled, dstColorBlendFactor must not be VK_BLEND_FACTOR_SRC1_COLOR, VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR, VK_BLEND_FACTOR_SRC1_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA" + "text": "If the dualSrcBlend feature is not enabled, dstColorBlendFactor must not be VK_BLEND_FACTOR_SRC1_COLOR, VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR, VK_BLEND_FACTOR_SRC1_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineColorBlendAttachmentState-srcAlphaBlendFactor-00610", - "text": " If the dualSrcBlend feature is not enabled, srcAlphaBlendFactor must not be VK_BLEND_FACTOR_SRC1_COLOR, VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR, VK_BLEND_FACTOR_SRC1_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA" + "text": "If the dualSrcBlend feature is not enabled, srcAlphaBlendFactor must not be VK_BLEND_FACTOR_SRC1_COLOR, VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR, VK_BLEND_FACTOR_SRC1_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineColorBlendAttachmentState-dstAlphaBlendFactor-00611", - "text": " If the dualSrcBlend feature is not enabled, dstAlphaBlendFactor must not be VK_BLEND_FACTOR_SRC1_COLOR, VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR, VK_BLEND_FACTOR_SRC1_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA" + "text": "If the dualSrcBlend feature is not enabled, dstAlphaBlendFactor must not be VK_BLEND_FACTOR_SRC1_COLOR, VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR, VK_BLEND_FACTOR_SRC1_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineColorBlendAttachmentState-colorBlendOp-01406", - "text": " If either of colorBlendOp or alphaBlendOp is an advanced blend operation, then colorBlendOp must equal alphaBlendOp" + "text": "If either of colorBlendOp or alphaBlendOp is an advanced blend operation, then colorBlendOp must equal alphaBlendOp", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineColorBlendAttachmentState-advancedBlendIndependentBlend-01407", - "text": " If VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT::advancedBlendIndependentBlend is VK_FALSE and colorBlendOp is an advanced blend operation, then colorBlendOp must be the same for all attachments" + "text": "If VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT::advancedBlendIndependentBlend is VK_FALSE and colorBlendOp is an advanced blend operation, then colorBlendOp must be the same for all attachments", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineColorBlendAttachmentState-advancedBlendIndependentBlend-01408", - "text": " If VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT::advancedBlendIndependentBlend is VK_FALSE and alphaBlendOp is an advanced blend operation, then alphaBlendOp must be the same for all attachments" + "text": "If VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT::advancedBlendIndependentBlend is VK_FALSE and alphaBlendOp is an advanced blend operation, then alphaBlendOp must be the same for all attachments", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineColorBlendAttachmentState-advancedBlendAllOperations-01409", - "text": " If VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT::advancedBlendAllOperations is VK_FALSE, then colorBlendOp must not be VK_BLEND_OP_ZERO_EXT, VK_BLEND_OP_SRC_EXT, VK_BLEND_OP_DST_EXT, VK_BLEND_OP_SRC_OVER_EXT, VK_BLEND_OP_DST_OVER_EXT, VK_BLEND_OP_SRC_IN_EXT, VK_BLEND_OP_DST_IN_EXT, VK_BLEND_OP_SRC_OUT_EXT, VK_BLEND_OP_DST_OUT_EXT, VK_BLEND_OP_SRC_ATOP_EXT, VK_BLEND_OP_DST_ATOP_EXT, VK_BLEND_OP_XOR_EXT, VK_BLEND_OP_INVERT_EXT, VK_BLEND_OP_INVERT_RGB_EXT, VK_BLEND_OP_LINEARDODGE_EXT, VK_BLEND_OP_LINEARBURN_EXT, VK_BLEND_OP_VIVIDLIGHT_EXT, VK_BLEND_OP_LINEARLIGHT_EXT, VK_BLEND_OP_PINLIGHT_EXT, VK_BLEND_OP_HARDMIX_EXT, VK_BLEND_OP_PLUS_EXT, VK_BLEND_OP_PLUS_CLAMPED_EXT, VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT, VK_BLEND_OP_PLUS_DARKER_EXT, VK_BLEND_OP_MINUS_EXT, VK_BLEND_OP_MINUS_CLAMPED_EXT, VK_BLEND_OP_CONTRAST_EXT, VK_BLEND_OP_INVERT_OVG_EXT, VK_BLEND_OP_RED_EXT, VK_BLEND_OP_GREEN_EXT, or VK_BLEND_OP_BLUE_EXT" + "text": "If VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT::advancedBlendAllOperations is VK_FALSE, then colorBlendOp must not be VK_BLEND_OP_ZERO_EXT, VK_BLEND_OP_SRC_EXT, VK_BLEND_OP_DST_EXT, VK_BLEND_OP_SRC_OVER_EXT, VK_BLEND_OP_DST_OVER_EXT, VK_BLEND_OP_SRC_IN_EXT, VK_BLEND_OP_DST_IN_EXT, VK_BLEND_OP_SRC_OUT_EXT, VK_BLEND_OP_DST_OUT_EXT, VK_BLEND_OP_SRC_ATOP_EXT, VK_BLEND_OP_DST_ATOP_EXT, VK_BLEND_OP_XOR_EXT, VK_BLEND_OP_INVERT_EXT, VK_BLEND_OP_INVERT_RGB_EXT, VK_BLEND_OP_LINEARDODGE_EXT, VK_BLEND_OP_LINEARBURN_EXT, VK_BLEND_OP_VIVIDLIGHT_EXT, VK_BLEND_OP_LINEARLIGHT_EXT, VK_BLEND_OP_PINLIGHT_EXT, VK_BLEND_OP_HARDMIX_EXT, VK_BLEND_OP_PLUS_EXT, VK_BLEND_OP_PLUS_CLAMPED_EXT, VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT, VK_BLEND_OP_PLUS_DARKER_EXT, VK_BLEND_OP_MINUS_EXT, VK_BLEND_OP_MINUS_CLAMPED_EXT, VK_BLEND_OP_CONTRAST_EXT, VK_BLEND_OP_INVERT_OVG_EXT, VK_BLEND_OP_RED_EXT, VK_BLEND_OP_GREEN_EXT, or VK_BLEND_OP_BLUE_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineColorBlendAttachmentState-colorBlendOp-01410", - "text": " If colorBlendOp or alphaBlendOp is an advanced blend operation, then colorAttachmentCount of the subpass this pipeline is compiled against must be less than or equal to VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT::advancedBlendMaxColorAttachments" + "text": "If colorBlendOp or alphaBlendOp is an advanced blend operation, then colorAttachmentCount of the subpass this pipeline is compiled against must be less than or equal to VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT::advancedBlendMaxColorAttachments", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineColorBlendAttachmentState-constantAlphaColorBlendFactors-04454", - "text": " If the VK_KHR_portability_subset extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::constantAlphaColorBlendFactors is VK_FALSE, srcColorBlendFactor must not be VK_BLEND_FACTOR_CONSTANT_ALPHA or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA" + "text": "If the VK_KHR_portability_subset extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::constantAlphaColorBlendFactors is VK_FALSE, srcColorBlendFactor must not be VK_BLEND_FACTOR_CONSTANT_ALPHA or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineColorBlendAttachmentState-constantAlphaColorBlendFactors-04455", - "text": " If the VK_KHR_portability_subset extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::constantAlphaColorBlendFactors is VK_FALSE, dstColorBlendFactor must not be VK_BLEND_FACTOR_CONSTANT_ALPHA or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA" + "text": "If the VK_KHR_portability_subset extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::constantAlphaColorBlendFactors is VK_FALSE, dstColorBlendFactor must not be VK_BLEND_FACTOR_CONSTANT_ALPHA or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineColorBlendAttachmentState-srcColorBlendFactor-parameter", - "text": " srcColorBlendFactor must be a valid VkBlendFactor value" + "text": "srcColorBlendFactor must be a valid VkBlendFactor value", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineColorBlendAttachmentState-dstColorBlendFactor-parameter", - "text": " dstColorBlendFactor must be a valid VkBlendFactor value" + "text": "dstColorBlendFactor must be a valid VkBlendFactor value", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineColorBlendAttachmentState-colorBlendOp-parameter", - "text": " colorBlendOp must be a valid VkBlendOp value" + "text": "colorBlendOp must be a valid VkBlendOp value", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineColorBlendAttachmentState-srcAlphaBlendFactor-parameter", - "text": " srcAlphaBlendFactor must be a valid VkBlendFactor value" + "text": "srcAlphaBlendFactor must be a valid VkBlendFactor value", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineColorBlendAttachmentState-dstAlphaBlendFactor-parameter", - "text": " dstAlphaBlendFactor must be a valid VkBlendFactor value" + "text": "dstAlphaBlendFactor must be a valid VkBlendFactor value", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineColorBlendAttachmentState-alphaBlendOp-parameter", - "text": " alphaBlendOp must be a valid VkBlendOp value" + "text": "alphaBlendOp must be a valid VkBlendOp value", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineColorBlendAttachmentState-colorWriteMask-parameter", - "text": " colorWriteMask must be a valid combination of VkColorComponentFlagBits values" + "text": "colorWriteMask must be a valid combination of VkColorComponentFlagBits values", + "page": "vkspec" } ] }, @@ -57382,31 +74400,38 @@ "core": [ { "vuid": "VUID-vkCmdSetColorBlendEnableEXT-None-08536", - "text": " Either the extendedDynamicState3ColorBlendEnable feature or the shaderObject feature or both must be enabled" + "text": "Either the extendedDynamicState3ColorBlendEnable feature or the shaderObject feature or both must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetColorBlendEnableEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetColorBlendEnableEXT-pColorBlendEnables-parameter", - "text": " pColorBlendEnables must be a valid pointer to an array of attachmentCount VkBool32 values" + "text": "pColorBlendEnables must be a valid pointer to an array of attachmentCount VkBool32 values", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetColorBlendEnableEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetColorBlendEnableEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetColorBlendEnableEXT-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetColorBlendEnableEXT-attachmentCount-arraylength", - "text": " attachmentCount must be greater than 0" + "text": "attachmentCount must be greater than 0", + "page": "vkspec" } ] }, @@ -57414,31 +74439,38 @@ "core": [ { "vuid": "VUID-vkCmdSetColorBlendEquationEXT-None-08538", - "text": " Either the extendedDynamicState3ColorBlendEquation feature or the shaderObject feature or both must be enabled" + "text": "Either the extendedDynamicState3ColorBlendEquation feature or the shaderObject feature or both must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetColorBlendEquationEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetColorBlendEquationEXT-pColorBlendEquations-parameter", - "text": " pColorBlendEquations must be a valid pointer to an array of attachmentCount valid VkColorBlendEquationEXT structures" + "text": "pColorBlendEquations must be a valid pointer to an array of attachmentCount valid VkColorBlendEquationEXT structures", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetColorBlendEquationEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetColorBlendEquationEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetColorBlendEquationEXT-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetColorBlendEquationEXT-attachmentCount-arraylength", - "text": " attachmentCount must be greater than 0" + "text": "attachmentCount must be greater than 0", + "page": "vkspec" } ] }, @@ -57446,55 +74478,68 @@ "core": [ { "vuid": "VUID-VkColorBlendEquationEXT-dualSrcBlend-07357", - "text": " If the dualSrcBlend feature is not enabled, srcColorBlendFactor must not be VK_BLEND_FACTOR_SRC1_COLOR, VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR, VK_BLEND_FACTOR_SRC1_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA" + "text": "If the dualSrcBlend feature is not enabled, srcColorBlendFactor must not be VK_BLEND_FACTOR_SRC1_COLOR, VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR, VK_BLEND_FACTOR_SRC1_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA", + "page": "vkspec" }, { "vuid": "VUID-VkColorBlendEquationEXT-dualSrcBlend-07358", - "text": " If the dualSrcBlend feature is not enabled, dstColorBlendFactor must not be VK_BLEND_FACTOR_SRC1_COLOR, VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR, VK_BLEND_FACTOR_SRC1_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA" + "text": "If the dualSrcBlend feature is not enabled, dstColorBlendFactor must not be VK_BLEND_FACTOR_SRC1_COLOR, VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR, VK_BLEND_FACTOR_SRC1_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA", + "page": "vkspec" }, { "vuid": "VUID-VkColorBlendEquationEXT-dualSrcBlend-07359", - "text": " If the dualSrcBlend feature is not enabled, srcAlphaBlendFactor must not be VK_BLEND_FACTOR_SRC1_COLOR, VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR, VK_BLEND_FACTOR_SRC1_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA" + "text": "If the dualSrcBlend feature is not enabled, srcAlphaBlendFactor must not be VK_BLEND_FACTOR_SRC1_COLOR, VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR, VK_BLEND_FACTOR_SRC1_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA", + "page": "vkspec" }, { "vuid": "VUID-VkColorBlendEquationEXT-dualSrcBlend-07360", - "text": " If the dualSrcBlend feature is not enabled, dstAlphaBlendFactor must not be VK_BLEND_FACTOR_SRC1_COLOR, VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR, VK_BLEND_FACTOR_SRC1_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA" + "text": "If the dualSrcBlend feature is not enabled, dstAlphaBlendFactor must not be VK_BLEND_FACTOR_SRC1_COLOR, VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR, VK_BLEND_FACTOR_SRC1_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA", + "page": "vkspec" }, { "vuid": "VUID-VkColorBlendEquationEXT-colorBlendOp-07361", - "text": " colorBlendOp and alphaBlendOp must not be VK_BLEND_OP_ZERO_EXT, VK_BLEND_OP_SRC_EXT, VK_BLEND_OP_DST_EXT, VK_BLEND_OP_SRC_OVER_EXT, VK_BLEND_OP_DST_OVER_EXT, VK_BLEND_OP_SRC_IN_EXT, VK_BLEND_OP_DST_IN_EXT, VK_BLEND_OP_SRC_OUT_EXT, VK_BLEND_OP_DST_OUT_EXT, VK_BLEND_OP_SRC_ATOP_EXT, VK_BLEND_OP_DST_ATOP_EXT, VK_BLEND_OP_XOR_EXT, VK_BLEND_OP_MULTIPLY_EXT, VK_BLEND_OP_SCREEN_EXT, VK_BLEND_OP_OVERLAY_EXT, VK_BLEND_OP_DARKEN_EXT, VK_BLEND_OP_LIGHTEN_EXT, VK_BLEND_OP_COLORDODGE_EXT, VK_BLEND_OP_COLORBURN_EXT, VK_BLEND_OP_HARDLIGHT_EXT, VK_BLEND_OP_SOFTLIGHT_EXT, VK_BLEND_OP_DIFFERENCE_EXT, VK_BLEND_OP_EXCLUSION_EXT, VK_BLEND_OP_INVERT_EXT, VK_BLEND_OP_INVERT_RGB_EXT, VK_BLEND_OP_LINEARDODGE_EXT, VK_BLEND_OP_LINEARBURN_EXT, VK_BLEND_OP_VIVIDLIGHT_EXT, VK_BLEND_OP_LINEARLIGHT_EXT, VK_BLEND_OP_PINLIGHT_EXT, VK_BLEND_OP_HARDMIX_EXT, VK_BLEND_OP_HSL_HUE_EXT, VK_BLEND_OP_HSL_SATURATION_EXT, VK_BLEND_OP_HSL_COLOR_EXT, VK_BLEND_OP_HSL_LUMINOSITY_EXT, VK_BLEND_OP_PLUS_EXT, VK_BLEND_OP_PLUS_CLAMPED_EXT, VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT, VK_BLEND_OP_PLUS_DARKER_EXT, VK_BLEND_OP_MINUS_EXT, VK_BLEND_OP_MINUS_CLAMPED_EXT, VK_BLEND_OP_CONTRAST_EXT, VK_BLEND_OP_INVERT_OVG_EXT, VK_BLEND_OP_RED_EXT, VK_BLEND_OP_GREEN_EXT, or VK_BLEND_OP_BLUE_EXT" + "text": "colorBlendOp and alphaBlendOp must not be VK_BLEND_OP_ZERO_EXT, VK_BLEND_OP_SRC_EXT, VK_BLEND_OP_DST_EXT, VK_BLEND_OP_SRC_OVER_EXT, VK_BLEND_OP_DST_OVER_EXT, VK_BLEND_OP_SRC_IN_EXT, VK_BLEND_OP_DST_IN_EXT, VK_BLEND_OP_SRC_OUT_EXT, VK_BLEND_OP_DST_OUT_EXT, VK_BLEND_OP_SRC_ATOP_EXT, VK_BLEND_OP_DST_ATOP_EXT, VK_BLEND_OP_XOR_EXT, VK_BLEND_OP_MULTIPLY_EXT, VK_BLEND_OP_SCREEN_EXT, VK_BLEND_OP_OVERLAY_EXT, VK_BLEND_OP_DARKEN_EXT, VK_BLEND_OP_LIGHTEN_EXT, VK_BLEND_OP_COLORDODGE_EXT, VK_BLEND_OP_COLORBURN_EXT, VK_BLEND_OP_HARDLIGHT_EXT, VK_BLEND_OP_SOFTLIGHT_EXT, VK_BLEND_OP_DIFFERENCE_EXT, VK_BLEND_OP_EXCLUSION_EXT, VK_BLEND_OP_INVERT_EXT, VK_BLEND_OP_INVERT_RGB_EXT, VK_BLEND_OP_LINEARDODGE_EXT, VK_BLEND_OP_LINEARBURN_EXT, VK_BLEND_OP_VIVIDLIGHT_EXT, VK_BLEND_OP_LINEARLIGHT_EXT, VK_BLEND_OP_PINLIGHT_EXT, VK_BLEND_OP_HARDMIX_EXT, VK_BLEND_OP_HSL_HUE_EXT, VK_BLEND_OP_HSL_SATURATION_EXT, VK_BLEND_OP_HSL_COLOR_EXT, VK_BLEND_OP_HSL_LUMINOSITY_EXT, VK_BLEND_OP_PLUS_EXT, VK_BLEND_OP_PLUS_CLAMPED_EXT, VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT, VK_BLEND_OP_PLUS_DARKER_EXT, VK_BLEND_OP_MINUS_EXT, VK_BLEND_OP_MINUS_CLAMPED_EXT, VK_BLEND_OP_CONTRAST_EXT, VK_BLEND_OP_INVERT_OVG_EXT, VK_BLEND_OP_RED_EXT, VK_BLEND_OP_GREEN_EXT, or VK_BLEND_OP_BLUE_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkColorBlendEquationEXT-constantAlphaColorBlendFactors-07362", - "text": " If the VK_KHR_portability_subset extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::constantAlphaColorBlendFactors is VK_FALSE, srcColorBlendFactor must not be VK_BLEND_FACTOR_CONSTANT_ALPHA or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA" + "text": "If the VK_KHR_portability_subset extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::constantAlphaColorBlendFactors is VK_FALSE, srcColorBlendFactor must not be VK_BLEND_FACTOR_CONSTANT_ALPHA or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA", + "page": "vkspec" }, { "vuid": "VUID-VkColorBlendEquationEXT-constantAlphaColorBlendFactors-07363", - "text": " If the VK_KHR_portability_subset extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::constantAlphaColorBlendFactors is VK_FALSE, dstColorBlendFactor must not be VK_BLEND_FACTOR_CONSTANT_ALPHA or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA" + "text": "If the VK_KHR_portability_subset extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::constantAlphaColorBlendFactors is VK_FALSE, dstColorBlendFactor must not be VK_BLEND_FACTOR_CONSTANT_ALPHA or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA", + "page": "vkspec" }, { "vuid": "VUID-VkColorBlendEquationEXT-srcColorBlendFactor-parameter", - "text": " srcColorBlendFactor must be a valid VkBlendFactor value" + "text": "srcColorBlendFactor must be a valid VkBlendFactor value", + "page": "vkspec" }, { "vuid": "VUID-VkColorBlendEquationEXT-dstColorBlendFactor-parameter", - "text": " dstColorBlendFactor must be a valid VkBlendFactor value" + "text": "dstColorBlendFactor must be a valid VkBlendFactor value", + "page": "vkspec" }, { "vuid": "VUID-VkColorBlendEquationEXT-colorBlendOp-parameter", - "text": " colorBlendOp must be a valid VkBlendOp value" + "text": "colorBlendOp must be a valid VkBlendOp value", + "page": "vkspec" }, { "vuid": "VUID-VkColorBlendEquationEXT-srcAlphaBlendFactor-parameter", - "text": " srcAlphaBlendFactor must be a valid VkBlendFactor value" + "text": "srcAlphaBlendFactor must be a valid VkBlendFactor value", + "page": "vkspec" }, { "vuid": "VUID-VkColorBlendEquationEXT-dstAlphaBlendFactor-parameter", - "text": " dstAlphaBlendFactor must be a valid VkBlendFactor value" + "text": "dstAlphaBlendFactor must be a valid VkBlendFactor value", + "page": "vkspec" }, { "vuid": "VUID-VkColorBlendEquationEXT-alphaBlendOp-parameter", - "text": " alphaBlendOp must be a valid VkBlendOp value" + "text": "alphaBlendOp must be a valid VkBlendOp value", + "page": "vkspec" } ] }, @@ -57502,31 +74547,38 @@ "core": [ { "vuid": "VUID-vkCmdSetColorWriteMaskEXT-None-08540", - "text": " Either the extendedDynamicState3ColorWriteMask feature or the shaderObject feature or both must be enabled" + "text": "Either the extendedDynamicState3ColorWriteMask feature or the shaderObject feature or both must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetColorWriteMaskEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetColorWriteMaskEXT-pColorWriteMasks-parameter", - "text": " pColorWriteMasks must be a valid pointer to an array of attachmentCount valid combinations of VkColorComponentFlagBits values" + "text": "pColorWriteMasks must be a valid pointer to an array of attachmentCount valid combinations of VkColorComponentFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetColorWriteMaskEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetColorWriteMaskEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetColorWriteMaskEXT-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetColorWriteMaskEXT-attachmentCount-arraylength", - "text": " attachmentCount must be greater than 0" + "text": "attachmentCount must be greater than 0", + "page": "vkspec" } ] }, @@ -57534,19 +74586,23 @@ "core": [ { "vuid": "VUID-vkCmdSetBlendConstants-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetBlendConstants-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetBlendConstants-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetBlendConstants-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -57554,23 +74610,28 @@ "core": [ { "vuid": "VUID-VkPipelineColorBlendAdvancedStateCreateInfoEXT-srcPremultiplied-01424", - "text": " If the non-premultiplied source color property is not supported, srcPremultiplied must be VK_TRUE" + "text": "If the non-premultiplied source color property is not supported, srcPremultiplied must be VK_TRUE", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineColorBlendAdvancedStateCreateInfoEXT-dstPremultiplied-01425", - "text": " If the non-premultiplied destination color property is not supported, dstPremultiplied must be VK_TRUE" + "text": "If the non-premultiplied destination color property is not supported, dstPremultiplied must be VK_TRUE", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineColorBlendAdvancedStateCreateInfoEXT-blendOverlap-01426", - "text": " If the correlated overlap property is not supported, blendOverlap must be VK_BLEND_OVERLAP_UNCORRELATED_EXT" + "text": "If the correlated overlap property is not supported, blendOverlap must be VK_BLEND_OVERLAP_UNCORRELATED_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineColorBlendAdvancedStateCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineColorBlendAdvancedStateCreateInfoEXT-blendOverlap-parameter", - "text": " blendOverlap must be a valid VkBlendOverlapEXT value" + "text": "blendOverlap must be a valid VkBlendOverlapEXT value", + "page": "vkspec" } ] }, @@ -57578,31 +74639,38 @@ "core": [ { "vuid": "VUID-vkCmdSetColorBlendAdvancedEXT-None-08592", - "text": " Either the extendedDynamicState3ColorBlendAdvanced feature or the shaderObject feature or both must be enabled" + "text": "Either the extendedDynamicState3ColorBlendAdvanced feature or the shaderObject feature or both must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetColorBlendAdvancedEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetColorBlendAdvancedEXT-pColorBlendAdvanced-parameter", - "text": " pColorBlendAdvanced must be a valid pointer to an array of attachmentCount valid VkColorBlendAdvancedEXT structures" + "text": "pColorBlendAdvanced must be a valid pointer to an array of attachmentCount valid VkColorBlendAdvancedEXT structures", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetColorBlendAdvancedEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetColorBlendAdvancedEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetColorBlendAdvancedEXT-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetColorBlendAdvancedEXT-attachmentCount-arraylength", - "text": " attachmentCount must be greater than 0" + "text": "attachmentCount must be greater than 0", + "page": "vkspec" } ] }, @@ -57610,23 +74678,28 @@ "core": [ { "vuid": "VUID-VkColorBlendAdvancedEXT-srcPremultiplied-07505", - "text": " If the non-premultiplied source color property is not supported, srcPremultiplied must be VK_TRUE" + "text": "If the non-premultiplied source color property is not supported, srcPremultiplied must be VK_TRUE", + "page": "vkspec" }, { "vuid": "VUID-VkColorBlendAdvancedEXT-dstPremultiplied-07506", - "text": " If the non-premultiplied destination color property is not supported, dstPremultiplied must be VK_TRUE" + "text": "If the non-premultiplied destination color property is not supported, dstPremultiplied must be VK_TRUE", + "page": "vkspec" }, { "vuid": "VUID-VkColorBlendAdvancedEXT-blendOverlap-07507", - "text": " If the correlated overlap property is not supported, blendOverlap must be VK_BLEND_OVERLAP_UNCORRELATED_EXT" + "text": "If the correlated overlap property is not supported, blendOverlap must be VK_BLEND_OVERLAP_UNCORRELATED_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkColorBlendAdvancedEXT-advancedBlendOp-parameter", - "text": " advancedBlendOp must be a valid VkBlendOp value" + "text": "advancedBlendOp must be a valid VkBlendOp value", + "page": "vkspec" }, { "vuid": "VUID-VkColorBlendAdvancedEXT-blendOverlap-parameter", - "text": " blendOverlap must be a valid VkBlendOverlapEXT value" + "text": "blendOverlap must be a valid VkBlendOverlapEXT value", + "page": "vkspec" } ] }, @@ -57634,27 +74707,33 @@ "core": [ { "vuid": "VUID-vkCmdSetLogicOpEnableEXT-None-08542", - "text": " Either the extendedDynamicState3LogicOpEnable feature or the shaderObject feature or both must be enabled" + "text": "Either the extendedDynamicState3LogicOpEnable feature or the shaderObject feature or both must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetLogicOpEnableEXT-logicOp-07366", - "text": " If the logicOp feature is not enabled, logicOpEnable must be VK_FALSE" + "text": "If the logicOp feature is not enabled, logicOpEnable must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetLogicOpEnableEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetLogicOpEnableEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetLogicOpEnableEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetLogicOpEnableEXT-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -57662,27 +74741,33 @@ "core": [ { "vuid": "VUID-vkCmdSetLogicOpEXT-None-08544", - "text": " Either the extendedDynamicState2LogicOp feature or the shaderObject feature or both must be enabled" + "text": "Either the extendedDynamicState2LogicOp feature or the shaderObject feature or both must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetLogicOpEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetLogicOpEXT-logicOp-parameter", - "text": " logicOp must be a valid VkLogicOp value" + "text": "logicOp must be a valid VkLogicOp value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetLogicOpEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetLogicOpEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetLogicOpEXT-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -57690,23 +74775,28 @@ "core": [ { "vuid": "VUID-VkPipelineColorWriteCreateInfoEXT-pAttachments-04801", - "text": " If the colorWriteEnable feature is not enabled, all elements of pColorWriteEnables must be VK_TRUE" + "text": "If the colorWriteEnable feature is not enabled, all elements of pColorWriteEnables must be VK_TRUE", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineColorWriteCreateInfoEXT-attachmentCount-07608", - "text": " If the pipeline is being created with VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT, VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT, VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT, or VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic states not set, attachmentCount must be equal to the attachmentCount member of the VkPipelineColorBlendStateCreateInfo structure specified during pipeline creation" + "text": "If the pipeline is being created with VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT, VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT, VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT, or VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic states not set, attachmentCount must be equal to the attachmentCount member of the VkPipelineColorBlendStateCreateInfo structure specified during pipeline creation", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineColorWriteCreateInfoEXT-attachmentCount-06655", - "text": " attachmentCount must be less than or equal to the maxColorAttachments member of VkPhysicalDeviceLimits" + "text": "attachmentCount must be less than or equal to the maxColorAttachments member of VkPhysicalDeviceLimits", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineColorWriteCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineColorWriteCreateInfoEXT-pColorWriteEnables-parameter", - "text": " If attachmentCount is not 0, pColorWriteEnables must be a valid pointer to an array of attachmentCount VkBool32 values" + "text": "If attachmentCount is not 0, pColorWriteEnables must be a valid pointer to an array of attachmentCount VkBool32 values", + "page": "vkspec" } ] }, @@ -57714,35 +74804,43 @@ "core": [ { "vuid": "VUID-vkCmdSetColorWriteEnableEXT-None-04803", - "text": " The colorWriteEnable feature must be enabled" + "text": "The colorWriteEnable feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetColorWriteEnableEXT-attachmentCount-06656", - "text": " attachmentCount must be less than or equal to the maxColorAttachments member of VkPhysicalDeviceLimits" + "text": "attachmentCount must be less than or equal to the maxColorAttachments member of VkPhysicalDeviceLimits", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetColorWriteEnableEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetColorWriteEnableEXT-pColorWriteEnables-parameter", - "text": " pColorWriteEnables must be a valid pointer to an array of attachmentCount VkBool32 values" + "text": "pColorWriteEnables must be a valid pointer to an array of attachmentCount VkBool32 values", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetColorWriteEnableEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetColorWriteEnableEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetColorWriteEnableEXT-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetColorWriteEnableEXT-attachmentCount-arraylength", - "text": " attachmentCount must be greater than 0" + "text": "attachmentCount must be greater than 0", + "page": "vkspec" } ] }, @@ -57750,23 +74848,28 @@ "core": [ { "vuid": "VUID-vkGetFramebufferTilePropertiesQCOM-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetFramebufferTilePropertiesQCOM-framebuffer-parameter", - "text": " framebuffer must be a valid VkFramebuffer handle" + "text": "framebuffer must be a valid VkFramebuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetFramebufferTilePropertiesQCOM-pPropertiesCount-parameter", - "text": " pPropertiesCount must be a valid pointer to a uint32_t value" + "text": "pPropertiesCount must be a valid pointer to a uint32_t value", + "page": "vkspec" }, { "vuid": "VUID-vkGetFramebufferTilePropertiesQCOM-pProperties-parameter", - "text": " If the value referenced by pPropertiesCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertiesCount VkTilePropertiesQCOM structures" + "text": "If the value referenced by pPropertiesCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertiesCount VkTilePropertiesQCOM structures", + "page": "vkspec" }, { "vuid": "VUID-vkGetFramebufferTilePropertiesQCOM-framebuffer-parent", - "text": " framebuffer must have been created, allocated, or retrieved from device" + "text": "framebuffer must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -57774,275 +74877,373 @@ "core": [ { "vuid": "VUID-vkCmdDispatch-magFilter-04553", - "text": " If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + "text": "If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatch-mipmapMode-04770", - "text": " If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + "text": "If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatch-None-06479", - "text": " If a VkImageView is sampled with depth comparison, the image view’s format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT" + "text": "If a VkImageView is sampled with depth comparison, the image view’s format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatch-None-02691", - "text": " If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT" + "text": "If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatch-None-07888", - "text": " If a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer’s format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT" + "text": "If a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer’s format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatch-None-02692", - "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" + "text": "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatch-None-02693", - "text": " If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" + "text": "If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatch-filterCubic-02694", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" + "text": "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatch-filterCubicMinmax-02695", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" + "text": "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDispatch-cubicRangeClamp-09212", + "text": "If the cubicRangeClamp feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command
\n
\n
must not have a VkSamplerReductionModeCreateInfo
\n
\n

reductionMode equal to\nVK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM

\n
\n
\n
", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDispatch-reductionMode-09213", + "text": "Any VkImageView being sampled with a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM as a result of this command must sample with VK_FILTER_CUBIC_EXT", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDispatch-selectableCubicWeights-09214", + "text": "If the selectableCubicWeights feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have VkSamplerCubicWeightsCreateInfoQCOM::cubicWeights equal to VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatch-flags-02696", - "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE" + "text": "Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatch-OpTypeImage-07027", - "text": " For any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT" + "text": "For any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatch-OpTypeImage-07028", - "text": " For any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT" + "text": "For any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatch-OpTypeImage-07029", - "text": " For any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT" + "text": "For any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatch-OpTypeImage-07030", - "text": " Any VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT" + "text": "Any VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatch-None-08600", - "text": " For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatch-None-08601", - "text": " For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatch-maintenance4-08602", - "text": " If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatch-None-08114", - "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatch-None-08115", - "text": " If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatch-None-08116", - "text": " Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatch-None-08604", - "text": " Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command" + "text": "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatch-None-08117", - "text": " If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatch-None-08119", - "text": " If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident" + "text": "If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatch-None-08605", - "text": " If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident" + "text": "If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatch-None-08606", - "text": " If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command" + "text": "If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatch-None-08607", - "text": " If the shaderObject is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command" + "text": "If the shaderObject is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatch-None-08608", - "text": " If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound" + "text": "If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatch-None-08609", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatch-None-08610", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatch-None-08611", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatch-uniformBuffers-06935", - "text": " If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatch-None-08612", - "text": " If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatch-storageBuffers-06936", - "text": " If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatch-None-08613", - "text": " If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatch-commandBuffer-02707", - "text": " If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource" + "text": "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatch-None-06550", - "text": " If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions" + "text": "If a bound shader accesses a VkSampler or VkImageView object that enables sampler Y′CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatch-ConstOffset-06551", - "text": " If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands" + "text": "If a bound shader accesses a VkSampler or VkImageView object that enables sampler Y′CBCR conversion, that object must not use the ConstOffset and Offset operands", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatch-viewType-07752", - "text": " If a VkImageView is accessed as a result of this command, then the image view’s viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation" + "text": "If a VkImageView is accessed as a result of this command, then the image view’s viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatch-format-07753", - "text": " If a VkImageView is accessed as a result of this command, then the numeric type of the image view’s format and the Sampled Type operand of the OpTypeImage must match" + "text": "If a VkImageView is accessed as a result of this command, then the numeric type of the image view’s format and the Sampled Type operand of the OpTypeImage must match", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatch-OpImageWrite-08795", - "text": " If a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format" + "text": "If a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatch-OpImageWrite-08796", - "text": " If a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components" + "text": "If a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatch-OpImageWrite-04469", - "text": " If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view’s format" + "text": "If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view’s format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatch-SampledType-04470", - "text": " If a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64" + "text": "If a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatch-SampledType-04471", - "text": " If a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32" + "text": "If a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatch-SampledType-04472", - "text": " If a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64" + "text": "If a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatch-SampledType-04473", - "text": " If a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32" + "text": "If a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatch-sparseImageInt64Atomics-04474", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command" + "text": "If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatch-sparseImageInt64Atomics-04475", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command" + "text": "If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatch-OpImageWeightedSampleQCOM-06971", - "text": " If OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatch-OpImageWeightedSampleQCOM-06972", - "text": " If OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatch-OpImageBoxFilterQCOM-06973", - "text": " If OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM" + "text": "If OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatch-OpImageBlockMatchSSDQCOM-06974", - "text": " If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM" + "text": "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatch-OpImageBlockMatchSADQCOM-06975", - "text": " If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM" + "text": "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatch-OpImageBlockMatchSADQCOM-06976", - "text": " If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation" + "text": "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatch-OpImageWeightedSampleQCOM-06977", - "text": " If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatch-OpImageWeightedSampleQCOM-06978", - "text": " If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM" + "text": "If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDispatch-OpImageBlockMatchWindow-09215", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDispatch-OpImageBlockMatchWindow-09216", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view’s format must be a single-component format.", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDispatch-OpImageBlockMatchWindow-09217", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatch-None-07288", - "text": " Any shader invocation executed by this command must terminate" + "text": "Any shader invocation executed by this command must terminate", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatch-commandBuffer-02712", - "text": " If commandBuffer is a protected command buffer and protectedNoFault is not supported, any resource written to by the VkPipeline object bound to the pipeline bind point used by this command must not be an unprotected resource" + "text": "If commandBuffer is a protected command buffer and protectedNoFault is not supported, any resource written to by the VkPipeline object bound to the pipeline bind point used by this command must not be an unprotected resource", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatch-commandBuffer-02713", - "text": " If commandBuffer is a protected command buffer and protectedNoFault is not supported, pipeline stages other than the framebuffer-space and compute stages in the VkPipeline object bound to the pipeline bind point used by this command must not write to any resource" + "text": "If commandBuffer is a protected command buffer and protectedNoFault is not supported, pipeline stages other than the framebuffer-space and compute stages in the VkPipeline object bound to the pipeline bind point used by this command must not write to any resource", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatch-commandBuffer-04617", - "text": " If any of the shader stages of the VkPipeline bound to the pipeline bind point used by this command uses the RayQueryKHR capability, then commandBuffer must not be a protected command buffer" + "text": "If any of the shader stages of the VkPipeline bound to the pipeline bind point used by this command uses the RayQueryKHR capability, then commandBuffer must not be a protected command buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatch-groupCountX-00386", - "text": " groupCountX must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[0]" + "text": "groupCountX must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[0]", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatch-groupCountY-00387", - "text": " groupCountY must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1]" + "text": "groupCountY must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1]", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatch-groupCountZ-00388", - "text": " groupCountZ must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[2]" + "text": "groupCountZ must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[2]", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatch-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatch-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatch-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support compute operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatch-renderpass", - "text": " This command must only be called outside of a render pass instance" + "text": "This command must only be called outside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatch-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -58050,279 +75251,378 @@ "core": [ { "vuid": "VUID-vkCmdDispatchIndirect-magFilter-04553", - "text": " If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + "text": "If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchIndirect-mipmapMode-04770", - "text": " If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + "text": "If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchIndirect-None-06479", - "text": " If a VkImageView is sampled with depth comparison, the image view’s format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT" + "text": "If a VkImageView is sampled with depth comparison, the image view’s format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchIndirect-None-02691", - "text": " If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT" + "text": "If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchIndirect-None-07888", - "text": " If a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer’s format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT" + "text": "If a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer’s format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchIndirect-None-02692", - "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" + "text": "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchIndirect-None-02693", - "text": " If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" + "text": "If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchIndirect-filterCubic-02694", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" + "text": "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchIndirect-filterCubicMinmax-02695", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" + "text": "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDispatchIndirect-cubicRangeClamp-09212", + "text": "If the cubicRangeClamp feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command
\n
\n
must not have a VkSamplerReductionModeCreateInfo
\n
\n

reductionMode equal to\nVK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM

\n
\n
\n
", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDispatchIndirect-reductionMode-09213", + "text": "Any VkImageView being sampled with a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM as a result of this command must sample with VK_FILTER_CUBIC_EXT", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDispatchIndirect-selectableCubicWeights-09214", + "text": "If the selectableCubicWeights feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have VkSamplerCubicWeightsCreateInfoQCOM::cubicWeights equal to VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchIndirect-flags-02696", - "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE" + "text": "Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchIndirect-OpTypeImage-07027", - "text": " For any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT" + "text": "For any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchIndirect-OpTypeImage-07028", - "text": " For any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT" + "text": "For any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchIndirect-OpTypeImage-07029", - "text": " For any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT" + "text": "For any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchIndirect-OpTypeImage-07030", - "text": " Any VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT" + "text": "Any VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchIndirect-None-08600", - "text": " For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchIndirect-None-08601", - "text": " For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchIndirect-maintenance4-08602", - "text": " If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchIndirect-None-08114", - "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchIndirect-None-08115", - "text": " If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchIndirect-None-08116", - "text": " Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchIndirect-None-08604", - "text": " Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command" + "text": "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchIndirect-None-08117", - "text": " If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchIndirect-None-08119", - "text": " If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident" + "text": "If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchIndirect-None-08605", - "text": " If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident" + "text": "If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchIndirect-None-08606", - "text": " If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command" + "text": "If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchIndirect-None-08607", - "text": " If the shaderObject is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command" + "text": "If the shaderObject is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchIndirect-None-08608", - "text": " If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound" + "text": "If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchIndirect-None-08609", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchIndirect-None-08610", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchIndirect-None-08611", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchIndirect-uniformBuffers-06935", - "text": " If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchIndirect-None-08612", - "text": " If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchIndirect-storageBuffers-06936", - "text": " If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchIndirect-None-08613", - "text": " If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchIndirect-commandBuffer-02707", - "text": " If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource" + "text": "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchIndirect-None-06550", - "text": " If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions" + "text": "If a bound shader accesses a VkSampler or VkImageView object that enables sampler Y′CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchIndirect-ConstOffset-06551", - "text": " If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands" + "text": "If a bound shader accesses a VkSampler or VkImageView object that enables sampler Y′CBCR conversion, that object must not use the ConstOffset and Offset operands", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchIndirect-viewType-07752", - "text": " If a VkImageView is accessed as a result of this command, then the image view’s viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation" + "text": "If a VkImageView is accessed as a result of this command, then the image view’s viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchIndirect-format-07753", - "text": " If a VkImageView is accessed as a result of this command, then the numeric type of the image view’s format and the Sampled Type operand of the OpTypeImage must match" + "text": "If a VkImageView is accessed as a result of this command, then the numeric type of the image view’s format and the Sampled Type operand of the OpTypeImage must match", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchIndirect-OpImageWrite-08795", - "text": " If a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format" + "text": "If a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchIndirect-OpImageWrite-08796", - "text": " If a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components" + "text": "If a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchIndirect-OpImageWrite-04469", - "text": " If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view’s format" + "text": "If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view’s format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchIndirect-SampledType-04470", - "text": " If a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64" + "text": "If a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchIndirect-SampledType-04471", - "text": " If a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32" + "text": "If a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchIndirect-SampledType-04472", - "text": " If a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64" + "text": "If a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchIndirect-SampledType-04473", - "text": " If a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32" + "text": "If a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchIndirect-sparseImageInt64Atomics-04474", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command" + "text": "If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchIndirect-sparseImageInt64Atomics-04475", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command" + "text": "If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchIndirect-OpImageWeightedSampleQCOM-06971", - "text": " If OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchIndirect-OpImageWeightedSampleQCOM-06972", - "text": " If OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchIndirect-OpImageBoxFilterQCOM-06973", - "text": " If OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM" + "text": "If OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchIndirect-OpImageBlockMatchSSDQCOM-06974", - "text": " If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM" + "text": "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchIndirect-OpImageBlockMatchSADQCOM-06975", - "text": " If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM" + "text": "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchIndirect-OpImageBlockMatchSADQCOM-06976", - "text": " If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation" + "text": "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchIndirect-OpImageWeightedSampleQCOM-06977", - "text": " If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchIndirect-OpImageWeightedSampleQCOM-06978", - "text": " If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM" + "text": "If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDispatchIndirect-OpImageBlockMatchWindow-09215", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDispatchIndirect-OpImageBlockMatchWindow-09216", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view’s format must be a single-component format.", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDispatchIndirect-OpImageBlockMatchWindow-09217", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchIndirect-None-07288", - "text": " Any shader invocation executed by this command must terminate" + "text": "Any shader invocation executed by this command must terminate", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchIndirect-buffer-02708", - "text": " If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchIndirect-buffer-02709", - "text": " buffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set" + "text": "buffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchIndirect-offset-02710", - "text": " offset must be a multiple of 4" + "text": "offset must be a multiple of 4", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchIndirect-commandBuffer-02711", - "text": " commandBuffer must not be a protected command buffer" + "text": "commandBuffer must not be a protected command buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchIndirect-offset-00407", - "text": " The sum of offset and the size of VkDispatchIndirectCommand must be less than or equal to the size of buffer" + "text": "The sum of offset and the size of VkDispatchIndirectCommand must be less than or equal to the size of buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchIndirect-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchIndirect-buffer-parameter", - "text": " buffer must be a valid VkBuffer handle" + "text": "buffer must be a valid VkBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchIndirect-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchIndirect-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support compute operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchIndirect-renderpass", - "text": " This command must only be called outside of a render pass instance" + "text": "This command must only be called outside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchIndirect-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchIndirect-commonparent", - "text": " Both of buffer, and commandBuffer must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of buffer, and commandBuffer must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -58330,15 +75630,18 @@ "core": [ { "vuid": "VUID-VkDispatchIndirectCommand-x-00417", - "text": " x must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[0]" + "text": "x must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[0]", + "page": "vkspec" }, { "vuid": "VUID-VkDispatchIndirectCommand-y-00418", - "text": " y must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1]" + "text": "y must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1]", + "page": "vkspec" }, { "vuid": "VUID-VkDispatchIndirectCommand-z-00419", - "text": " z must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[2]" + "text": "z must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[2]", + "page": "vkspec" } ] }, @@ -58346,291 +75649,393 @@ "core": [ { "vuid": "VUID-vkCmdDispatchBase-magFilter-04553", - "text": " If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + "text": "If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchBase-mipmapMode-04770", - "text": " If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + "text": "If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchBase-None-06479", - "text": " If a VkImageView is sampled with depth comparison, the image view’s format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT" + "text": "If a VkImageView is sampled with depth comparison, the image view’s format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchBase-None-02691", - "text": " If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT" + "text": "If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchBase-None-07888", - "text": " If a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer’s format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT" + "text": "If a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer’s format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchBase-None-02692", - "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" + "text": "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchBase-None-02693", - "text": " If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" + "text": "If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchBase-filterCubic-02694", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" + "text": "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchBase-filterCubicMinmax-02695", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" + "text": "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDispatchBase-cubicRangeClamp-09212", + "text": "If the cubicRangeClamp feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command
\n
\n
must not have a VkSamplerReductionModeCreateInfo
\n
\n

reductionMode equal to\nVK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM

\n
\n
\n
", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDispatchBase-reductionMode-09213", + "text": "Any VkImageView being sampled with a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM as a result of this command must sample with VK_FILTER_CUBIC_EXT", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDispatchBase-selectableCubicWeights-09214", + "text": "If the selectableCubicWeights feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have VkSamplerCubicWeightsCreateInfoQCOM::cubicWeights equal to VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchBase-flags-02696", - "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE" + "text": "Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchBase-OpTypeImage-07027", - "text": " For any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT" + "text": "For any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchBase-OpTypeImage-07028", - "text": " For any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT" + "text": "For any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchBase-OpTypeImage-07029", - "text": " For any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT" + "text": "For any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchBase-OpTypeImage-07030", - "text": " Any VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT" + "text": "Any VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchBase-None-08600", - "text": " For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchBase-None-08601", - "text": " For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchBase-maintenance4-08602", - "text": " If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchBase-None-08114", - "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchBase-None-08115", - "text": " If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchBase-None-08116", - "text": " Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchBase-None-08604", - "text": " Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command" + "text": "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchBase-None-08117", - "text": " If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchBase-None-08119", - "text": " If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident" + "text": "If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchBase-None-08605", - "text": " If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident" + "text": "If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchBase-None-08606", - "text": " If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command" + "text": "If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchBase-None-08607", - "text": " If the shaderObject is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command" + "text": "If the shaderObject is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchBase-None-08608", - "text": " If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound" + "text": "If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchBase-None-08609", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchBase-None-08610", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchBase-None-08611", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchBase-uniformBuffers-06935", - "text": " If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchBase-None-08612", - "text": " If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchBase-storageBuffers-06936", - "text": " If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchBase-None-08613", - "text": " If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchBase-commandBuffer-02707", - "text": " If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource" + "text": "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchBase-None-06550", - "text": " If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions" + "text": "If a bound shader accesses a VkSampler or VkImageView object that enables sampler Y′CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchBase-ConstOffset-06551", - "text": " If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands" + "text": "If a bound shader accesses a VkSampler or VkImageView object that enables sampler Y′CBCR conversion, that object must not use the ConstOffset and Offset operands", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchBase-viewType-07752", - "text": " If a VkImageView is accessed as a result of this command, then the image view’s viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation" + "text": "If a VkImageView is accessed as a result of this command, then the image view’s viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchBase-format-07753", - "text": " If a VkImageView is accessed as a result of this command, then the numeric type of the image view’s format and the Sampled Type operand of the OpTypeImage must match" + "text": "If a VkImageView is accessed as a result of this command, then the numeric type of the image view’s format and the Sampled Type operand of the OpTypeImage must match", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchBase-OpImageWrite-08795", - "text": " If a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format" + "text": "If a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchBase-OpImageWrite-08796", - "text": " If a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components" + "text": "If a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchBase-OpImageWrite-04469", - "text": " If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view’s format" + "text": "If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view’s format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchBase-SampledType-04470", - "text": " If a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64" + "text": "If a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchBase-SampledType-04471", - "text": " If a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32" + "text": "If a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchBase-SampledType-04472", - "text": " If a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64" + "text": "If a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchBase-SampledType-04473", - "text": " If a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32" + "text": "If a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchBase-sparseImageInt64Atomics-04474", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command" + "text": "If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchBase-sparseImageInt64Atomics-04475", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command" + "text": "If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchBase-OpImageWeightedSampleQCOM-06971", - "text": " If OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchBase-OpImageWeightedSampleQCOM-06972", - "text": " If OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchBase-OpImageBoxFilterQCOM-06973", - "text": " If OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM" + "text": "If OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchBase-OpImageBlockMatchSSDQCOM-06974", - "text": " If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM" + "text": "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchBase-OpImageBlockMatchSADQCOM-06975", - "text": " If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM" + "text": "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchBase-OpImageBlockMatchSADQCOM-06976", - "text": " If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation" + "text": "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchBase-OpImageWeightedSampleQCOM-06977", - "text": " If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchBase-OpImageWeightedSampleQCOM-06978", - "text": " If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM" + "text": "If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDispatchBase-OpImageBlockMatchWindow-09215", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDispatchBase-OpImageBlockMatchWindow-09216", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view’s format must be a single-component format.", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDispatchBase-OpImageBlockMatchWindow-09217", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchBase-None-07288", - "text": " Any shader invocation executed by this command must terminate" + "text": "Any shader invocation executed by this command must terminate", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchBase-commandBuffer-02712", - "text": " If commandBuffer is a protected command buffer and protectedNoFault is not supported, any resource written to by the VkPipeline object bound to the pipeline bind point used by this command must not be an unprotected resource" + "text": "If commandBuffer is a protected command buffer and protectedNoFault is not supported, any resource written to by the VkPipeline object bound to the pipeline bind point used by this command must not be an unprotected resource", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchBase-commandBuffer-02713", - "text": " If commandBuffer is a protected command buffer and protectedNoFault is not supported, pipeline stages other than the framebuffer-space and compute stages in the VkPipeline object bound to the pipeline bind point used by this command must not write to any resource" + "text": "If commandBuffer is a protected command buffer and protectedNoFault is not supported, pipeline stages other than the framebuffer-space and compute stages in the VkPipeline object bound to the pipeline bind point used by this command must not write to any resource", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchBase-commandBuffer-04617", - "text": " If any of the shader stages of the VkPipeline bound to the pipeline bind point used by this command uses the RayQueryKHR capability, then commandBuffer must not be a protected command buffer" + "text": "If any of the shader stages of the VkPipeline bound to the pipeline bind point used by this command uses the RayQueryKHR capability, then commandBuffer must not be a protected command buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchBase-baseGroupX-00421", - "text": " baseGroupX must be less than VkPhysicalDeviceLimits::maxComputeWorkGroupCount[0]" + "text": "baseGroupX must be less than VkPhysicalDeviceLimits::maxComputeWorkGroupCount[0]", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchBase-baseGroupX-00422", - "text": " baseGroupY must be less than VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1]" + "text": "baseGroupY must be less than VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1]", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchBase-baseGroupZ-00423", - "text": " baseGroupZ must be less than VkPhysicalDeviceLimits::maxComputeWorkGroupCount[2]" + "text": "baseGroupZ must be less than VkPhysicalDeviceLimits::maxComputeWorkGroupCount[2]", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchBase-groupCountX-00424", - "text": " groupCountX must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[0] minus baseGroupX" + "text": "groupCountX must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[0] minus baseGroupX", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchBase-groupCountY-00425", - "text": " groupCountY must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1] minus baseGroupY" + "text": "groupCountY must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1] minus baseGroupY", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchBase-groupCountZ-00426", - "text": " groupCountZ must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[2] minus baseGroupZ" + "text": "groupCountZ must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[2] minus baseGroupZ", + "page": "vkspec" }, { "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" + "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", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchBase-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchBase-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchBase-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support compute operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchBase-renderpass", - "text": " This command must only be called outside of a render pass instance" + "text": "This command must only be called outside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchBase-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -58638,255 +76043,348 @@ "core": [ { "vuid": "VUID-vkCmdSubpassShadingHUAWEI-magFilter-04553", - "text": " If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + "text": "If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSubpassShadingHUAWEI-mipmapMode-04770", - "text": " If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + "text": "If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-06479", - "text": " If a VkImageView is sampled with depth comparison, the image view’s format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT" + "text": "If a VkImageView is sampled with depth comparison, the image view’s format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-02691", - "text": " If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT" + "text": "If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-07888", - "text": " If a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer’s format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT" + "text": "If a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer’s format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-02692", - "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" + "text": "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-02693", - "text": " If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" + "text": "If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSubpassShadingHUAWEI-filterCubic-02694", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" + "text": "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSubpassShadingHUAWEI-filterCubicMinmax-02695", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" + "text": "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdSubpassShadingHUAWEI-cubicRangeClamp-09212", + "text": "If the cubicRangeClamp feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command
\n
\n
must not have a VkSamplerReductionModeCreateInfo
\n
\n

reductionMode equal to\nVK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM

\n
\n
\n
", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdSubpassShadingHUAWEI-reductionMode-09213", + "text": "Any VkImageView being sampled with a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM as a result of this command must sample with VK_FILTER_CUBIC_EXT", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdSubpassShadingHUAWEI-selectableCubicWeights-09214", + "text": "If the selectableCubicWeights feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have VkSamplerCubicWeightsCreateInfoQCOM::cubicWeights equal to VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSubpassShadingHUAWEI-flags-02696", - "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE" + "text": "Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSubpassShadingHUAWEI-OpTypeImage-07027", - "text": " For any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT" + "text": "For any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSubpassShadingHUAWEI-OpTypeImage-07028", - "text": " For any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT" + "text": "For any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSubpassShadingHUAWEI-OpTypeImage-07029", - "text": " For any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT" + "text": "For any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSubpassShadingHUAWEI-OpTypeImage-07030", - "text": " Any VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT" + "text": "Any VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-08600", - "text": " For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-08601", - "text": " For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSubpassShadingHUAWEI-maintenance4-08602", - "text": " If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-08114", - "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-08115", - "text": " If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-08116", - "text": " Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-08604", - "text": " Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command" + "text": "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-08117", - "text": " If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-08119", - "text": " If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident" + "text": "If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-08605", - "text": " If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident" + "text": "If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-08606", - "text": " If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command" + "text": "If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-08607", - "text": " If the shaderObject is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command" + "text": "If the shaderObject is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-08608", - "text": " If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound" + "text": "If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-08609", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-08610", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-08611", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSubpassShadingHUAWEI-uniformBuffers-06935", - "text": " If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-08612", - "text": " If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSubpassShadingHUAWEI-storageBuffers-06936", - "text": " If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-08613", - "text": " If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSubpassShadingHUAWEI-commandBuffer-02707", - "text": " If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource" + "text": "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-06550", - "text": " If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions" + "text": "If a bound shader accesses a VkSampler or VkImageView object that enables sampler Y′CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSubpassShadingHUAWEI-ConstOffset-06551", - "text": " If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands" + "text": "If a bound shader accesses a VkSampler or VkImageView object that enables sampler Y′CBCR conversion, that object must not use the ConstOffset and Offset operands", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSubpassShadingHUAWEI-viewType-07752", - "text": " If a VkImageView is accessed as a result of this command, then the image view’s viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation" + "text": "If a VkImageView is accessed as a result of this command, then the image view’s viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSubpassShadingHUAWEI-format-07753", - "text": " If a VkImageView is accessed as a result of this command, then the numeric type of the image view’s format and the Sampled Type operand of the OpTypeImage must match" + "text": "If a VkImageView is accessed as a result of this command, then the numeric type of the image view’s format and the Sampled Type operand of the OpTypeImage must match", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSubpassShadingHUAWEI-OpImageWrite-08795", - "text": " If a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format" + "text": "If a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSubpassShadingHUAWEI-OpImageWrite-08796", - "text": " If a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components" + "text": "If a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSubpassShadingHUAWEI-OpImageWrite-04469", - "text": " If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view’s format" + "text": "If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view’s format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSubpassShadingHUAWEI-SampledType-04470", - "text": " If a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64" + "text": "If a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSubpassShadingHUAWEI-SampledType-04471", - "text": " If a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32" + "text": "If a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSubpassShadingHUAWEI-SampledType-04472", - "text": " If a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64" + "text": "If a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSubpassShadingHUAWEI-SampledType-04473", - "text": " If a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32" + "text": "If a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSubpassShadingHUAWEI-sparseImageInt64Atomics-04474", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command" + "text": "If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSubpassShadingHUAWEI-sparseImageInt64Atomics-04475", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command" + "text": "If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSubpassShadingHUAWEI-OpImageWeightedSampleQCOM-06971", - "text": " If OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSubpassShadingHUAWEI-OpImageWeightedSampleQCOM-06972", - "text": " If OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSubpassShadingHUAWEI-OpImageBoxFilterQCOM-06973", - "text": " If OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM" + "text": "If OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSubpassShadingHUAWEI-OpImageBlockMatchSSDQCOM-06974", - "text": " If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM" + "text": "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSubpassShadingHUAWEI-OpImageBlockMatchSADQCOM-06975", - "text": " If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM" + "text": "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSubpassShadingHUAWEI-OpImageBlockMatchSADQCOM-06976", - "text": " If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation" + "text": "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSubpassShadingHUAWEI-OpImageWeightedSampleQCOM-06977", - "text": " If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSubpassShadingHUAWEI-OpImageWeightedSampleQCOM-06978", - "text": " If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM" + "text": "If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdSubpassShadingHUAWEI-OpImageBlockMatchWindow-09215", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdSubpassShadingHUAWEI-OpImageBlockMatchWindow-09216", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view’s format must be a single-component format.", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdSubpassShadingHUAWEI-OpImageBlockMatchWindow-09217", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-07288", - "text": " Any shader invocation executed by this command must terminate" + "text": "Any shader invocation executed by this command must terminate", + "page": "vkspec" }, { "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" + "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", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSubpassShadingHUAWEI-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSubpassShadingHUAWEI-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSubpassShadingHUAWEI-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSubpassShadingHUAWEI-renderpass", - "text": " This command must only be called inside of a render pass instance" + "text": "This command must only be called inside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSubpassShadingHUAWEI-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -58894,23 +76392,28 @@ "core": [ { "vuid": "VUID-vkCreateIndirectCommandsLayoutNV-deviceGeneratedCommands-02929", - "text": " The VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV::deviceGeneratedCommands feature must be enabled" + "text": "The VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV::deviceGeneratedCommands feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCreateIndirectCommandsLayoutNV-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkCreateIndirectCommandsLayoutNV-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkIndirectCommandsLayoutCreateInfoNV structure" + "text": "pCreateInfo must be a valid pointer to a valid VkIndirectCommandsLayoutCreateInfoNV structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateIndirectCommandsLayoutNV-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateIndirectCommandsLayoutNV-pIndirectCommandsLayout-parameter", - "text": " pIndirectCommandsLayout must be a valid pointer to a VkIndirectCommandsLayoutNV handle" + "text": "pIndirectCommandsLayout must be a valid pointer to a VkIndirectCommandsLayoutNV handle", + "page": "vkspec" } ] }, @@ -58918,79 +76421,98 @@ "core": [ { "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-pipelineBindPoint-02930", - "text": " The pipelineBindPoint must be VK_PIPELINE_BIND_POINT_GRAPHICS or VK_PIPELINE_BIND_POINT_COMPUTE" + "text": "The pipelineBindPoint must be VK_PIPELINE_BIND_POINT_GRAPHICS or VK_PIPELINE_BIND_POINT_COMPUTE", + "page": "vkspec" }, { "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-tokenCount-02931", - "text": " tokenCount must be greater than 0 and less than or equal to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::maxIndirectCommandsTokenCount" + "text": "tokenCount must be greater than 0 and less than or equal to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::maxIndirectCommandsTokenCount", + "page": "vkspec" }, { "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-pTokens-02932", - "text": " If pTokens contains an entry of VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV it must be the first element of the array and there must be only a single element of such token type" + "text": "If pTokens contains an entry of VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV it must be the first element of the array and there must be only a single element of such token type", + "page": "vkspec" }, { "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-pTokens-02933", - "text": " If pTokens contains an entry of VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV there must be only a single element of such token type" + "text": "If pTokens contains an entry of VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV there must be only a single element of such token type", + "page": "vkspec" }, { "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-pTokens-02934", - "text": " All state tokens in pTokens must occur before any work provoking tokens (VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV, VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV, VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV, VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV , VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NV )" + "text": "All state tokens in pTokens must occur before any work provoking tokens (VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV, VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV, VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV, VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV , VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NV )", + "page": "vkspec" }, { "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-pTokens-02935", - "text": " The content of pTokens must include one single work provoking token that is compatible with the pipelineBindPoint" + "text": "The content of pTokens must include one single work provoking token that is compatible with the pipelineBindPoint", + "page": "vkspec" }, { "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-streamCount-02936", - "text": " streamCount must be greater than 0 and less or equal to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::maxIndirectCommandsStreamCount" + "text": "streamCount must be greater than 0 and less or equal to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::maxIndirectCommandsStreamCount", + "page": "vkspec" }, { "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-pStreamStrides-02937", - "text": " each element of pStreamStrides must be greater than `0`and less than or equal to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::maxIndirectCommandsStreamStride. Furthermore the alignment of each token input must be ensured" + "text": "each element of pStreamStrides must be greater than `0`and less than or equal to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::maxIndirectCommandsStreamStride. Furthermore the alignment of each token input must be ensured", + "page": "vkspec" }, { "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-pipelineBindPoint-09088", - "text": " If pipelineBindPoint is VK_PIPELINE_BIND_POINT_COMPUTE then the VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV::deviceGeneratedCompute feature must be enabled" + "text": "If pipelineBindPoint is VK_PIPELINE_BIND_POINT_COMPUTE then the VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV::deviceGeneratedCompute feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-pipelineBindPoint-09089", - "text": " If pipelineBindPoint is VK_PIPELINE_BIND_POINT_COMPUTE then the state tokens in pTokens must only include VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NV, VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV, or VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV" + "text": "If pipelineBindPoint is VK_PIPELINE_BIND_POINT_COMPUTE then the state tokens in pTokens must only include VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NV, VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV, or VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV", + "page": "vkspec" }, { "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-pipelineBindPoint-09090", - "text": " If pipelineBindPoint is VK_PIPELINE_BIND_POINT_COMPUTE and pTokens includes VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV, then the VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV::deviceGeneratedComputePipelines feature must be enabled" + "text": "If pipelineBindPoint is VK_PIPELINE_BIND_POINT_COMPUTE and pTokens includes VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV, then the VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV::deviceGeneratedComputePipelines feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV" + "text": "sType must be VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV", + "page": "vkspec" }, { "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-flags-parameter", - "text": " flags must be a valid combination of VkIndirectCommandsLayoutUsageFlagBitsNV values" + "text": "flags must be a valid combination of VkIndirectCommandsLayoutUsageFlagBitsNV values", + "page": "vkspec" }, { "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-pipelineBindPoint-parameter", - "text": " pipelineBindPoint must be a valid VkPipelineBindPoint value" + "text": "pipelineBindPoint must be a valid VkPipelineBindPoint value", + "page": "vkspec" }, { "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-pTokens-parameter", - "text": " pTokens must be a valid pointer to an array of tokenCount valid VkIndirectCommandsLayoutTokenNV structures" + "text": "pTokens must be a valid pointer to an array of tokenCount valid VkIndirectCommandsLayoutTokenNV structures", + "page": "vkspec" }, { "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-pStreamStrides-parameter", - "text": " pStreamStrides must be a valid pointer to an array of streamCount uint32_t values" + "text": "pStreamStrides must be a valid pointer to an array of streamCount uint32_t values", + "page": "vkspec" }, { "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-tokenCount-arraylength", - "text": " tokenCount must be greater than 0" + "text": "tokenCount must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-streamCount-arraylength", - "text": " streamCount must be greater than 0" + "text": "streamCount must be greater than 0", + "page": "vkspec" } ] }, @@ -58998,35 +76520,43 @@ "core": [ { "vuid": "VUID-vkDestroyIndirectCommandsLayoutNV-indirectCommandsLayout-02938", - "text": " All submitted commands that refer to indirectCommandsLayout must have completed execution" + "text": "All submitted commands that refer to indirectCommandsLayout must have completed execution", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyIndirectCommandsLayoutNV-indirectCommandsLayout-02939", - "text": " If VkAllocationCallbacks were provided when indirectCommandsLayout was created, a compatible set of callbacks must be provided here" + "text": "If VkAllocationCallbacks were provided when indirectCommandsLayout was created, a compatible set of callbacks must be provided here", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyIndirectCommandsLayoutNV-indirectCommandsLayout-02940", - "text": " If no VkAllocationCallbacks were provided when indirectCommandsLayout was created, pAllocator must be NULL" + "text": "If no VkAllocationCallbacks were provided when indirectCommandsLayout was created, pAllocator must be NULL", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyIndirectCommandsLayoutNV-deviceGeneratedCommands-02941", - "text": " The VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV::deviceGeneratedCommands feature must be enabled" + "text": "The VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV::deviceGeneratedCommands feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyIndirectCommandsLayoutNV-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyIndirectCommandsLayoutNV-indirectCommandsLayout-parameter", - "text": " If indirectCommandsLayout is not VK_NULL_HANDLE, indirectCommandsLayout must be a valid VkIndirectCommandsLayoutNV handle" + "text": "If indirectCommandsLayout is not VK_NULL_HANDLE, indirectCommandsLayout must be a valid VkIndirectCommandsLayoutNV handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyIndirectCommandsLayoutNV-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyIndirectCommandsLayoutNV-indirectCommandsLayout-parent", - "text": " If indirectCommandsLayout is a valid handle, it must have been created, allocated, or retrieved from device" + "text": "If indirectCommandsLayout is a valid handle, it must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -59034,19 +76564,23 @@ "core": [ { "vuid": "VUID-VkIndirectCommandsStreamNV-buffer-02942", - "text": " The buffer’s usage flag must have the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set" + "text": "The buffer’s usage flag must have the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set", + "page": "vkspec" }, { "vuid": "VUID-VkIndirectCommandsStreamNV-offset-02943", - "text": " The offset must be aligned to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::minIndirectCommandsBufferOffsetAlignment" + "text": "The offset must be aligned to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::minIndirectCommandsBufferOffsetAlignment", + "page": "vkspec" }, { "vuid": "VUID-VkIndirectCommandsStreamNV-buffer-02975", - "text": " If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-VkIndirectCommandsStreamNV-buffer-parameter", - "text": " buffer must be a valid VkBuffer handle" + "text": "buffer must be a valid VkBuffer handle", + "page": "vkspec" } ] }, @@ -59054,11 +76588,13 @@ "core": [ { "vuid": "VUID-VkBindShaderGroupIndirectCommandNV-None-02944", - "text": " The current bound graphics pipeline, as well as the pipelines it may reference, must have been created with VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV" + "text": "The current bound graphics pipeline, as well as the pipelines it may reference, must have been created with VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV", + "page": "vkspec" }, { "vuid": "VUID-VkBindShaderGroupIndirectCommandNV-index-02945", - "text": " The index must be within range of the accessible shader groups of the current bound graphics pipeline. See vkCmdBindPipelineShaderGroupNV for further details" + "text": "The index must be within range of the accessible shader groups of the current bound graphics pipeline. See vkCmdBindPipelineShaderGroupNV for further details", + "page": "vkspec" } ] }, @@ -59066,19 +76602,23 @@ "core": [ { "vuid": "VUID-VkBindIndexBufferIndirectCommandNV-None-02946", - "text": " The buffer’s usage flag from which the address was acquired must have the VK_BUFFER_USAGE_INDEX_BUFFER_BIT bit set" + "text": "The buffer’s usage flag from which the address was acquired must have the VK_BUFFER_USAGE_INDEX_BUFFER_BIT bit set", + "page": "vkspec" }, { "vuid": "VUID-VkBindIndexBufferIndirectCommandNV-bufferAddress-02947", - "text": " The bufferAddress must be aligned to the indexType used" + "text": "The bufferAddress must be aligned to the indexType used", + "page": "vkspec" }, { "vuid": "VUID-VkBindIndexBufferIndirectCommandNV-None-02948", - "text": " Each element of the buffer from which the address was acquired and that is non-sparse must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "Each element of the buffer from which the address was acquired and that is non-sparse must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-VkBindIndexBufferIndirectCommandNV-indexType-parameter", - "text": " indexType must be a valid VkIndexType value" + "text": "indexType must be a valid VkIndexType value", + "page": "vkspec" } ] }, @@ -59086,11 +76626,13 @@ "core": [ { "vuid": "VUID-VkBindVertexBufferIndirectCommandNV-None-02949", - "text": " The buffer’s usage flag from which the address was acquired must have the VK_BUFFER_USAGE_VERTEX_BUFFER_BIT bit set" + "text": "The buffer’s usage flag from which the address was acquired must have the VK_BUFFER_USAGE_VERTEX_BUFFER_BIT bit set", + "page": "vkspec" }, { "vuid": "VUID-VkBindVertexBufferIndirectCommandNV-None-02950", - "text": " Each element of the buffer from which the address was acquired and that is non-sparse must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "Each element of the buffer from which the address was acquired and that is non-sparse must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" } ] }, @@ -59098,19 +76640,23 @@ "core": [ { "vuid": "VUID-VkBindPipelineIndirectCommandNV-deviceGeneratedComputePipelines-09091", - "text": " The VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV::deviceGeneratedComputePipelines feature must be enabled" + "text": "The VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV::deviceGeneratedComputePipelines feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-VkBindPipelineIndirectCommandNV-None-09092", - "text": " The referenced pipeline must have been created with VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV" + "text": "The referenced pipeline must have been created with VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV", + "page": "vkspec" }, { "vuid": "VUID-VkBindPipelineIndirectCommandNV-None-09093", - "text": " The referenced pipeline must have been updated with vkCmdUpdatePipelineIndirectBufferNV" + "text": "The referenced pipeline must have been updated with vkCmdUpdatePipelineIndirectBufferNV", + "page": "vkspec" }, { "vuid": "VUID-VkBindPipelineIndirectCommandNV-None-09094", - "text": " The referenced pipeline’s address must have been queried with vkGetPipelineIndirectDeviceAddressNV" + "text": "The referenced pipeline’s address must have been queried with vkGetPipelineIndirectDeviceAddressNV", + "page": "vkspec" } ] }, @@ -59118,83 +76664,103 @@ "core": [ { "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-stream-02951", - "text": " stream must be smaller than VkIndirectCommandsLayoutCreateInfoNV::streamCount" + "text": "stream must be smaller than VkIndirectCommandsLayoutCreateInfoNV::streamCount", + "page": "vkspec" }, { "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-offset-02952", - "text": " offset must be less than or equal to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::maxIndirectCommandsTokenOffset" + "text": "offset must be less than or equal to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::maxIndirectCommandsTokenOffset", + "page": "vkspec" }, { "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-offset-06888", - "text": " offset must be aligned to the scalar alignment of tokenType or minIndirectCommandsBufferOffsetAlignment, whichever is lower" + "text": "offset must be aligned to the scalar alignment of tokenType or minIndirectCommandsBufferOffsetAlignment, whichever is lower", + "page": "vkspec" }, { "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02976", - "text": " If tokenType is VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV, vertexBindingUnit must stay within device supported limits for the appropriate commands" + "text": "If tokenType is VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV, vertexBindingUnit must stay within device supported limits for the appropriate commands", + "page": "vkspec" }, { "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02977", - "text": " If tokenType is VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV, pushconstantPipelineLayout must be valid" + "text": "If tokenType is VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV, pushconstantPipelineLayout must be valid", + "page": "vkspec" }, { "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02978", - "text": " If tokenType is VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV, pushconstantOffset must be a multiple of 4" + "text": "If tokenType is VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV, pushconstantOffset must be a multiple of 4", + "page": "vkspec" }, { "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02979", - "text": " If tokenType is VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV, pushconstantSize must be a multiple of 4" + "text": "If tokenType is VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV, pushconstantSize must be a multiple of 4", + "page": "vkspec" }, { "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02980", - "text": " If tokenType is VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV, pushconstantOffset must be less than VkPhysicalDeviceLimits::maxPushConstantsSize" + "text": "If tokenType is VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV, pushconstantOffset must be less than VkPhysicalDeviceLimits::maxPushConstantsSize", + "page": "vkspec" }, { "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02981", - "text": " If tokenType is VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV, pushconstantSize must be less than or equal to VkPhysicalDeviceLimits::maxPushConstantsSize minus pushconstantOffset" + "text": "If tokenType is VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV, pushconstantSize must be less than or equal to VkPhysicalDeviceLimits::maxPushConstantsSize minus pushconstantOffset", + "page": "vkspec" }, { "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02982", - "text": " If tokenType is VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV, for each byte in the range specified by pushconstantOffset and pushconstantSize and for each shader stage in pushconstantShaderStageFlags, there must be a push constant range in pushconstantPipelineLayout that includes that byte and that stage" + "text": "If tokenType is VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV, for each byte in the range specified by pushconstantOffset and pushconstantSize and for each shader stage in pushconstantShaderStageFlags, there must be a push constant range in pushconstantPipelineLayout that includes that byte and that stage", + "page": "vkspec" }, { "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02983", - "text": " If tokenType is VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV, for each byte in the range specified by pushconstantOffset and pushconstantSize and for each push constant range that overlaps that byte, pushconstantShaderStageFlags must include all stages in that push constant range’s VkPushConstantRange::stageFlags" + "text": "If tokenType is VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV, for each byte in the range specified by pushconstantOffset and pushconstantSize and for each push constant range that overlaps that byte, pushconstantShaderStageFlags must include all stages in that push constant range’s VkPushConstantRange::stageFlags", + "page": "vkspec" }, { "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02984", - "text": " If tokenType is VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV, indirectStateFlags must not be 0" + "text": "If tokenType is VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV, indirectStateFlags must not be 0", + "page": "vkspec" }, { "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV" + "text": "sType must be VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV", + "page": "vkspec" }, { "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-tokenType-parameter", - "text": " tokenType must be a valid VkIndirectCommandsTokenTypeNV value" + "text": "tokenType must be a valid VkIndirectCommandsTokenTypeNV value", + "page": "vkspec" }, { "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-pushconstantPipelineLayout-parameter", - "text": " If pushconstantPipelineLayout is not VK_NULL_HANDLE, pushconstantPipelineLayout must be a valid VkPipelineLayout handle" + "text": "If pushconstantPipelineLayout is not VK_NULL_HANDLE, pushconstantPipelineLayout must be a valid VkPipelineLayout handle", + "page": "vkspec" }, { "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-pushconstantShaderStageFlags-parameter", - "text": " pushconstantShaderStageFlags must be a valid combination of VkShaderStageFlagBits values" + "text": "pushconstantShaderStageFlags must be a valid combination of VkShaderStageFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-indirectStateFlags-parameter", - "text": " indirectStateFlags must be a valid combination of VkIndirectStateFlagBitsNV values" + "text": "indirectStateFlags must be a valid combination of VkIndirectStateFlagBitsNV values", + "page": "vkspec" }, { "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-pIndexTypes-parameter", - "text": " If indexTypeCount is not 0, pIndexTypes must be a valid pointer to an array of indexTypeCount valid VkIndexType values" + "text": "If indexTypeCount is not 0, pIndexTypes must be a valid pointer to an array of indexTypeCount valid VkIndexType values", + "page": "vkspec" }, { "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-pIndexTypeValues-parameter", - "text": " If indexTypeCount is not 0, pIndexTypeValues must be a valid pointer to an array of indexTypeCount uint32_t values" + "text": "If indexTypeCount is not 0, pIndexTypeValues must be a valid pointer to an array of indexTypeCount uint32_t values", + "page": "vkspec" } ] }, @@ -59202,23 +76768,28 @@ "core": [ { "vuid": "VUID-vkGetGeneratedCommandsMemoryRequirementsNV-deviceGeneratedCommands-02906", - "text": " The VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV::deviceGeneratedCommands feature must be enabled" + "text": "The VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV::deviceGeneratedCommands feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkGetGeneratedCommandsMemoryRequirementsNV-pInfo-09074", - "text": " If pInfo::pipelineBindPoint is of type VK_PIPELINE_BIND_POINT_COMPUTE, then the VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV::deviceGeneratedCompute feature must be enabled" + "text": "If pInfo::pipelineBindPoint is of type VK_PIPELINE_BIND_POINT_COMPUTE, then the VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV::deviceGeneratedCompute feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkGetGeneratedCommandsMemoryRequirementsNV-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetGeneratedCommandsMemoryRequirementsNV-pInfo-parameter", - "text": " pInfo must be a valid pointer to a valid VkGeneratedCommandsMemoryRequirementsInfoNV structure" + "text": "pInfo must be a valid pointer to a valid VkGeneratedCommandsMemoryRequirementsInfoNV structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetGeneratedCommandsMemoryRequirementsNV-pMemoryRequirements-parameter", - "text": " pMemoryRequirements must be a valid pointer to a VkMemoryRequirements2 structure" + "text": "pMemoryRequirements must be a valid pointer to a VkMemoryRequirements2 structure", + "page": "vkspec" } ] }, @@ -59226,43 +76797,53 @@ "core": [ { "vuid": "VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-maxSequencesCount-02907", - "text": " maxSequencesCount must be less or equal to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::maxIndirectSequenceCount" + "text": "maxSequencesCount must be less or equal to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::maxIndirectSequenceCount", + "page": "vkspec" }, { "vuid": "VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-pipelineBindPoint-09075", - "text": " If pipelineBindPoint is of type VK_PIPELINE_BIND_POINT_GRAPHICS, then pipeline must be a valid VkPipeline handle" + "text": "If pipelineBindPoint is of type VK_PIPELINE_BIND_POINT_GRAPHICS, then pipeline must be a valid VkPipeline handle", + "page": "vkspec" }, { "vuid": "VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-pipelineBindPoint-09076", - "text": " If pipelineBindPoint is of type VK_PIPELINE_BIND_POINT_COMPUTE, and the indirectCommandsLayout was not created with a VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV token, then the pipeline must be a valid VkPipeline handle" + "text": "If pipelineBindPoint is of type VK_PIPELINE_BIND_POINT_COMPUTE, and the indirectCommandsLayout was not created with a VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV token, then the pipeline must be a valid VkPipeline handle", + "page": "vkspec" }, { "vuid": "VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-pipelineBindPoint-09077", - "text": " If pipelineBindPoint is of type VK_PIPELINE_BIND_POINT_COMPUTE, and the indirectCommandsLayout contains a VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV token, then the pipeline must be NULL" + "text": "If pipelineBindPoint is of type VK_PIPELINE_BIND_POINT_COMPUTE, and the indirectCommandsLayout contains a VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV token, then the pipeline must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV" + "text": "sType must be VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV", + "page": "vkspec" }, { "vuid": "VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-pipelineBindPoint-parameter", - "text": " pipelineBindPoint must be a valid VkPipelineBindPoint value" + "text": "pipelineBindPoint must be a valid VkPipelineBindPoint value", + "page": "vkspec" }, { "vuid": "VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-pipeline-parameter", - "text": " If pipeline is not VK_NULL_HANDLE, pipeline must be a valid VkPipeline handle" + "text": "If pipeline is not VK_NULL_HANDLE, pipeline must be a valid VkPipeline handle", + "page": "vkspec" }, { "vuid": "VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-indirectCommandsLayout-parameter", - "text": " indirectCommandsLayout must be a valid VkIndirectCommandsLayoutNV handle" + "text": "indirectCommandsLayout must be a valid VkIndirectCommandsLayoutNV handle", + "page": "vkspec" }, { "vuid": "VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-commonparent", - "text": " Both of indirectCommandsLayout, and pipeline that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of indirectCommandsLayout, and pipeline that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -59270,15 +76851,18 @@ "core": [ { "vuid": "VUID-vkGetPipelineIndirectDeviceAddressNV-deviceGeneratedComputePipelines-09078", - "text": " The VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV::deviceGeneratedComputePipelines feature must be enabled" + "text": "The VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV::deviceGeneratedComputePipelines feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkGetPipelineIndirectDeviceAddressNV-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPipelineIndirectDeviceAddressNV-pInfo-parameter", - "text": " pInfo must be a valid pointer to a valid VkPipelineIndirectDeviceAddressInfoNV structure" + "text": "pInfo must be a valid pointer to a valid VkPipelineIndirectDeviceAddressInfoNV structure", + "page": "vkspec" } ] }, @@ -59286,31 +76870,38 @@ "core": [ { "vuid": "VUID-VkPipelineIndirectDeviceAddressInfoNV-pipelineBindPoint-09079", - "text": " The provided pipelineBindPoint must be of type VK_PIPELINE_BIND_POINT_COMPUTE" + "text": "The provided pipelineBindPoint must be of type VK_PIPELINE_BIND_POINT_COMPUTE", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineIndirectDeviceAddressInfoNV-pipeline-09080", - "text": " pipeline must have been created with flag VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV set" + "text": "pipeline must have been created with flag VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV set", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineIndirectDeviceAddressInfoNV-pipeline-09081", - "text": " pipeline must have been created with a VkComputePipelineIndirectBufferInfoNV structure specifying a valid address where its metadata will be saved" + "text": "pipeline must have been created with a VkComputePipelineIndirectBufferInfoNV structure specifying a valid address where its metadata will be saved", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineIndirectDeviceAddressInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV" + "text": "sType must be VK_STRUCTURE_TYPE_PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineIndirectDeviceAddressInfoNV-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineIndirectDeviceAddressInfoNV-pipelineBindPoint-parameter", - "text": " pipelineBindPoint must be a valid VkPipelineBindPoint value" + "text": "pipelineBindPoint must be a valid VkPipelineBindPoint value", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineIndirectDeviceAddressInfoNV-pipeline-parameter", - "text": " pipeline must be a valid VkPipeline handle" + "text": "pipeline must be a valid VkPipeline handle", + "page": "vkspec" } ] }, @@ -59318,23 +76909,28 @@ "core": [ { "vuid": "VUID-vkGetPipelineIndirectMemoryRequirementsNV-deviceGeneratedComputePipelines-09082", - "text": " The VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV::deviceGeneratedComputePipelines feature must be enabled" + "text": "The VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV::deviceGeneratedComputePipelines feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkGetPipelineIndirectMemoryRequirementsNV-pCreateInfo-09083", - "text": " pCreateInfo::flags must include VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV" + "text": "pCreateInfo::flags must include VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV", + "page": "vkspec" }, { "vuid": "VUID-vkGetPipelineIndirectMemoryRequirementsNV-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPipelineIndirectMemoryRequirementsNV-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkComputePipelineCreateInfo structure" + "text": "pCreateInfo must be a valid pointer to a valid VkComputePipelineCreateInfo structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetPipelineIndirectMemoryRequirementsNV-pMemoryRequirements-parameter", - "text": " pMemoryRequirements must be a valid pointer to a VkMemoryRequirements2 structure" + "text": "pMemoryRequirements must be a valid pointer to a VkMemoryRequirements2 structure", + "page": "vkspec" } ] }, @@ -59342,1331 +76938,1793 @@ "core": [ { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-magFilter-04553", - "text": " If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + "text": "If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-mipmapMode-04770", - "text": " If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + "text": "If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-06479", - "text": " If a VkImageView is sampled with depth comparison, the image view’s format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT" + "text": "If a VkImageView is sampled with depth comparison, the image view’s format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02691", - "text": " If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT" + "text": "If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07888", - "text": " If a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer’s format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT" + "text": "If a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer’s format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02692", - "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" + "text": "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02693", - "text": " If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" + "text": "If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-filterCubic-02694", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" + "text": "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-filterCubicMinmax-02695", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" + "text": "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-cubicRangeClamp-09212", + "text": "If the cubicRangeClamp feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command
\n
\n
must not have a VkSamplerReductionModeCreateInfo
\n
\n

reductionMode equal to\nVK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM

\n
\n
\n
", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-reductionMode-09213", + "text": "Any VkImageView being sampled with a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM as a result of this command must sample with VK_FILTER_CUBIC_EXT", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-selectableCubicWeights-09214", + "text": "If the selectableCubicWeights feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have VkSamplerCubicWeightsCreateInfoQCOM::cubicWeights equal to VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-flags-02696", - "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE" + "text": "Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-OpTypeImage-07027", - "text": " For any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT" + "text": "For any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-OpTypeImage-07028", - "text": " For any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT" + "text": "For any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-OpTypeImage-07029", - "text": " For any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT" + "text": "For any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-OpTypeImage-07030", - "text": " Any VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT" + "text": "Any VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08600", - "text": " For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08601", - "text": " For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-maintenance4-08602", - "text": " If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08114", - "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08115", - "text": " If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08116", - "text": " Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08604", - "text": " Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command" + "text": "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08117", - "text": " If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08119", - "text": " If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident" + "text": "If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08605", - "text": " If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident" + "text": "If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08606", - "text": " If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command" + "text": "If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08607", - "text": " If the shaderObject is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command" + "text": "If the shaderObject is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08608", - "text": " If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound" + "text": "If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08609", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08610", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08611", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-uniformBuffers-06935", - "text": " If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08612", - "text": " If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-storageBuffers-06936", - "text": " If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08613", - "text": " If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-02707", - "text": " If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource" + "text": "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-06550", - "text": " If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions" + "text": "If a bound shader accesses a VkSampler or VkImageView object that enables sampler Y′CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-ConstOffset-06551", - "text": " If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands" + "text": "If a bound shader accesses a VkSampler or VkImageView object that enables sampler Y′CBCR conversion, that object must not use the ConstOffset and Offset operands", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-viewType-07752", - "text": " If a VkImageView is accessed as a result of this command, then the image view’s viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation" + "text": "If a VkImageView is accessed as a result of this command, then the image view’s viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-format-07753", - "text": " If a VkImageView is accessed as a result of this command, then the numeric type of the image view’s format and the Sampled Type operand of the OpTypeImage must match" + "text": "If a VkImageView is accessed as a result of this command, then the numeric type of the image view’s format and the Sampled Type operand of the OpTypeImage must match", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-OpImageWrite-08795", - "text": " If a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format" + "text": "If a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-OpImageWrite-08796", - "text": " If a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components" + "text": "If a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-OpImageWrite-04469", - "text": " If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view’s format" + "text": "If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view’s format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-SampledType-04470", - "text": " If a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64" + "text": "If a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-SampledType-04471", - "text": " If a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32" + "text": "If a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-SampledType-04472", - "text": " If a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64" + "text": "If a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-SampledType-04473", - "text": " If a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32" + "text": "If a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-sparseImageInt64Atomics-04474", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command" + "text": "If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-sparseImageInt64Atomics-04475", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command" + "text": "If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-OpImageWeightedSampleQCOM-06971", - "text": " If OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-OpImageWeightedSampleQCOM-06972", - "text": " If OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-OpImageBoxFilterQCOM-06973", - "text": " If OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM" + "text": "If OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-OpImageBlockMatchSSDQCOM-06974", - "text": " If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM" + "text": "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-OpImageBlockMatchSADQCOM-06975", - "text": " If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM" + "text": "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-OpImageBlockMatchSADQCOM-06976", - "text": " If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation" + "text": "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-OpImageWeightedSampleQCOM-06977", - "text": " If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-OpImageWeightedSampleQCOM-06978", - "text": " If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM" + "text": "If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-OpImageBlockMatchWindow-09215", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-OpImageBlockMatchWindow-09216", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view’s format must be a single-component format.", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-OpImageBlockMatchWindow-09217", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07288", - "text": " Any shader invocation executed by this command must terminate" + "text": "Any shader invocation executed by this command must terminate", + "page": "vkspec" }, { "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" + "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", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-subpass-02685", - "text": " The subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS" + "text": "The subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07748", - "text": " If any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set" + "text": "If any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-OpTypeImage-07468", - "text": " If any shader executed by this pipeline accesses an OpTypeImage variable with a Dim operand of SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass" + "text": "If any shader executed by this pipeline accesses an OpTypeImage variable with a Dim operand of SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07469", - "text": " Input attachment views accessed in a subpass must be created with the same VkFormat as the corresponding subpass definition, and be created with a VkImageView that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound VkFramebuffer as specified by Fragment Input Attachment Compatibility" + "text": "Input attachment views accessed in a subpass must be created with the same VkFormat as the corresponding subpass definition, and be created with a VkImageView that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound VkFramebuffer as specified by Fragment Input Attachment Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-06537", - "text": " Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command" + "text": "Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command", + "page": "vkspec" }, { "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
" + "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
", + "page": "vkspec" }, { "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
" + "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
", + "page": "vkspec" }, { "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
" + "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 currently 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 currently bound graphics pipeline or

      \n
    • \n
    • \n

      the currently bound graphics pipeline was created with\n VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT\nit must not be accessed in any way other than as an attachment by this\ncommand

      \n
    • \n
    \n
    \n
  • \n
\n
", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-09003", - "text": " If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command" + "text": "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-06539", - "text": " If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment" + "text": "If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-06886", - "text": " If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled" + "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-06887", - "text": " If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back writeMask are not zero, and stencil test is enabled, all stencil ops must be VK_STENCIL_OP_KEEP" + "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back writeMask are not zero, and stencil test is enabled, all stencil ops must be VK_STENCIL_OP_KEEP", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07831", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07832", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07833", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08617", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08618", - "text": " If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08619", - "text": " If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07834", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08620", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07835", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08621", - "text": " If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07836", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled, and if the current depthBoundsTestEnable state is VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08622", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07837", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08623", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07838", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled then vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08624", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07839", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled then vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08625", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-maxMultiviewInstanceIndex-02688", - "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex" + "text": "If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsEnable-02689", - "text": " If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set" + "text": "If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-06666", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08626", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetSampleLocationsEnableEXT in the current command buffer set sampleLocationsEnable to VK_TRUE, vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetSampleLocationsEnableEXT in the current command buffer set sampleLocationsEnable to VK_TRUE, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsPerPixel-07934", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07840", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08627", - "text": " If a shader object is bound to any graphics stage, vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07841", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08628", - "text": " If a shader object is bound to any graphics stage, vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07843", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08629", - "text": " If a shader object is bound to any graphics stage, vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07844", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08630", - "text": " If a shader object is bound to any graphics stage, vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07845", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08631", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthTestEnable in the current command buffer set depthTestEnable to VK_TRUE, vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetDepthTestEnable in the current command buffer set depthTestEnable to VK_TRUE, then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07846", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled then vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled then vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08632", - "text": " If a shader object is bound to any graphics stage, and the depthBounds feature is enabled, the vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the depthBounds feature is enabled, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07847", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08633", - "text": " If 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, then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07848", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08634", - "text": " If 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 vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-03417", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-scissorCount-03418", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the scissorCount parameter of vkCmdSetScissorWithCount must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the scissorCount parameter of vkCmdSetScissorWithCount must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-03419", - "text": " If the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount" + "text": "If the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08635", - "text": " If a shader object is bound to any graphics stage, then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount" + "text": "If a shader object is bound to any graphics stage, then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-04137", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-04138", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-09232", + "text": "If a shader object is bound to any graphics stage, and the VK_NV_clip_space_w_scaling extension is enabled on the device, then vkCmdSetViewportWScalingNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08636", - "text": " If a shader object is bound to any graphics stage, and the VK_NV_clip_space_w_scaling extension is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If a shader object is bound to any graphics stage, and the VK_NV_clip_space_w_scaling extension is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-04139", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-04140", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-shadingRateImage-09233", + "text": "If the shadingRateImage feature is enabled, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoarseSampleOrderNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-shadingRateImage-09234", + "text": "If a shader object is bound to any graphics stage, and the shadingRateImage feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetShadingRateImageEnableNV in the current command buffer set shadingRateImageEnable to VK_TRUE, then vkCmdSetViewportShadingRatePaletteNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08637", - "text": " If a shader object is bound to any graphics stage, and the shadingRateImage feature is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If a shader object is bound to any graphics stage, and the shadingRateImage feature is enabled on the device, then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-VkPipelineVieportCreateInfo-04141", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportSwizzleStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportSwizzleStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-VkPipelineVieportCreateInfo-04142", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportExclusiveScissorStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportExclusiveScissorStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07878", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07879", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-exclusiveScissor-09235", + "text": "If a shader object is bound to any graphics stage, and the exclusiveScissor feature is enabled, then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08638", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetExclusiveScissorEnableNV in the current command buffer set any element of pExclusiveScissorEnables to VK_TRUE, then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetExclusiveScissorEnableNV in the current command buffer set any element of pExclusiveScissorEnables to VK_TRUE, then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-04876", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08639", - "text": " If a shader object is bound to any graphics stage, then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to any graphics stage, then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-04877", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08640", - "text": " If 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, then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-logicOp-04878", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08641", - "text": " If a shader object is bound to any graphics stage, and the logicOp feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the logicOp feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-primitiveFragmentShadingRateWithMultipleViewports-04552", - "text": " If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1" + "text": "If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-primitiveFragmentShadingRateWithMultipleViewports-08642", - "text": " If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and any shader object bound to a graphics stage writes to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1" + "text": "If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and any shader object bound to a graphics stage writes to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-blendEnable-04727", - "text": " If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the blendEnable member of the corresponding element of the pAttachments member of pColorBlendState must be VK_FALSE" + "text": "If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the blendEnable member of the corresponding element of the pAttachments member of pColorBlendState must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08643", - "text": " If 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, then for each color attachment in the render pass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the corresponding member of pColorBlendEnables in the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer that affected that attachment index must have been VK_FALSE" + "text": "If 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, then for each color attachment in the render pass, if the corresponding image view’s format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the corresponding member of pColorBlendEnables in the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer that affected that attachment index must have been VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-multisampledRenderToSingleSampled-07284", - "text": " If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments" + "text": "If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08644", - "text": " If 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 none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then the most recent call to vkCmdSetRasterizationSamplesEXT in the current command buffer must have set rasterizationSamples to be the same as the number of samples for the current render pass color and/or depth/stencil attachments" + "text": "If 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 none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then the most recent call to vkCmdSetRasterizationSamplesEXT in the current command buffer must have set rasterizationSamples to be the same as the number of samples for the current render pass color and/or depth/stencil attachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08876", - "text": " If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering" + "text": "If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-imageView-06172", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-imageView-06173", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-imageView-06174", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, this command must not write any values to the depth attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, this command must not write any values to the depth attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-imageView-06175", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-imageView-06176", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-imageView-06177", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-viewMask-06178", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::viewMask equal to VkRenderingInfo::viewMask" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::viewMask equal to VkRenderingInfo::viewMask", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-colorAttachmentCount-06179", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::colorAttachmentCount equal to VkRenderingInfo::colorAttachmentCount" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::colorAttachmentCount equal to VkRenderingInfo::colorAttachmentCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-dynamicRenderingUnusedAttachments-08910", - "text": " If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline" + "text": "If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-dynamicRenderingUnusedAttachments-08911", - "text": " If the dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats, if it exists, must be VK_FORMAT_UNDEFINED" + "text": "If the dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats, if it exists, must be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-dynamicRenderingUnusedAttachments-08912", - "text": " If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED" + "text": "If the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED", + "page": "vkspec" + }, + { + "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 currently bound graphics pipeline", + "page": "vkspec" + }, + { + "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 currently bound graphics pipeline", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-09364", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled, then vkCmdSetColorBlendEnableEXT must have set the blend enable to VK_FALSE prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-09365", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-09368", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-09369", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07749", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08646", - "text": " If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the fragment stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-attachmentCount-07750", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the attachmentCount parameter of vkCmdSetColorWriteEnableEXT must be greater than or equal to the VkPipelineColorBlendStateCreateInfo::attachmentCount of the currently bound graphics pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the attachmentCount parameter of vkCmdSetColorWriteEnableEXT must be greater than or equal to the VkPipelineColorBlendStateCreateInfo::attachmentCount of the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08647", - "text": " If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the fragment stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the attachmentCount parameter of most recent call to vkCmdSetColorWriteEnableEXT in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance" + "text": "If the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the attachmentCount parameter of most recent call to vkCmdSetColorWriteEnableEXT in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07751", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07880", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-rasterizerDiscardEnable-09236", + "text": "If the VK_EXT_discard_rectangles extension is 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, then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08648", - "text": " If the VK_EXT_discard_rectangles extension is 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, then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_discard_rectangles extension is 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, then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07881", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08649", - "text": " If the VK_EXT_discard_rectangles extension is 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 vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_discard_rectangles extension is 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 vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-dynamicRenderingUnusedAttachments-08913", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-dynamicRenderingUnusedAttachments-08914", - "text": " If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView" + "text": "If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-dynamicRenderingUnusedAttachments-08915", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-dynamicRenderingUnusedAttachments-08916", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-dynamicRenderingUnusedAttachments-08917", - "text": " If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView" + "text": "If current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-dynamicRenderingUnusedAttachments-08918", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-imageView-06183", - "text": " If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentShadingRateAttachmentInfoKHR::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR" + "text": "If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentShadingRateAttachmentInfoKHR::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-imageView-06184", - "text": " If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT" + "text": "If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-colorAttachmentCount-06185", - "text": " If the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline" + "text": "If the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-pDepthAttachment-06186", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-pStencilAttachment-06187", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-multisampledRenderToSingleSampled-07285", - "text": " If the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of rasterizationSamples for the currently bound graphics pipeline" + "text": "If the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of rasterizationSamples for the currently bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-multisampledRenderToSingleSampled-07286", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-multisampledRenderToSingleSampled-07287", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-pNext-07935", - "text": " If this command has been called inside a render pass instance started with vkCmdBeginRendering, and the pNext chain of VkRenderingInfo includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the value of rasterizationSamples for the currently bound graphics pipeline must be equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples" + "text": "If this command has been called inside a render pass instance started with vkCmdBeginRendering, and the pNext chain of VkRenderingInfo includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the value of rasterizationSamples for the currently bound graphics pipeline must be equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-renderPass-06198", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline must have been created with a VkGraphicsPipelineCreateInfo::renderPass equal to VK_NULL_HANDLE" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline must have been created with a VkGraphicsPipelineCreateInfo::renderPass equal to VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-pColorAttachments-08963", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the VkRenderingInfo::pColorAttachments->imageView was not VK_NULL_HANDLE, then the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the pipeline must not be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the VkRenderingInfo::pColorAttachments->imageView was not VK_NULL_HANDLE, then the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the pipeline must not be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-pDepthAttachment-08964", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-pStencilAttachment-08965", - "text": " If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, stencil test is enabled and the VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED" + "text": "If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, stencil test is enabled and the VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-primitivesGeneratedQueryWithRasterizerDiscard-06708", - "text": " If the primitivesGeneratedQueryWithRasterizerDiscard feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, rasterization discard must not be enabled" + "text": "If the primitivesGeneratedQueryWithRasterizerDiscard feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, rasterization discard must not be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-primitivesGeneratedQueryWithNonZeroStreams-06709", - "text": " If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, the bound graphics pipeline must not have been created with a non-zero value in VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream" + "text": "If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, the bound graphics pipeline must not have been created with a non-zero value in VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07619", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07620", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-09237", + "text": "If a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08650", - "text": " If the depthClamp feature is 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, then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the depthClamp feature is 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, then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07621", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08651", - "text": " If 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, then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07622", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08652", - "text": " If 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, then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07623", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08653", - "text": " If 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, then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07624", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-alphaToCoverageEnable-08919", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and alphaToCoverageEnable was VK_TRUE in the last call to vkCmdSetAlphaToCoverageEnableEXT, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and alphaToCoverageEnable was VK_TRUE in the last call to vkCmdSetAlphaToCoverageEnableEXT, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08654", - "text": " If 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, then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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, then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-alphaToCoverageEnable-08920", - "text": " If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetAlphaToCoverageEnableEXT in the current command buffer set alphaToCoverageEnable to VK_TRUE, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0" + "text": "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetAlphaToCoverageEnableEXT in the current command buffer set alphaToCoverageEnable to VK_TRUE, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07625", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08655", - "text": " If the alphaToOne feature is 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, then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the alphaToOne feature is 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, then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07626", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08656", - "text": " If the logicOp feature is 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, then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the logicOp feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07627", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08657", - "text": " If 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, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07628", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08658", - "text": " If 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 vkCmdSetColorBlendEnableEXT for any attachment set that attachment’s value in pColorBlendEnables to VK_TRUE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command" + "text": "If 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 vkCmdSetColorBlendEnableEXT for any attachment set that attachment’s value in pColorBlendEnables to VK_TRUE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07629", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08659", - "text": " If 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, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07630", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08660", - "text": " If the geometryStreams feature is enabled, and a shader object is bound to the geometry stage, then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the geometryStreams feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_GEOMETRY_BIT stage, then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07631", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08661", - "text": " If the VK_EXT_conservative_rasterization extension is 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, then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_conservative_rasterization extension is 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, then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07632", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08662", - "text": " If the VK_EXT_conservative_rasterization extension is 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 vkCmdSetConservativeRasterizationModeEXT in the current command buffer set conservativeRasterizationMode to VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_conservative_rasterization extension is 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 vkCmdSetConservativeRasterizationModeEXT in the current command buffer set conservativeRasterizationMode to VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07633", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08663", - "text": " If the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07634", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08664", - "text": " If the VK_EXT_sample_locations extension is 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, then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_sample_locations extension is 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, then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07635", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07636", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08665", - "text": " If the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the vertex stage, then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "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 in the current command buffer prior to this drawing command" + "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 in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08666", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08667", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08668", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "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 in the current command buffer prior to this drawing command" + "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 in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08669", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08670", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the vertex stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08671", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the tessellation evaluation or geometry stage, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07849", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_EXT dynamic state enabled then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_EXT dynamic state enabled then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08672", - "text": " If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetLineStippleEnableEXT in the current command buffer set stippledLineEnable to VK_TRUE, then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetLineStippleEnableEXT in the current command buffer set stippledLineEnable to VK_TRUE, then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07639", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08673", - "text": " If the depthClipControl feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the depthClipControl feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07640", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08674", - "text": " If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07641", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08675", - "text": " If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07642", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08676", - "text": " If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07643", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08677", - "text": " If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetCoverageToColorEnableNV in the current command buffer set coverageToColorEnable to VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetCoverageToColorEnableNV in the current command buffer set coverageToColorEnable to VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07644", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08678", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_framebuffer_mixed_samples extension is 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, then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07645", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08679", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_framebuffer_mixed_samples extension is 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 vkCmdSetCoverageModulationModeNV in the current command buffer set coverageModulationMode to any value other than VK_COVERAGE_MODULATION_MODE_NONE_NV, then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07646", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08680", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetCoverageModulationTableEnableNV in the current command buffer set coverageModulationTableEnable to VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the VK_NV_framebuffer_mixed_samples extension is 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 vkCmdSetCoverageModulationTableEnableNV in the current command buffer set coverageModulationTableEnable to VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07647", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-pipelineFragmentShadingRate-09238", + "text": "If the pipelineFragmentShadingRate feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetFragmentShadingRateKHR must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08681", - "text": " If the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the shadingRateImage feature is 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, then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07648", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08682", - "text": " If the representativeFragmentTest feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command" + "text": "If the representativeFragmentTest feature is 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, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07649", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08683", - "text": " If the coverageReductionMode feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command" + "text": "If the coverageReductionMode feature is 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, then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-pColorBlendEnables-07470", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT state enabled and the last call to vkCmdSetColorBlendEnableEXT set pColorBlendEnables for any attachment to VK_TRUE, then for those attachments in the subpass the corresponding image view’s format features must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT state enabled and the last call to vkCmdSetColorBlendEnableEXT set pColorBlendEnables for any attachment to VK_TRUE, then for those attachments in the subpass the corresponding image view’s format features must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-rasterizationSamples-07471", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must follow the rules for a zero-attachment subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must follow the rules for a zero-attachment subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-samples-07472", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the VkPipelineMultisampleStateCreateInfo::rasterizationSamples parameter used to create the bound graphics pipeline" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the VkPipelineMultisampleStateCreateInfo::rasterizationSamples parameter used to create the bound graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-samples-07473", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the rasterizationSamples parameter in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the rasterizationSamples parameter in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { - "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-multisampledRenderToSingleSampled-07475", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and none of the VK_AMD_mixed_attachment_samples extension, VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the current subpass color and/or depth/stencil attachments" + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-rasterizationSamples-07474", + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples extensions are enabled, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the current subpass color and/or depth/stencil attachments", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-09211", + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the rasterizationSamples member of that structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-firstAttachment-07476", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-firstAttachment-07477", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-firstAttachment-07478", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-firstAttachment-07479", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-advancedBlendMaxColorAttachments-07480", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT and VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic states enabled and the last calls to vkCmdSetColorBlendEnableEXT and vkCmdSetColorBlendAdvancedEXT have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed advancedBlendMaxColorAttachments" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT and VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic states enabled and the last calls to vkCmdSetColorBlendEnableEXT and vkCmdSetColorBlendAdvancedEXT have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed advancedBlendMaxColorAttachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-primitivesGeneratedQueryWithNonZeroStreams-07481", - "text": " If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, and the bound graphics pipeline was created with VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT state enabled, the last call to vkCmdSetRasterizationStreamEXT must have set the rasterizationStream to zero" + "text": "If the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, and the bound graphics pipeline was created with VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT state enabled, the last call to vkCmdSetRasterizationStreamEXT must have set the rasterizationStream to zero", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsPerPixel-07482", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsPerPixel-07483", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples parameter of the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples parameter of the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsEnable-07484", - "text": " If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set" + "text": "If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsEnable-07485", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.width in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.width in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsEnable-07486", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.height in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.height in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsEnable-07487", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, the fragment shader code must not statically use the extended instruction InterpolateAtSample" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, the fragment shader code must not statically use the extended instruction InterpolateAtSample", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsEnable-07936", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.width must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.width must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsEnable-07937", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.height must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.height must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsEnable-07938", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-coverageModulationTableEnable-07488", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-rasterizationSamples-07489", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment" + "text": "If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-coverageToColorEnable-07490", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-coverageReductionMode-07491", - "text": " If this VK_NV_coverage_reduction_mode extension is enabled, the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, the current coverage reduction mode coverageReductionMode, then the current rasterizationSamples, and the sample counts for the color and depth/stencil attachments (if the subpass has them) must be a valid combination returned by vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV" + "text": "If this VK_NV_coverage_reduction_mode extension is enabled, the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, the current coverage reduction mode coverageReductionMode, then the current rasterizationSamples, and the sample counts for the color and depth/stencil attachments (if the subpass has them) must be a valid combination returned by vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-07492", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-07493", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-rasterizationSamples-07494", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE" + "text": "If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-stippledLineEnable-07495", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-stippledLineEnable-07496", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-stippledLineEnable-07497", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-stippledLineEnable-07498", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-conservativePointAndLineRasterization-07499", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, conservativePointAndLineRasterization is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the conservativeRasterizationMode set by the last call to vkCmdSetConservativeRasterizationModeEXT must be VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, conservativePointAndLineRasterization is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the conservativeRasterizationMode set by the last call to vkCmdSetConservativeRasterizationModeEXT must be VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-stage-07073", - "text": " If the currently bound pipeline was created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT, then Mesh Shader Queries must not be active" + "text": "If the currently bound pipeline was created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT, then Mesh Shader Queries must not be active", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08877", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07850", - "text": " If dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command" + "text": "If dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08684", - "text": " If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_VERTEX_BIT" + "text": "If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_VERTEX_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08685", - "text": " If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT" + "text": "If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08686", - "text": " If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT" + "text": "If there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08687", - "text": " If there is no bound graphics pipeline, and the geometryShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_GEOMETRY_BIT" + "text": "If there is no bound graphics pipeline, and the geometryShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_GEOMETRY_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08688", - "text": " If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_FRAGMENT_BIT" + "text": "If there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_FRAGMENT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08689", - "text": " If there is no bound graphics pipeline, and the taskShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TASK_BIT_EXT" + "text": "If there is no bound graphics pipeline, and the taskShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TASK_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08690", - "text": " If there is no bound graphics pipeline, and the meshShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_MESH_BIT_EXT" + "text": "If there is no bound graphics pipeline, and the meshShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_MESH_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08693", - "text": " If there is no bound graphics pipeline, and at least one of the taskShader and meshShader features is enabled, one of the VK_SHADER_STAGE_VERTEX_BIT or VK_SHADER_STAGE_MESH_BIT_EXT stages must have a valid VkShaderEXT bound, and the other must have no VkShaderEXT bound" + "text": "If there is no bound graphics pipeline, and at least one of the taskShader and meshShader features is enabled, one of the VK_SHADER_STAGE_VERTEX_BIT or VK_SHADER_STAGE_MESH_BIT_EXT stages must have a valid VkShaderEXT bound, and the other must have no VkShaderEXT bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08694", - "text": " If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created without the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, a valid VkShaderEXT must be bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage" + "text": "If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created without the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, a valid VkShaderEXT must be bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08695", - "text": " If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created with the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, there must be no VkShaderEXT bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage" + "text": "If there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created with the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, there must be no VkShaderEXT bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08696", - "text": " If there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage" + "text": "If there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08698", - "text": " If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound" + "text": "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08699", - "text": " If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound" + "text": "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08878", - "text": " All bound graphics shader objects must have been created with identical or identically defined push constant ranges" + "text": "All bound graphics shader objects must have been created with identical or identically defined push constant ranges", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08879", - "text": " All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts" + "text": "All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts", + "page": "vkspec" + }, + { + "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", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08880", - "text": " If there is no bound graphics pipeline and the attachmentFeedbackLoopDynamicState feature is enabled on the device, vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage and the attachmentFeedbackLoopDynamicState feature is enabled on the device, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-pDynamicStates-08715", - "text": " If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable parameter in the last call to vkCmdSetDepthWriteEnable must be VK_FALSE" + "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable parameter in the last call to vkCmdSetDepthWriteEnable must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-pDynamicStates-08716", - "text": " If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_STENCIL_WRITE_MASK set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the writeMask parameter in the last call to vkCmdSetStencilWriteMask must be 0" + "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_STENCIL_WRITE_MASK set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the writeMask parameter in the last call to vkCmdSetStencilWriteMask must be 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-09116", - "text": " If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them" + "text": "If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-maxFragmentDualSrcAttachments-09239", + "text": "If blending is enabled for any attachment where either the source or destination blend factors for that attachment use the secondary color input, the maximum value of Location for any output attachment statically used in the Fragment Execution Model executed by this command must be less than maxFragmentDualSrcAttachments", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-04007", - "text": " All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must have either valid or VK_NULL_HANDLE buffers bound" + "text": "All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must have either valid or VK_NULL_HANDLE buffers bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-04008", - "text": " If the nullDescriptor feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must not be VK_NULL_HANDLE" + "text": "If the nullDescriptor feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must not be VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02721", - "text": " For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description" + "text": "For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07842", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state enabled then vkCmdSetPrimitiveTopology must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state enabled then vkCmdSetPrimitiveTopology must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-dynamicPrimitiveTopologyUnrestricted-07500", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state enabled and the dynamicPrimitiveTopologyUnrestricted is VK_FALSE, then the primitiveTopology parameter of vkCmdSetPrimitiveTopology must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state enabled and the dynamicPrimitiveTopologyUnrestricted is VK_FALSE, then the primitiveTopology parameter of vkCmdSetPrimitiveTopology must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-04912", - "text": " If the bound graphics pipeline was created with both the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT and VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic states enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command" + "text": "If the bound graphics pipeline was created with both the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT and VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic states enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-pStrides-04913", - "text": " If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdBindVertexBuffers2EXT must have been called in the current command buffer prior to this draw command, and the pStrides parameter of vkCmdBindVertexBuffers2EXT must not be NULL" + "text": "If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdBindVertexBuffers2EXT must have been called in the current command buffer prior to this draw command, and the pStrides parameter of vkCmdBindVertexBuffers2EXT must not be NULL", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08881", - "text": " If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetPrimitiveTopology must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetPrimitiveTopology must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-04914", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-Input-07939", - "text": " If 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 {ExecutionModel} OpEntryPoint must contain a location in VkVertexInputAttributeDescription2EXT::location" + "text": "If 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": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-Input-08734", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then the numeric type associated with all Input variables of the corresponding Location in the Vertex {ExecutionModel} OpEntryPoint must be the same as VkVertexInputAttributeDescription2EXT::format" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then the numeric type associated with all Input variables of the corresponding Location in the Vertex Execution Model OpEntryPoint must be the same as VkVertexInputAttributeDescription2EXT::format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-format-08936", - "text": " If there is a shader object bound to a graphics stage or the currently bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, and VkVertexInputAttributeDescription2EXT::format has a 64-bit component, then the scalar width associated with all Input variables of the corresponding Location in the Vertex {ExecutionModel} OpEntryPoint must be 64-bit" + "text": "If there is a shader object bound to a graphics stage or the currently bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, and VkVertexInputAttributeDescription2EXT::format has a 64-bit component, then the scalar width associated with all Input variables of the corresponding Location in the Vertex Execution Model OpEntryPoint must be 64-bit", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-format-08937", - "text": " If there is a shader object bound to a graphics stage or the currently bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, and the scalar width associated with a Location decorated Input variable in the Vertex {ExecutionModel} OpEntryPoint is 64-bit, then the corresponding VkVertexInputAttributeDescription2EXT::format must have a 64-bit component" + "text": "If there is a shader object bound to a graphics stage or the currently bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, and the scalar width associated with a Location decorated Input variable in the Vertex Execution Model OpEntryPoint is 64-bit, then the corresponding VkVertexInputAttributeDescription2EXT::format must have a 64-bit component", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-09203", - "text": " If there is a shader object bound to a graphics stage or the currently bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, and VkVertexInputAttributeDescription2EXT::format has a 64-bit component, then all Input variables at the corresponding Location in the Vertex {ExecutionModel} OpEntryPoint must not use components that are not present in the format" + "text": "If there is a shader object bound to a graphics stage or the currently bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, and VkVertexInputAttributeDescription2EXT::format has a 64-bit component, then all Input variables at the corresponding Location in the Vertex Execution Model OpEntryPoint must not use components that are not present in the format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08882", - "text": " If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-04875", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT dynamic state enabled then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT dynamic state enabled then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08883", - "text": " If a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command" + "text": "If a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-04879", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then vkCmdSetPrimitiveRestartEnable must have been called in the current command buffer prior to this drawing command" + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then vkCmdSetPrimitiveRestartEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-rasterizerDiscardEnable-08884", - "text": " If 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, vkCmdSetPrimitiveRestartEnable must have been called in the current command buffer prior to this drawing command" + "text": "If 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, vkCmdSetPrimitiveRestartEnable must have been called in the current command buffer prior to this drawing command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-stage-06481", - "text": " The bound graphics pipeline must not have been created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT" + "text": "The bound graphics pipeline must not have been created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08885", - "text": " There must be no shader object bound to either of the VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT stages" + "text": "There must be no shader object bound to either of the VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT stages", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-02970", - "text": " commandBuffer must not be a protected command buffer" + "text": "commandBuffer must not be a protected command buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-isPreprocessed-02908", - "text": " If isPreprocessed is VK_TRUE then vkCmdPreprocessGeneratedCommandsNV must have already been executed on the device, using the same pGeneratedCommandsInfo content as well as the content of the input buffers it references (all except VkGeneratedCommandsInfoNV::preprocessBuffer). Furthermore pGeneratedCommandsInfo`s indirectCommandsLayout must have been created with the VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV bit set" + "text": "If isPreprocessed is VK_TRUE then vkCmdPreprocessGeneratedCommandsNV must have already been executed on the device, using the same pGeneratedCommandsInfo content as well as the content of the input buffers it references (all except VkGeneratedCommandsInfoNV::preprocessBuffer). Furthermore pGeneratedCommandsInfo`s indirectCommandsLayout must have been created with the VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV bit set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-pipeline-02909", - "text": " VkGeneratedCommandsInfoNV::pipeline must match the current bound pipeline at VkGeneratedCommandsInfoNV::pipelineBindPoint" + "text": "VkGeneratedCommandsInfoNV::pipeline must match the current bound pipeline at VkGeneratedCommandsInfoNV::pipelineBindPoint", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02910", - "text": " Transform feedback must not be active" + "text": "Transform feedback must not be active", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-deviceGeneratedCommands-02911", - "text": " The VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV::deviceGeneratedCommands feature must be enabled" + "text": "The VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV::deviceGeneratedCommands feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-pGeneratedCommandsInfo-parameter", - "text": " pGeneratedCommandsInfo must be a valid pointer to a valid VkGeneratedCommandsInfoNV structure" + "text": "pGeneratedCommandsInfo must be a valid pointer to a valid VkGeneratedCommandsInfoNV structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-renderpass", - "text": " This command must only be called inside of a render pass instance" + "text": "This command must only be called inside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -60674,143 +78732,178 @@ "core": [ { "vuid": "VUID-VkGeneratedCommandsInfoNV-pipeline-02912", - "text": " The provided pipeline must match the pipeline bound at execution time" + "text": "The provided pipeline must match the pipeline bound at execution time", + "page": "vkspec" }, { "vuid": "VUID-VkGeneratedCommandsInfoNV-indirectCommandsLayout-02913", - "text": " If the indirectCommandsLayout uses a token of VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV, then the pipeline must have been created with multiple shader groups" + "text": "If the indirectCommandsLayout uses a token of VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV, then the pipeline must have been created with multiple shader groups", + "page": "vkspec" }, { "vuid": "VUID-VkGeneratedCommandsInfoNV-indirectCommandsLayout-02914", - "text": " If the indirectCommandsLayout uses a token of VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV, then the pipeline must have been created with VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV set in VkGraphicsPipelineCreateInfo::flags" + "text": "If the indirectCommandsLayout uses a token of VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV, then the pipeline must have been created with VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV set in VkGraphicsPipelineCreateInfo::flags", + "page": "vkspec" }, { "vuid": "VUID-VkGeneratedCommandsInfoNV-indirectCommandsLayout-02915", - "text": " If the indirectCommandsLayout uses a token of VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV, then the pipeline`s VkPipelineLayout must match the VkIndirectCommandsLayoutTokenNV::pushconstantPipelineLayout" + "text": "If the indirectCommandsLayout uses a token of VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV, then the pipeline`s VkPipelineLayout must match the VkIndirectCommandsLayoutTokenNV::pushconstantPipelineLayout", + "page": "vkspec" }, { "vuid": "VUID-VkGeneratedCommandsInfoNV-streamCount-02916", - "text": " streamCount must match the indirectCommandsLayout’s streamCount" + "text": "streamCount must match the indirectCommandsLayout’s streamCount", + "page": "vkspec" }, { "vuid": "VUID-VkGeneratedCommandsInfoNV-pipelineBindPoint-09084", - "text": " If pipelineBindPoint is of type VK_PIPELINE_BIND_POINT_COMPUTE, then the pipeline must have been created with the flag VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV" + "text": "If pipelineBindPoint is of type VK_PIPELINE_BIND_POINT_COMPUTE, then the pipeline must have been created with the flag VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV", + "page": "vkspec" }, { "vuid": "VUID-VkGeneratedCommandsInfoNV-pipelineBindPoint-09085", - "text": " If pipelineBindPoint is of type VK_PIPELINE_BIND_POINT_COMPUTE, then the pipeline must have been created with a VkComputePipelineIndirectBufferInfoNV structure specifying a valid address where its metadata will be saved" + "text": "If pipelineBindPoint is of type VK_PIPELINE_BIND_POINT_COMPUTE, then the pipeline must have been created with a VkComputePipelineIndirectBufferInfoNV structure specifying a valid address where its metadata will be saved", + "page": "vkspec" }, { "vuid": "VUID-VkGeneratedCommandsInfoNV-pipelineBindPoint-09086", - "text": " If pipelineBindPoint is of type VK_PIPELINE_BIND_POINT_COMPUTE, then vkCmdUpdatePipelineIndirectBufferNV must have been called on that pipeline to save its metadata to a device address" + "text": "If pipelineBindPoint is of type VK_PIPELINE_BIND_POINT_COMPUTE, then vkCmdUpdatePipelineIndirectBufferNV must have been called on that pipeline to save its metadata to a device address", + "page": "vkspec" }, { "vuid": "VUID-VkGeneratedCommandsInfoNV-pipelineBindPoint-09087", - "text": " If pipelineBindPoint is of type VK_PIPELINE_BIND_POINT_COMPUTE, and if VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV is used, then pipeline must be VK_NULL_HANDLE" + "text": "If pipelineBindPoint is of type VK_PIPELINE_BIND_POINT_COMPUTE, and if VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV is used, then pipeline must be VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-VkGeneratedCommandsInfoNV-sequencesCount-02917", - "text": " sequencesCount must be less or equal to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::maxIndirectSequenceCount and VkGeneratedCommandsMemoryRequirementsInfoNV::maxSequencesCount that was used to determine the preprocessSize" + "text": "sequencesCount must be less or equal to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::maxIndirectSequenceCount and VkGeneratedCommandsMemoryRequirementsInfoNV::maxSequencesCount that was used to determine the preprocessSize", + "page": "vkspec" }, { "vuid": "VUID-VkGeneratedCommandsInfoNV-preprocessBuffer-02918", - "text": " preprocessBuffer must have the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set in its usage flag" + "text": "preprocessBuffer must have the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set in its usage flag", + "page": "vkspec" }, { "vuid": "VUID-VkGeneratedCommandsInfoNV-preprocessOffset-02919", - "text": " preprocessOffset must be aligned to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::minIndirectCommandsBufferOffsetAlignment" + "text": "preprocessOffset must be aligned to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::minIndirectCommandsBufferOffsetAlignment", + "page": "vkspec" }, { "vuid": "VUID-VkGeneratedCommandsInfoNV-preprocessBuffer-02971", - "text": " If preprocessBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If preprocessBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-VkGeneratedCommandsInfoNV-preprocessSize-02920", - "text": " preprocessSize must be at least equal to the memory requirement`s size returned by vkGetGeneratedCommandsMemoryRequirementsNV using the matching inputs (indirectCommandsLayout, …​) as within this structure" + "text": "preprocessSize must be at least equal to the memory requirement`s size returned by vkGetGeneratedCommandsMemoryRequirementsNV using the matching inputs (indirectCommandsLayout, …​) as within this structure", + "page": "vkspec" }, { "vuid": "VUID-VkGeneratedCommandsInfoNV-sequencesCountBuffer-02921", - "text": " sequencesCountBuffer can be set if the actual used count of sequences is sourced from the provided buffer. In that case the sequencesCount serves as upper bound" + "text": "sequencesCountBuffer can be set if the actual used count of sequences is sourced from the provided buffer. In that case the sequencesCount serves as upper bound", + "page": "vkspec" }, { "vuid": "VUID-VkGeneratedCommandsInfoNV-sequencesCountBuffer-02922", - "text": " If sequencesCountBuffer is not VK_NULL_HANDLE, its usage flag must have the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set" + "text": "If sequencesCountBuffer is not VK_NULL_HANDLE, its usage flag must have the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set", + "page": "vkspec" }, { "vuid": "VUID-VkGeneratedCommandsInfoNV-sequencesCountBuffer-02923", - "text": " If sequencesCountBuffer is not VK_NULL_HANDLE, sequencesCountOffset must be aligned to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::minSequencesCountBufferOffsetAlignment" + "text": "If sequencesCountBuffer is not VK_NULL_HANDLE, sequencesCountOffset must be aligned to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::minSequencesCountBufferOffsetAlignment", + "page": "vkspec" }, { "vuid": "VUID-VkGeneratedCommandsInfoNV-sequencesCountBuffer-02972", - "text": " If sequencesCountBuffer is not VK_NULL_HANDLE and is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If sequencesCountBuffer is not VK_NULL_HANDLE and is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-VkGeneratedCommandsInfoNV-sequencesIndexBuffer-02924", - "text": " If indirectCommandsLayout’s VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV is set, sequencesIndexBuffer must be set otherwise it must be VK_NULL_HANDLE" + "text": "If indirectCommandsLayout’s VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV is set, sequencesIndexBuffer must be set otherwise it must be VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-VkGeneratedCommandsInfoNV-sequencesIndexBuffer-02925", - "text": " If sequencesIndexBuffer is not VK_NULL_HANDLE, its usage flag must have the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set" + "text": "If sequencesIndexBuffer is not VK_NULL_HANDLE, its usage flag must have the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set", + "page": "vkspec" }, { "vuid": "VUID-VkGeneratedCommandsInfoNV-sequencesIndexBuffer-02926", - "text": " If sequencesIndexBuffer is not VK_NULL_HANDLE, sequencesIndexOffset must be aligned to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::minSequencesIndexBufferOffsetAlignment" + "text": "If sequencesIndexBuffer is not VK_NULL_HANDLE, sequencesIndexOffset must be aligned to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::minSequencesIndexBufferOffsetAlignment", + "page": "vkspec" }, { "vuid": "VUID-VkGeneratedCommandsInfoNV-sequencesIndexBuffer-02973", - "text": " If sequencesIndexBuffer is not VK_NULL_HANDLE and is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If sequencesIndexBuffer is not VK_NULL_HANDLE and is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-VkGeneratedCommandsInfoNV-indirectCommandsLayout-07078", - "text": " If the indirectCommandsLayout uses a token of VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV, then the pipeline must contain a shader stage using the MeshNV {ExecutionModel}" + "text": "If the indirectCommandsLayout uses a token of VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV, then the pipeline must contain a shader stage using the MeshNV Execution Model", + "page": "vkspec" }, { "vuid": "VUID-VkGeneratedCommandsInfoNV-indirectCommandsLayout-07079", - "text": " If the indirectCommandsLayout uses a token of VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV, then the pipeline must contain a shader stage using the MeshEXT {ExecutionModel}" + "text": "If the indirectCommandsLayout uses a token of VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV, then the pipeline must contain a shader stage using the MeshEXT Execution Model", + "page": "vkspec" }, { "vuid": "VUID-VkGeneratedCommandsInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV" + "text": "sType must be VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV", + "page": "vkspec" }, { "vuid": "VUID-VkGeneratedCommandsInfoNV-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkGeneratedCommandsInfoNV-pipelineBindPoint-parameter", - "text": " pipelineBindPoint must be a valid VkPipelineBindPoint value" + "text": "pipelineBindPoint must be a valid VkPipelineBindPoint value", + "page": "vkspec" }, { "vuid": "VUID-VkGeneratedCommandsInfoNV-pipeline-parameter", - "text": " pipeline must be a valid VkPipeline handle" + "text": "pipeline must be a valid VkPipeline handle", + "page": "vkspec" }, { "vuid": "VUID-VkGeneratedCommandsInfoNV-indirectCommandsLayout-parameter", - "text": " indirectCommandsLayout must be a valid VkIndirectCommandsLayoutNV handle" + "text": "indirectCommandsLayout must be a valid VkIndirectCommandsLayoutNV handle", + "page": "vkspec" }, { "vuid": "VUID-VkGeneratedCommandsInfoNV-pStreams-parameter", - "text": " pStreams must be a valid pointer to an array of streamCount valid VkIndirectCommandsStreamNV structures" + "text": "pStreams must be a valid pointer to an array of streamCount valid VkIndirectCommandsStreamNV structures", + "page": "vkspec" }, { "vuid": "VUID-VkGeneratedCommandsInfoNV-preprocessBuffer-parameter", - "text": " preprocessBuffer must be a valid VkBuffer handle" + "text": "preprocessBuffer must be a valid VkBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-VkGeneratedCommandsInfoNV-sequencesCountBuffer-parameter", - "text": " If sequencesCountBuffer is not VK_NULL_HANDLE, sequencesCountBuffer must be a valid VkBuffer handle" + "text": "If sequencesCountBuffer is not VK_NULL_HANDLE, sequencesCountBuffer must be a valid VkBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-VkGeneratedCommandsInfoNV-sequencesIndexBuffer-parameter", - "text": " If sequencesIndexBuffer is not VK_NULL_HANDLE, sequencesIndexBuffer must be a valid VkBuffer handle" + "text": "If sequencesIndexBuffer is not VK_NULL_HANDLE, sequencesIndexBuffer must be a valid VkBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-VkGeneratedCommandsInfoNV-streamCount-arraylength", - "text": " streamCount must be greater than 0" + "text": "streamCount must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-VkGeneratedCommandsInfoNV-commonparent", - "text": " Each of indirectCommandsLayout, pipeline, preprocessBuffer, sequencesCountBuffer, and sequencesIndexBuffer that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" + "text": "Each of indirectCommandsLayout, pipeline, preprocessBuffer, sequencesCountBuffer, and sequencesIndexBuffer that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -60818,39 +78911,48 @@ "core": [ { "vuid": "VUID-vkCmdPreprocessGeneratedCommandsNV-commandBuffer-02974", - "text": " commandBuffer must not be a protected command buffer" + "text": "commandBuffer must not be a protected command buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPreprocessGeneratedCommandsNV-pGeneratedCommandsInfo-02927", - "text": " pGeneratedCommandsInfo`s indirectCommandsLayout must have been created with the VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV bit set" + "text": "pGeneratedCommandsInfo`s indirectCommandsLayout must have been created with the VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV bit set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPreprocessGeneratedCommandsNV-deviceGeneratedCommands-02928", - "text": " The VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV::deviceGeneratedCommands feature must be enabled" + "text": "The VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV::deviceGeneratedCommands feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPreprocessGeneratedCommandsNV-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPreprocessGeneratedCommandsNV-pGeneratedCommandsInfo-parameter", - "text": " pGeneratedCommandsInfo must be a valid pointer to a valid VkGeneratedCommandsInfoNV structure" + "text": "pGeneratedCommandsInfo must be a valid pointer to a valid VkGeneratedCommandsInfoNV structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPreprocessGeneratedCommandsNV-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPreprocessGeneratedCommandsNV-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPreprocessGeneratedCommandsNV-renderpass", - "text": " This command must only be called outside of a render pass instance" + "text": "This command must only be called outside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdPreprocessGeneratedCommandsNV-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -60858,43 +78960,53 @@ "core": [ { "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties-samples-01094", - "text": " samples must be a bit value that is set in VkImageFormatProperties::sampleCounts returned by vkGetPhysicalDeviceImageFormatProperties with format, type, tiling, and usage equal to those in this command and flags equal to the value that is set in VkImageCreateInfo::flags when the image is created" + "text": "samples must be a bit value that is set in VkImageFormatProperties::sampleCounts returned by vkGetPhysicalDeviceImageFormatProperties with format, type, tiling, and usage equal to those in this command and flags equal to the value that is set in VkImageCreateInfo::flags when the image is created", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": "physicalDevice must be a valid VkPhysicalDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties-format-parameter", - "text": " format must be a valid VkFormat value" + "text": "format must be a valid VkFormat value", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties-type-parameter", - "text": " type must be a valid VkImageType value" + "text": "type must be a valid VkImageType value", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties-samples-parameter", - "text": " samples must be a valid VkSampleCountFlagBits value" + "text": "samples must be a valid VkSampleCountFlagBits value", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties-usage-parameter", - "text": " usage must be a valid combination of VkImageUsageFlagBits values" + "text": "usage must be a valid combination of VkImageUsageFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties-usage-requiredbitmask", - "text": " usage must not be 0" + "text": "usage must not be 0", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties-tiling-parameter", - "text": " tiling must be a valid VkImageTiling value" + "text": "tiling must be a valid VkImageTiling value", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties-pPropertyCount-parameter", - "text": " pPropertyCount must be a valid pointer to a uint32_t value" + "text": "pPropertyCount must be a valid pointer to a uint32_t value", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties-pProperties-parameter", - "text": " If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkSparseImageFormatProperties structures" + "text": "If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkSparseImageFormatProperties structures", + "page": "vkspec" } ] }, @@ -60902,19 +79014,23 @@ "core": [ { "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties2-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": "physicalDevice must be a valid VkPhysicalDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties2-pFormatInfo-parameter", - "text": " pFormatInfo must be a valid pointer to a valid VkPhysicalDeviceSparseImageFormatInfo2 structure" + "text": "pFormatInfo must be a valid pointer to a valid VkPhysicalDeviceSparseImageFormatInfo2 structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties2-pPropertyCount-parameter", - "text": " pPropertyCount must be a valid pointer to a uint32_t value" + "text": "pPropertyCount must be a valid pointer to a uint32_t value", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties2-pProperties-parameter", - "text": " If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkSparseImageFormatProperties2 structures" + "text": "If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkSparseImageFormatProperties2 structures", + "page": "vkspec" } ] }, @@ -60922,39 +79038,48 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceSparseImageFormatInfo2-samples-01095", - "text": " samples must be a bit value that is set in VkImageFormatProperties::sampleCounts returned by vkGetPhysicalDeviceImageFormatProperties with format, type, tiling, and usage equal to those in this command and flags equal to the value that is set in VkImageCreateInfo::flags when the image is created" + "text": "samples must be a bit value that is set in VkImageFormatProperties::sampleCounts returned by vkGetPhysicalDeviceImageFormatProperties with format, type, tiling, and usage equal to those in this command and flags equal to the value that is set in VkImageCreateInfo::flags when the image is created", + "page": "vkspec" }, { "vuid": "VUID-VkPhysicalDeviceSparseImageFormatInfo2-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2", + "page": "vkspec" }, { "vuid": "VUID-VkPhysicalDeviceSparseImageFormatInfo2-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkPhysicalDeviceSparseImageFormatInfo2-format-parameter", - "text": " format must be a valid VkFormat value" + "text": "format must be a valid VkFormat value", + "page": "vkspec" }, { "vuid": "VUID-VkPhysicalDeviceSparseImageFormatInfo2-type-parameter", - "text": " type must be a valid VkImageType value" + "text": "type must be a valid VkImageType value", + "page": "vkspec" }, { "vuid": "VUID-VkPhysicalDeviceSparseImageFormatInfo2-samples-parameter", - "text": " samples must be a valid VkSampleCountFlagBits value" + "text": "samples must be a valid VkSampleCountFlagBits value", + "page": "vkspec" }, { "vuid": "VUID-VkPhysicalDeviceSparseImageFormatInfo2-usage-parameter", - "text": " usage must be a valid combination of VkImageUsageFlagBits values" + "text": "usage must be a valid combination of VkImageUsageFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkPhysicalDeviceSparseImageFormatInfo2-usage-requiredbitmask", - "text": " usage must not be 0" + "text": "usage must not be 0", + "page": "vkspec" }, { "vuid": "VUID-VkPhysicalDeviceSparseImageFormatInfo2-tiling-parameter", - "text": " tiling must be a valid VkImageTiling value" + "text": "tiling must be a valid VkImageTiling value", + "page": "vkspec" } ] }, @@ -60962,11 +79087,13 @@ "core": [ { "vuid": "VUID-VkSparseImageFormatProperties2-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2" + "text": "sType must be VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2", + "page": "vkspec" }, { "vuid": "VUID-VkSparseImageFormatProperties2-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" } ] }, @@ -60974,23 +79101,28 @@ "core": [ { "vuid": "VUID-vkGetImageSparseMemoryRequirements-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetImageSparseMemoryRequirements-image-parameter", - "text": " image must be a valid VkImage handle" + "text": "image must be a valid VkImage handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetImageSparseMemoryRequirements-pSparseMemoryRequirementCount-parameter", - "text": " pSparseMemoryRequirementCount must be a valid pointer to a uint32_t value" + "text": "pSparseMemoryRequirementCount must be a valid pointer to a uint32_t value", + "page": "vkspec" }, { "vuid": "VUID-vkGetImageSparseMemoryRequirements-pSparseMemoryRequirements-parameter", - "text": " If the value referenced by pSparseMemoryRequirementCount is not 0, and pSparseMemoryRequirements is not NULL, pSparseMemoryRequirements must be a valid pointer to an array of pSparseMemoryRequirementCount VkSparseImageMemoryRequirements structures" + "text": "If the value referenced by pSparseMemoryRequirementCount is not 0, and pSparseMemoryRequirements is not NULL, pSparseMemoryRequirements must be a valid pointer to an array of pSparseMemoryRequirementCount VkSparseImageMemoryRequirements structures", + "page": "vkspec" }, { "vuid": "VUID-vkGetImageSparseMemoryRequirements-image-parent", - "text": " image must have been created, allocated, or retrieved from device" + "text": "image must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -60998,19 +79130,23 @@ "core": [ { "vuid": "VUID-vkGetImageSparseMemoryRequirements2-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetImageSparseMemoryRequirements2-pInfo-parameter", - "text": " pInfo must be a valid pointer to a valid VkImageSparseMemoryRequirementsInfo2 structure" + "text": "pInfo must be a valid pointer to a valid VkImageSparseMemoryRequirementsInfo2 structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetImageSparseMemoryRequirements2-pSparseMemoryRequirementCount-parameter", - "text": " pSparseMemoryRequirementCount must be a valid pointer to a uint32_t value" + "text": "pSparseMemoryRequirementCount must be a valid pointer to a uint32_t value", + "page": "vkspec" }, { "vuid": "VUID-vkGetImageSparseMemoryRequirements2-pSparseMemoryRequirements-parameter", - "text": " If the value referenced by pSparseMemoryRequirementCount is not 0, and pSparseMemoryRequirements is not NULL, pSparseMemoryRequirements must be a valid pointer to an array of pSparseMemoryRequirementCount VkSparseImageMemoryRequirements2 structures" + "text": "If the value referenced by pSparseMemoryRequirementCount is not 0, and pSparseMemoryRequirements is not NULL, pSparseMemoryRequirements must be a valid pointer to an array of pSparseMemoryRequirementCount VkSparseImageMemoryRequirements2 structures", + "page": "vkspec" } ] }, @@ -61018,19 +79154,23 @@ "core": [ { "vuid": "VUID-vkGetDeviceImageSparseMemoryRequirements-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetDeviceImageSparseMemoryRequirements-pInfo-parameter", - "text": " pInfo must be a valid pointer to a valid VkDeviceImageMemoryRequirements structure" + "text": "pInfo must be a valid pointer to a valid VkDeviceImageMemoryRequirements structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetDeviceImageSparseMemoryRequirements-pSparseMemoryRequirementCount-parameter", - "text": " pSparseMemoryRequirementCount must be a valid pointer to a uint32_t value" + "text": "pSparseMemoryRequirementCount must be a valid pointer to a uint32_t value", + "page": "vkspec" }, { "vuid": "VUID-vkGetDeviceImageSparseMemoryRequirements-pSparseMemoryRequirements-parameter", - "text": " If the value referenced by pSparseMemoryRequirementCount is not 0, and pSparseMemoryRequirements is not NULL, pSparseMemoryRequirements must be a valid pointer to an array of pSparseMemoryRequirementCount VkSparseImageMemoryRequirements2 structures" + "text": "If the value referenced by pSparseMemoryRequirementCount is not 0, and pSparseMemoryRequirements is not NULL, pSparseMemoryRequirements must be a valid pointer to an array of pSparseMemoryRequirementCount VkSparseImageMemoryRequirements2 structures", + "page": "vkspec" } ] }, @@ -61038,15 +79178,18 @@ "core": [ { "vuid": "VUID-VkImageSparseMemoryRequirementsInfo2-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2" + "text": "sType must be VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2", + "page": "vkspec" }, { "vuid": "VUID-VkImageSparseMemoryRequirementsInfo2-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkImageSparseMemoryRequirementsInfo2-image-parameter", - "text": " image must be a valid VkImage handle" + "text": "image must be a valid VkImage handle", + "page": "vkspec" } ] }, @@ -61054,11 +79197,13 @@ "core": [ { "vuid": "VUID-VkSparseImageMemoryRequirements2-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2" + "text": "sType must be VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2", + "page": "vkspec" }, { "vuid": "VUID-VkSparseImageMemoryRequirements2-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" } ] }, @@ -61066,47 +79211,58 @@ "core": [ { "vuid": "VUID-VkSparseMemoryBind-memory-01096", - "text": " If memory is not VK_NULL_HANDLE, memory and memoryOffset must match the memory requirements of the resource, as described in section Resource Memory Association" + "text": "If memory is not VK_NULL_HANDLE, memory and memoryOffset must match the memory requirements of the resource, as described in section Resource Memory Association", + "page": "vkspec" }, { "vuid": "VUID-VkSparseMemoryBind-memory-01097", - "text": " If memory is not VK_NULL_HANDLE, memory must not have been created with a memory type that reports VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT bit set" + "text": "If memory is not VK_NULL_HANDLE, memory must not have been created with a memory type that reports VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT bit set", + "page": "vkspec" }, { "vuid": "VUID-VkSparseMemoryBind-size-01098", - "text": " size must be greater than 0" + "text": "size must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-VkSparseMemoryBind-resourceOffset-01099", - "text": " resourceOffset must be less than the size of the resource" + "text": "resourceOffset must be less than the size of the resource", + "page": "vkspec" }, { "vuid": "VUID-VkSparseMemoryBind-size-01100", - "text": " size must be less than or equal to the size of the resource minus resourceOffset" + "text": "size must be less than or equal to the size of the resource minus resourceOffset", + "page": "vkspec" }, { "vuid": "VUID-VkSparseMemoryBind-memoryOffset-01101", - "text": " memoryOffset must be less than the size of memory" + "text": "memoryOffset must be less than the size of memory", + "page": "vkspec" }, { "vuid": "VUID-VkSparseMemoryBind-size-01102", - "text": " size must be less than or equal to the size of memory minus memoryOffset" + "text": "size must be less than or equal to the size of memory minus memoryOffset", + "page": "vkspec" }, { "vuid": "VUID-VkSparseMemoryBind-memory-02730", - "text": " If memory was created with VkExportMemoryAllocateInfo::handleTypes not equal to 0, at least one handle type it contained must also have been set in VkExternalMemoryBufferCreateInfo::handleTypes or VkExternalMemoryImageCreateInfo::handleTypes when the resource was created" + "text": "If memory was created with VkExportMemoryAllocateInfo::handleTypes not equal to 0, at least one handle type it contained must also have been set in VkExternalMemoryBufferCreateInfo::handleTypes or VkExternalMemoryImageCreateInfo::handleTypes when the resource was created", + "page": "vkspec" }, { "vuid": "VUID-VkSparseMemoryBind-memory-02731", - "text": " If memory was created by a memory import operation, the external handle type of the imported memory must also have been set in VkExternalMemoryBufferCreateInfo::handleTypes or VkExternalMemoryImageCreateInfo::handleTypes when the resource was created" + "text": "If memory was created by a memory import operation, the external handle type of the imported memory must also have been set in VkExternalMemoryBufferCreateInfo::handleTypes or VkExternalMemoryImageCreateInfo::handleTypes when the resource was created", + "page": "vkspec" }, { "vuid": "VUID-VkSparseMemoryBind-memory-parameter", - "text": " If memory is not VK_NULL_HANDLE, memory must be a valid VkDeviceMemory handle" + "text": "If memory is not VK_NULL_HANDLE, memory must be a valid VkDeviceMemory handle", + "page": "vkspec" }, { "vuid": "VUID-VkSparseMemoryBind-flags-parameter", - "text": " flags must be a valid combination of VkSparseMemoryBindFlagBits values" + "text": "flags must be a valid combination of VkSparseMemoryBindFlagBits values", + "page": "vkspec" } ] }, @@ -61114,15 +79270,18 @@ "core": [ { "vuid": "VUID-VkSparseBufferMemoryBindInfo-buffer-parameter", - "text": " buffer must be a valid VkBuffer handle" + "text": "buffer must be a valid VkBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-VkSparseBufferMemoryBindInfo-pBinds-parameter", - "text": " pBinds must be a valid pointer to an array of bindCount valid VkSparseMemoryBind structures" + "text": "pBinds must be a valid pointer to an array of bindCount valid VkSparseMemoryBind structures", + "page": "vkspec" }, { "vuid": "VUID-VkSparseBufferMemoryBindInfo-bindCount-arraylength", - "text": " bindCount must be greater than 0" + "text": "bindCount must be greater than 0", + "page": "vkspec" } ] }, @@ -61130,19 +79289,23 @@ "core": [ { "vuid": "VUID-VkSparseImageOpaqueMemoryBindInfo-pBinds-01103", - "text": " If the flags member of any element of pBinds contains VK_SPARSE_MEMORY_BIND_METADATA_BIT, the binding range defined must be within the mip tail region of the metadata aspect of image" + "text": "If the flags member of any element of pBinds contains VK_SPARSE_MEMORY_BIND_METADATA_BIT, the binding range defined must be within the mip tail region of the metadata aspect of image", + "page": "vkspec" }, { "vuid": "VUID-VkSparseImageOpaqueMemoryBindInfo-image-parameter", - "text": " image must be a valid VkImage handle" + "text": "image must be a valid VkImage handle", + "page": "vkspec" }, { "vuid": "VUID-VkSparseImageOpaqueMemoryBindInfo-pBinds-parameter", - "text": " pBinds must be a valid pointer to an array of bindCount valid VkSparseMemoryBind structures" + "text": "pBinds must be a valid pointer to an array of bindCount valid VkSparseMemoryBind structures", + "page": "vkspec" }, { "vuid": "VUID-VkSparseImageOpaqueMemoryBindInfo-bindCount-arraylength", - "text": " bindCount must be greater than 0" + "text": "bindCount must be greater than 0", + "page": "vkspec" } ] }, @@ -61150,27 +79313,33 @@ "core": [ { "vuid": "VUID-VkSparseImageMemoryBindInfo-subresource-01722", - "text": " The subresource.mipLevel member of each element of pBinds must be less than the mipLevels specified in VkImageCreateInfo when image was created" + "text": "The subresource.mipLevel member of each element of pBinds must be less than the mipLevels specified in VkImageCreateInfo when image was created", + "page": "vkspec" }, { "vuid": "VUID-VkSparseImageMemoryBindInfo-subresource-01723", - "text": " The subresource.arrayLayer member of each element of pBinds must be less than the arrayLayers specified in VkImageCreateInfo when image was created" + "text": "The subresource.arrayLayer member of each element of pBinds must be less than the arrayLayers specified in VkImageCreateInfo when image was created", + "page": "vkspec" }, { "vuid": "VUID-VkSparseImageMemoryBindInfo-image-02901", - "text": " image must have been created with VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT set" + "text": "image must have been created with VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT set", + "page": "vkspec" }, { "vuid": "VUID-VkSparseImageMemoryBindInfo-image-parameter", - "text": " image must be a valid VkImage handle" + "text": "image must be a valid VkImage handle", + "page": "vkspec" }, { "vuid": "VUID-VkSparseImageMemoryBindInfo-pBinds-parameter", - "text": " pBinds must be a valid pointer to an array of bindCount valid VkSparseImageMemoryBind structures" + "text": "pBinds must be a valid pointer to an array of bindCount valid VkSparseImageMemoryBind structures", + "page": "vkspec" }, { "vuid": "VUID-VkSparseImageMemoryBindInfo-bindCount-arraylength", - "text": " bindCount must be greater than 0" + "text": "bindCount must be greater than 0", + "page": "vkspec" } ] }, @@ -61178,59 +79347,88 @@ "core": [ { "vuid": "VUID-VkSparseImageMemoryBind-memory-01104", - "text": " If the sparseResidencyAliased feature is not enabled, and if any other resources are bound to ranges of memory, the range of memory being bound must not overlap with those bound ranges" + "text": "If the sparseResidencyAliased feature is not enabled, and if any other resources are bound to ranges of memory, the range of memory being bound must not overlap with those bound ranges", + "page": "vkspec" }, { "vuid": "VUID-VkSparseImageMemoryBind-memory-01105", - "text": " memory and memoryOffset must match the memory requirements of the calling command’s image, as described in section Resource Memory Association" + "text": "memory and memoryOffset must match the memory requirements of the calling command’s image, as described in section Resource Memory Association", + "page": "vkspec" }, { "vuid": "VUID-VkSparseImageMemoryBind-subresource-01106", - "text": " subresource must be a valid image subresource for image (see Image Views)" + "text": "subresource must be a valid image subresource for image (see Image Views)", + "page": "vkspec" }, { "vuid": "VUID-VkSparseImageMemoryBind-offset-01107", - "text": " offset.x must be a multiple of the sparse image block width (VkSparseImageFormatProperties::imageGranularity.width) of the image" + "text": "offset.x must be a multiple of the sparse image block width (VkSparseImageFormatProperties::imageGranularity.width) of the image", + "page": "vkspec" + }, + { + "vuid": "VUID-VkSparseImageMemoryBind-extent-09388", + "text": "extent.width must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-VkSparseImageMemoryBind-extent-01108", - "text": " extent.width must either be a multiple of the sparse image block width of the image, or else (extent.width + offset.x) must equal the width of the image subresource" + "text": "extent.width must either be a multiple of the sparse image block width of the image, or else (extent.width + offset.x) must equal the width of the image subresource", + "page": "vkspec" }, { "vuid": "VUID-VkSparseImageMemoryBind-offset-01109", - "text": " offset.y must be a multiple of the sparse image block height (VkSparseImageFormatProperties::imageGranularity.height) of the image" + "text": "offset.y must be a multiple of the sparse image block height (VkSparseImageFormatProperties::imageGranularity.height) of the image", + "page": "vkspec" + }, + { + "vuid": "VUID-VkSparseImageMemoryBind-extent-09389", + "text": "extent.height must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-VkSparseImageMemoryBind-extent-01110", - "text": " extent.height must either be a multiple of the sparse image block height of the image, or else (extent.height + offset.y) must equal the height of the image subresource" + "text": "extent.height must either be a multiple of the sparse image block height of the image, or else (extent.height + offset.y) must equal the height of the image subresource", + "page": "vkspec" }, { "vuid": "VUID-VkSparseImageMemoryBind-offset-01111", - "text": " offset.z must be a multiple of the sparse image block depth (VkSparseImageFormatProperties::imageGranularity.depth) of the image" + "text": "offset.z must be a multiple of the sparse image block depth (VkSparseImageFormatProperties::imageGranularity.depth) of the image", + "page": "vkspec" + }, + { + "vuid": "VUID-VkSparseImageMemoryBind-extent-09390", + "text": "extent.depth must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-VkSparseImageMemoryBind-extent-01112", - "text": " extent.depth must either be a multiple of the sparse image block depth of the image, or else (extent.depth + offset.z) must equal the depth of the image subresource" + "text": "extent.depth must either be a multiple of the sparse image block depth of the image, or else (extent.depth + offset.z) must equal the depth of the image subresource", + "page": "vkspec" }, { "vuid": "VUID-VkSparseImageMemoryBind-memory-02732", - "text": " If memory was created with VkExportMemoryAllocateInfo::handleTypes not equal to 0, at least one handle type it contained must also have been set in VkExternalMemoryImageCreateInfo::handleTypes when the image was created" + "text": "If memory was created with VkExportMemoryAllocateInfo::handleTypes not equal to 0, at least one handle type it contained must also have been set in VkExternalMemoryImageCreateInfo::handleTypes when the image was created", + "page": "vkspec" }, { "vuid": "VUID-VkSparseImageMemoryBind-memory-02733", - "text": " If memory was created by a memory import operation, the external handle type of the imported memory must also have been set in VkExternalMemoryImageCreateInfo::handleTypes when image was created" + "text": "If memory was created by a memory import operation, the external handle type of the imported memory must also have been set in VkExternalMemoryImageCreateInfo::handleTypes when image was created", + "page": "vkspec" }, { "vuid": "VUID-VkSparseImageMemoryBind-subresource-parameter", - "text": " subresource must be a valid VkImageSubresource structure" + "text": "subresource must be a valid VkImageSubresource structure", + "page": "vkspec" }, { "vuid": "VUID-VkSparseImageMemoryBind-memory-parameter", - "text": " If memory is not VK_NULL_HANDLE, memory must be a valid VkDeviceMemory handle" + "text": "If memory is not VK_NULL_HANDLE, memory must be a valid VkDeviceMemory handle", + "page": "vkspec" }, { "vuid": "VUID-VkSparseImageMemoryBind-flags-parameter", - "text": " flags must be a valid combination of VkSparseMemoryBindFlagBits values" + "text": "flags must be a valid combination of VkSparseMemoryBindFlagBits values", + "page": "vkspec" } ] }, @@ -61238,43 +79436,53 @@ "core": [ { "vuid": "VUID-vkQueueBindSparse-fence-01113", - "text": " If fence is not VK_NULL_HANDLE, fence must be unsignaled" + "text": "If fence is not VK_NULL_HANDLE, fence must be unsignaled", + "page": "vkspec" }, { "vuid": "VUID-vkQueueBindSparse-fence-01114", - "text": " If fence is not VK_NULL_HANDLE, fence must not be associated with any other queue command that has not yet completed execution on that queue" + "text": "If fence is not VK_NULL_HANDLE, fence must not be associated with any other queue command that has not yet completed execution on that queue", + "page": "vkspec" }, { "vuid": "VUID-vkQueueBindSparse-pSignalSemaphores-01115", - "text": " Each element of the pSignalSemaphores member of each element of pBindInfo must be unsignaled when the semaphore signal operation it defines is executed on the device" + "text": "Each element of the pSignalSemaphores member of each element of pBindInfo must be unsignaled when the semaphore signal operation it defines is executed on the device", + "page": "vkspec" }, { "vuid": "VUID-vkQueueBindSparse-pWaitSemaphores-01116", - "text": " When a semaphore wait operation referring to a binary semaphore defined by any element of the pWaitSemaphores member of any element of pBindInfo executes on queue, there must be no other queues waiting on the same semaphore" + "text": "When a semaphore wait operation referring to a binary semaphore defined by any element of the pWaitSemaphores member of any element of pBindInfo executes on queue, there must be no other queues waiting on the same semaphore", + "page": "vkspec" }, { "vuid": "VUID-vkQueueBindSparse-pWaitSemaphores-03245", - "text": " All elements of the pWaitSemaphores member of all elements of pBindInfo created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_BINARY must reference a semaphore signal operation that has been submitted for execution and any semaphore signal operations on which it depends (if any) must have also been submitted for execution" + "text": "All elements of the pWaitSemaphores member of all elements of pBindInfo created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_BINARY must reference a semaphore signal operation that has been submitted for execution and any semaphore signal operations on which it depends (if any) must have also been submitted for execution", + "page": "vkspec" }, { "vuid": "VUID-vkQueueBindSparse-queue-parameter", - "text": " queue must be a valid VkQueue handle" + "text": "queue must be a valid VkQueue handle", + "page": "vkspec" }, { "vuid": "VUID-vkQueueBindSparse-pBindInfo-parameter", - "text": " If bindInfoCount is not 0, pBindInfo must be a valid pointer to an array of bindInfoCount valid VkBindSparseInfo structures" + "text": "If bindInfoCount is not 0, pBindInfo must be a valid pointer to an array of bindInfoCount valid VkBindSparseInfo structures", + "page": "vkspec" }, { "vuid": "VUID-vkQueueBindSparse-fence-parameter", - "text": " If fence is not VK_NULL_HANDLE, fence must be a valid VkFence handle" + "text": "If fence is not VK_NULL_HANDLE, fence must be a valid VkFence handle", + "page": "vkspec" }, { "vuid": "VUID-vkQueueBindSparse-queuetype", - "text": " The queue must support sparse binding operations" + "text": "The queue must support sparse binding operations", + "page": "vkspec" }, { "vuid": "VUID-vkQueueBindSparse-commonparent", - "text": " Both of fence, and queue that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of fence, and queue that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -61282,63 +79490,78 @@ "core": [ { "vuid": "VUID-VkBindSparseInfo-pWaitSemaphores-03246", - "text": " If any element of pWaitSemaphores or pSignalSemaphores was created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE then the pNext chain must include a VkTimelineSemaphoreSubmitInfo structure" + "text": "If any element of pWaitSemaphores or pSignalSemaphores was created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE then the pNext chain must include a VkTimelineSemaphoreSubmitInfo structure", + "page": "vkspec" }, { "vuid": "VUID-VkBindSparseInfo-pNext-03247", - "text": " If the pNext chain of this structure includes a VkTimelineSemaphoreSubmitInfo structure and any element of pWaitSemaphores was created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE then its waitSemaphoreValueCount member must equal waitSemaphoreCount" + "text": "If the pNext chain of this structure includes a VkTimelineSemaphoreSubmitInfo structure and any element of pWaitSemaphores was created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE then its waitSemaphoreValueCount member must equal waitSemaphoreCount", + "page": "vkspec" }, { "vuid": "VUID-VkBindSparseInfo-pNext-03248", - "text": " If the pNext chain of this structure includes a VkTimelineSemaphoreSubmitInfo structure and any element of pSignalSemaphores was created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE then its signalSemaphoreValueCount member must equal signalSemaphoreCount" + "text": "If the pNext chain of this structure includes a VkTimelineSemaphoreSubmitInfo structure and any element of pSignalSemaphores was created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE then its signalSemaphoreValueCount member must equal signalSemaphoreCount", + "page": "vkspec" }, { "vuid": "VUID-VkBindSparseInfo-pSignalSemaphores-03249", - "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 greater than the current value of the semaphore when the semaphore signal operation is executed" + "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 greater than the current value of the semaphore when the semaphore signal operation is executed", + "page": "vkspec" }, { "vuid": "VUID-VkBindSparseInfo-pWaitSemaphores-03250", - "text": " For each element of pWaitSemaphores created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE the corresponding element of VkTimelineSemaphoreSubmitInfo::pWaitSemaphoreValues 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" + "text": "For each element of pWaitSemaphores created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE the corresponding element of VkTimelineSemaphoreSubmitInfo::pWaitSemaphoreValues 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": "vkspec" }, { "vuid": "VUID-VkBindSparseInfo-pSignalSemaphores-03251", - "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" + "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": "vkspec" }, { "vuid": "VUID-VkBindSparseInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_BIND_SPARSE_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_BIND_SPARSE_INFO", + "page": "vkspec" }, { "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 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, or VkTimelineSemaphoreSubmitInfo", + "page": "vkspec" }, { "vuid": "VUID-VkBindSparseInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" }, { "vuid": "VUID-VkBindSparseInfo-pWaitSemaphores-parameter", - "text": " If waitSemaphoreCount is not 0, pWaitSemaphores must be a valid pointer to an array of waitSemaphoreCount valid VkSemaphore handles" + "text": "If waitSemaphoreCount is not 0, pWaitSemaphores must be a valid pointer to an array of waitSemaphoreCount valid VkSemaphore handles", + "page": "vkspec" }, { "vuid": "VUID-VkBindSparseInfo-pBufferBinds-parameter", - "text": " If bufferBindCount is not 0, pBufferBinds must be a valid pointer to an array of bufferBindCount valid VkSparseBufferMemoryBindInfo structures" + "text": "If bufferBindCount is not 0, pBufferBinds must be a valid pointer to an array of bufferBindCount valid VkSparseBufferMemoryBindInfo structures", + "page": "vkspec" }, { "vuid": "VUID-VkBindSparseInfo-pImageOpaqueBinds-parameter", - "text": " If imageOpaqueBindCount is not 0, pImageOpaqueBinds must be a valid pointer to an array of imageOpaqueBindCount valid VkSparseImageOpaqueMemoryBindInfo structures" + "text": "If imageOpaqueBindCount is not 0, pImageOpaqueBinds must be a valid pointer to an array of imageOpaqueBindCount valid VkSparseImageOpaqueMemoryBindInfo structures", + "page": "vkspec" }, { "vuid": "VUID-VkBindSparseInfo-pImageBinds-parameter", - "text": " If imageBindCount is not 0, pImageBinds must be a valid pointer to an array of imageBindCount valid VkSparseImageMemoryBindInfo structures" + "text": "If imageBindCount is not 0, pImageBinds must be a valid pointer to an array of imageBindCount valid VkSparseImageMemoryBindInfo structures", + "page": "vkspec" }, { "vuid": "VUID-VkBindSparseInfo-pSignalSemaphores-parameter", - "text": " If signalSemaphoreCount is not 0, pSignalSemaphores must be a valid pointer to an array of signalSemaphoreCount valid VkSemaphore handles" + "text": "If signalSemaphoreCount is not 0, pSignalSemaphores must be a valid pointer to an array of signalSemaphoreCount valid VkSemaphore handles", + "page": "vkspec" }, { "vuid": "VUID-VkBindSparseInfo-commonparent", - "text": " Both of the elements of pSignalSemaphores, and the elements of pWaitSemaphores that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of the elements of pSignalSemaphores, and the elements of pWaitSemaphores that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -61346,15 +79569,18 @@ "core": [ { "vuid": "VUID-VkDeviceGroupBindSparseInfo-resourceDeviceIndex-01118", - "text": " resourceDeviceIndex and memoryDeviceIndex must both be valid device indices" + "text": "resourceDeviceIndex and memoryDeviceIndex must both be valid device indices", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceGroupBindSparseInfo-memoryDeviceIndex-01119", - "text": " Each memory allocation bound in this batch must have allocated an instance for memoryDeviceIndex" + "text": "Each memory allocation bound in this batch must have allocated an instance for memoryDeviceIndex", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceGroupBindSparseInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO", + "page": "vkspec" } ] }, @@ -61362,19 +79588,23 @@ "core": [ { "vuid": "VUID-vkCreateAndroidSurfaceKHR-instance-parameter", - "text": " instance must be a valid VkInstance handle" + "text": "instance must be a valid VkInstance handle", + "page": "vkspec" }, { "vuid": "VUID-vkCreateAndroidSurfaceKHR-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkAndroidSurfaceCreateInfoKHR structure" + "text": "pCreateInfo must be a valid pointer to a valid VkAndroidSurfaceCreateInfoKHR structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateAndroidSurfaceKHR-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateAndroidSurfaceKHR-pSurface-parameter", - "text": " pSurface must be a valid pointer to a VkSurfaceKHR handle" + "text": "pSurface must be a valid pointer to a VkSurfaceKHR handle", + "page": "vkspec" } ] }, @@ -61382,19 +79612,23 @@ "core": [ { "vuid": "VUID-VkAndroidSurfaceCreateInfoKHR-window-01248", - "text": " window must point to a valid Android ANativeWindow" + "text": "window must point to a valid Android ANativeWindow", + "page": "vkspec" }, { "vuid": "VUID-VkAndroidSurfaceCreateInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkAndroidSurfaceCreateInfoKHR-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkAndroidSurfaceCreateInfoKHR-flags-zerobitmask", - "text": " flags must be 0" + "text": "flags must be 0", + "page": "vkspec" } ] }, @@ -61402,19 +79636,23 @@ "core": [ { "vuid": "VUID-vkCreateWaylandSurfaceKHR-instance-parameter", - "text": " instance must be a valid VkInstance handle" + "text": "instance must be a valid VkInstance handle", + "page": "vkspec" }, { "vuid": "VUID-vkCreateWaylandSurfaceKHR-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkWaylandSurfaceCreateInfoKHR structure" + "text": "pCreateInfo must be a valid pointer to a valid VkWaylandSurfaceCreateInfoKHR structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateWaylandSurfaceKHR-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateWaylandSurfaceKHR-pSurface-parameter", - "text": " pSurface must be a valid pointer to a VkSurfaceKHR handle" + "text": "pSurface must be a valid pointer to a VkSurfaceKHR handle", + "page": "vkspec" } ] }, @@ -61422,23 +79660,28 @@ "core": [ { "vuid": "VUID-VkWaylandSurfaceCreateInfoKHR-display-01304", - "text": " display must point to a valid Wayland wl_display" + "text": "display must point to a valid Wayland wl_display", + "page": "vkspec" }, { "vuid": "VUID-VkWaylandSurfaceCreateInfoKHR-surface-01305", - "text": " surface must point to a valid Wayland wl_surface" + "text": "surface must point to a valid Wayland wl_surface", + "page": "vkspec" }, { "vuid": "VUID-VkWaylandSurfaceCreateInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkWaylandSurfaceCreateInfoKHR-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkWaylandSurfaceCreateInfoKHR-flags-zerobitmask", - "text": " flags must be 0" + "text": "flags must be 0", + "page": "vkspec" } ] }, @@ -61446,19 +79689,23 @@ "core": [ { "vuid": "VUID-vkCreateWin32SurfaceKHR-instance-parameter", - "text": " instance must be a valid VkInstance handle" + "text": "instance must be a valid VkInstance handle", + "page": "vkspec" }, { "vuid": "VUID-vkCreateWin32SurfaceKHR-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkWin32SurfaceCreateInfoKHR structure" + "text": "pCreateInfo must be a valid pointer to a valid VkWin32SurfaceCreateInfoKHR structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateWin32SurfaceKHR-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateWin32SurfaceKHR-pSurface-parameter", - "text": " pSurface must be a valid pointer to a VkSurfaceKHR handle" + "text": "pSurface must be a valid pointer to a VkSurfaceKHR handle", + "page": "vkspec" } ] }, @@ -61466,23 +79713,28 @@ "core": [ { "vuid": "VUID-VkWin32SurfaceCreateInfoKHR-hinstance-01307", - "text": " hinstance must be a valid Win32 HINSTANCE" + "text": "hinstance must be a valid Win32 HINSTANCE", + "page": "vkspec" }, { "vuid": "VUID-VkWin32SurfaceCreateInfoKHR-hwnd-01308", - "text": " hwnd must be a valid Win32 HWND" + "text": "hwnd must be a valid Win32 HWND", + "page": "vkspec" }, { "vuid": "VUID-VkWin32SurfaceCreateInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkWin32SurfaceCreateInfoKHR-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkWin32SurfaceCreateInfoKHR-flags-zerobitmask", - "text": " flags must be 0" + "text": "flags must be 0", + "page": "vkspec" } ] }, @@ -61490,19 +79742,23 @@ "core": [ { "vuid": "VUID-vkCreateXcbSurfaceKHR-instance-parameter", - "text": " instance must be a valid VkInstance handle" + "text": "instance must be a valid VkInstance handle", + "page": "vkspec" }, { "vuid": "VUID-vkCreateXcbSurfaceKHR-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkXcbSurfaceCreateInfoKHR structure" + "text": "pCreateInfo must be a valid pointer to a valid VkXcbSurfaceCreateInfoKHR structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateXcbSurfaceKHR-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateXcbSurfaceKHR-pSurface-parameter", - "text": " pSurface must be a valid pointer to a VkSurfaceKHR handle" + "text": "pSurface must be a valid pointer to a VkSurfaceKHR handle", + "page": "vkspec" } ] }, @@ -61510,23 +79766,28 @@ "core": [ { "vuid": "VUID-VkXcbSurfaceCreateInfoKHR-connection-01310", - "text": " connection must point to a valid X11 xcb_connection_t" + "text": "connection must point to a valid X11 xcb_connection_t", + "page": "vkspec" }, { "vuid": "VUID-VkXcbSurfaceCreateInfoKHR-window-01311", - "text": " window must be a valid X11 xcb_window_t" + "text": "window must be a valid X11 xcb_window_t", + "page": "vkspec" }, { "vuid": "VUID-VkXcbSurfaceCreateInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkXcbSurfaceCreateInfoKHR-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkXcbSurfaceCreateInfoKHR-flags-zerobitmask", - "text": " flags must be 0" + "text": "flags must be 0", + "page": "vkspec" } ] }, @@ -61534,19 +79795,23 @@ "core": [ { "vuid": "VUID-vkCreateXlibSurfaceKHR-instance-parameter", - "text": " instance must be a valid VkInstance handle" + "text": "instance must be a valid VkInstance handle", + "page": "vkspec" }, { "vuid": "VUID-vkCreateXlibSurfaceKHR-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkXlibSurfaceCreateInfoKHR structure" + "text": "pCreateInfo must be a valid pointer to a valid VkXlibSurfaceCreateInfoKHR structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateXlibSurfaceKHR-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateXlibSurfaceKHR-pSurface-parameter", - "text": " pSurface must be a valid pointer to a VkSurfaceKHR handle" + "text": "pSurface must be a valid pointer to a VkSurfaceKHR handle", + "page": "vkspec" } ] }, @@ -61554,23 +79819,28 @@ "core": [ { "vuid": "VUID-VkXlibSurfaceCreateInfoKHR-dpy-01313", - "text": " dpy must point to a valid Xlib Display" + "text": "dpy must point to a valid Xlib Display", + "page": "vkspec" }, { "vuid": "VUID-VkXlibSurfaceCreateInfoKHR-window-01314", - "text": " window must be a valid Xlib Window" + "text": "window must be a valid Xlib Window", + "page": "vkspec" }, { "vuid": "VUID-VkXlibSurfaceCreateInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkXlibSurfaceCreateInfoKHR-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkXlibSurfaceCreateInfoKHR-flags-zerobitmask", - "text": " flags must be 0" + "text": "flags must be 0", + "page": "vkspec" } ] }, @@ -61578,19 +79848,23 @@ "core": [ { "vuid": "VUID-vkCreateDirectFBSurfaceEXT-instance-parameter", - "text": " instance must be a valid VkInstance handle" + "text": "instance must be a valid VkInstance handle", + "page": "vkspec" }, { "vuid": "VUID-vkCreateDirectFBSurfaceEXT-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkDirectFBSurfaceCreateInfoEXT structure" + "text": "pCreateInfo must be a valid pointer to a valid VkDirectFBSurfaceCreateInfoEXT structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateDirectFBSurfaceEXT-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateDirectFBSurfaceEXT-pSurface-parameter", - "text": " pSurface must be a valid pointer to a VkSurfaceKHR handle" + "text": "pSurface must be a valid pointer to a VkSurfaceKHR handle", + "page": "vkspec" } ] }, @@ -61598,23 +79872,28 @@ "core": [ { "vuid": "VUID-VkDirectFBSurfaceCreateInfoEXT-dfb-04117", - "text": " dfb must point to a valid DirectFB IDirectFB" + "text": "dfb must point to a valid DirectFB IDirectFB", + "page": "vkspec" }, { "vuid": "VUID-VkDirectFBSurfaceCreateInfoEXT-surface-04118", - "text": " surface must point to a valid DirectFB IDirectFBSurface" + "text": "surface must point to a valid DirectFB IDirectFBSurface", + "page": "vkspec" }, { "vuid": "VUID-VkDirectFBSurfaceCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkDirectFBSurfaceCreateInfoEXT-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkDirectFBSurfaceCreateInfoEXT-flags-zerobitmask", - "text": " flags must be 0" + "text": "flags must be 0", + "page": "vkspec" } ] }, @@ -61622,19 +79901,23 @@ "core": [ { "vuid": "VUID-vkCreateImagePipeSurfaceFUCHSIA-instance-parameter", - "text": " instance must be a valid VkInstance handle" + "text": "instance must be a valid VkInstance handle", + "page": "vkspec" }, { "vuid": "VUID-vkCreateImagePipeSurfaceFUCHSIA-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkImagePipeSurfaceCreateInfoFUCHSIA structure" + "text": "pCreateInfo must be a valid pointer to a valid VkImagePipeSurfaceCreateInfoFUCHSIA structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateImagePipeSurfaceFUCHSIA-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateImagePipeSurfaceFUCHSIA-pSurface-parameter", - "text": " pSurface must be a valid pointer to a VkSurfaceKHR handle" + "text": "pSurface must be a valid pointer to a VkSurfaceKHR handle", + "page": "vkspec" } ] }, @@ -61642,19 +79925,23 @@ "core": [ { "vuid": "VUID-VkImagePipeSurfaceCreateInfoFUCHSIA-imagePipeHandle-04863", - "text": " imagePipeHandle must be a valid zx_handle_t" + "text": "imagePipeHandle must be a valid zx_handle_t", + "page": "vkspec" }, { "vuid": "VUID-VkImagePipeSurfaceCreateInfoFUCHSIA-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA" + "text": "sType must be VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA", + "page": "vkspec" }, { "vuid": "VUID-VkImagePipeSurfaceCreateInfoFUCHSIA-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkImagePipeSurfaceCreateInfoFUCHSIA-flags-zerobitmask", - "text": " flags must be 0" + "text": "flags must be 0", + "page": "vkspec" } ] }, @@ -61662,19 +79949,23 @@ "core": [ { "vuid": "VUID-vkCreateStreamDescriptorSurfaceGGP-instance-parameter", - "text": " instance must be a valid VkInstance handle" + "text": "instance must be a valid VkInstance handle", + "page": "vkspec" }, { "vuid": "VUID-vkCreateStreamDescriptorSurfaceGGP-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkStreamDescriptorSurfaceCreateInfoGGP structure" + "text": "pCreateInfo must be a valid pointer to a valid VkStreamDescriptorSurfaceCreateInfoGGP structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateStreamDescriptorSurfaceGGP-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateStreamDescriptorSurfaceGGP-pSurface-parameter", - "text": " pSurface must be a valid pointer to a VkSurfaceKHR handle" + "text": "pSurface must be a valid pointer to a VkSurfaceKHR handle", + "page": "vkspec" } ] }, @@ -61682,19 +79973,23 @@ "core": [ { "vuid": "VUID-VkStreamDescriptorSurfaceCreateInfoGGP-streamDescriptor-02681", - "text": " streamDescriptor must be a valid GgpStreamDescriptor" + "text": "streamDescriptor must be a valid GgpStreamDescriptor", + "page": "vkspec" }, { "vuid": "VUID-VkStreamDescriptorSurfaceCreateInfoGGP-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP" + "text": "sType must be VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP", + "page": "vkspec" }, { "vuid": "VUID-VkStreamDescriptorSurfaceCreateInfoGGP-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkStreamDescriptorSurfaceCreateInfoGGP-flags-zerobitmask", - "text": " flags must be 0" + "text": "flags must be 0", + "page": "vkspec" } ] }, @@ -61702,19 +79997,23 @@ "core": [ { "vuid": "VUID-vkCreateIOSSurfaceMVK-instance-parameter", - "text": " instance must be a valid VkInstance handle" + "text": "instance must be a valid VkInstance handle", + "page": "vkspec" }, { "vuid": "VUID-vkCreateIOSSurfaceMVK-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkIOSSurfaceCreateInfoMVK structure" + "text": "pCreateInfo must be a valid pointer to a valid VkIOSSurfaceCreateInfoMVK structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateIOSSurfaceMVK-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateIOSSurfaceMVK-pSurface-parameter", - "text": " pSurface must be a valid pointer to a VkSurfaceKHR handle" + "text": "pSurface must be a valid pointer to a VkSurfaceKHR handle", + "page": "vkspec" } ] }, @@ -61722,23 +80021,28 @@ "core": [ { "vuid": "VUID-VkIOSSurfaceCreateInfoMVK-pView-04143", - "text": " If pView is a CAMetalLayer object, it must be a valid CAMetalLayer" + "text": "If pView is a CAMetalLayer object, it must be a valid CAMetalLayer", + "page": "vkspec" }, { "vuid": "VUID-VkIOSSurfaceCreateInfoMVK-pView-01316", - "text": " If pView is a UIView object, it must be a valid UIView, must be backed by a CALayer object of type CAMetalLayer, and vkCreateIOSSurfaceMVK must be called on the main thread" + "text": "If pView is a UIView object, it must be a valid UIView, must be backed by a CALayer object of type CAMetalLayer, and vkCreateIOSSurfaceMVK must be called on the main thread", + "page": "vkspec" }, { "vuid": "VUID-VkIOSSurfaceCreateInfoMVK-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK" + "text": "sType must be VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK", + "page": "vkspec" }, { "vuid": "VUID-VkIOSSurfaceCreateInfoMVK-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkIOSSurfaceCreateInfoMVK-flags-zerobitmask", - "text": " flags must be 0" + "text": "flags must be 0", + "page": "vkspec" } ] }, @@ -61746,19 +80050,23 @@ "core": [ { "vuid": "VUID-vkCreateMacOSSurfaceMVK-instance-parameter", - "text": " instance must be a valid VkInstance handle" + "text": "instance must be a valid VkInstance handle", + "page": "vkspec" }, { "vuid": "VUID-vkCreateMacOSSurfaceMVK-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkMacOSSurfaceCreateInfoMVK structure" + "text": "pCreateInfo must be a valid pointer to a valid VkMacOSSurfaceCreateInfoMVK structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateMacOSSurfaceMVK-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateMacOSSurfaceMVK-pSurface-parameter", - "text": " pSurface must be a valid pointer to a VkSurfaceKHR handle" + "text": "pSurface must be a valid pointer to a VkSurfaceKHR handle", + "page": "vkspec" } ] }, @@ -61766,23 +80074,28 @@ "core": [ { "vuid": "VUID-VkMacOSSurfaceCreateInfoMVK-pView-04144", - "text": " If pView is a CAMetalLayer object, it must be a valid CAMetalLayer" + "text": "If pView is a CAMetalLayer object, it must be a valid CAMetalLayer", + "page": "vkspec" }, { "vuid": "VUID-VkMacOSSurfaceCreateInfoMVK-pView-01317", - "text": " If pView is an NSView object, it must be a valid NSView, must be backed by a CALayer object of type CAMetalLayer, and vkCreateMacOSSurfaceMVK must be called on the main thread" + "text": "If pView is an NSView object, it must be a valid NSView, must be backed by a CALayer object of type CAMetalLayer, and vkCreateMacOSSurfaceMVK must be called on the main thread", + "page": "vkspec" }, { "vuid": "VUID-VkMacOSSurfaceCreateInfoMVK-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK" + "text": "sType must be VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK", + "page": "vkspec" }, { "vuid": "VUID-VkMacOSSurfaceCreateInfoMVK-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkMacOSSurfaceCreateInfoMVK-flags-zerobitmask", - "text": " flags must be 0" + "text": "flags must be 0", + "page": "vkspec" } ] }, @@ -61790,19 +80103,23 @@ "core": [ { "vuid": "VUID-vkCreateViSurfaceNN-instance-parameter", - "text": " instance must be a valid VkInstance handle" + "text": "instance must be a valid VkInstance handle", + "page": "vkspec" }, { "vuid": "VUID-vkCreateViSurfaceNN-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkViSurfaceCreateInfoNN structure" + "text": "pCreateInfo must be a valid pointer to a valid VkViSurfaceCreateInfoNN structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateViSurfaceNN-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateViSurfaceNN-pSurface-parameter", - "text": " pSurface must be a valid pointer to a VkSurfaceKHR handle" + "text": "pSurface must be a valid pointer to a VkSurfaceKHR handle", + "page": "vkspec" } ] }, @@ -61810,19 +80127,23 @@ "core": [ { "vuid": "VUID-VkViSurfaceCreateInfoNN-window-01318", - "text": " window must be a valid nn::vi::NativeWindowHandle" + "text": "window must be a valid nn::vi::NativeWindowHandle", + "page": "vkspec" }, { "vuid": "VUID-VkViSurfaceCreateInfoNN-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN" + "text": "sType must be VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN", + "page": "vkspec" }, { "vuid": "VUID-VkViSurfaceCreateInfoNN-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkViSurfaceCreateInfoNN-flags-zerobitmask", - "text": " flags must be 0" + "text": "flags must be 0", + "page": "vkspec" } ] }, @@ -61830,19 +80151,23 @@ "core": [ { "vuid": "VUID-vkCreateMetalSurfaceEXT-instance-parameter", - "text": " instance must be a valid VkInstance handle" + "text": "instance must be a valid VkInstance handle", + "page": "vkspec" }, { "vuid": "VUID-vkCreateMetalSurfaceEXT-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkMetalSurfaceCreateInfoEXT structure" + "text": "pCreateInfo must be a valid pointer to a valid VkMetalSurfaceCreateInfoEXT structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateMetalSurfaceEXT-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateMetalSurfaceEXT-pSurface-parameter", - "text": " pSurface must be a valid pointer to a VkSurfaceKHR handle" + "text": "pSurface must be a valid pointer to a VkSurfaceKHR handle", + "page": "vkspec" } ] }, @@ -61850,15 +80175,18 @@ "core": [ { "vuid": "VUID-VkMetalSurfaceCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkMetalSurfaceCreateInfoEXT-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkMetalSurfaceCreateInfoEXT-flags-zerobitmask", - "text": " flags must be 0" + "text": "flags must be 0", + "page": "vkspec" } ] }, @@ -61866,19 +80194,23 @@ "core": [ { "vuid": "VUID-vkCreateScreenSurfaceQNX-instance-parameter", - "text": " instance must be a valid VkInstance handle" + "text": "instance must be a valid VkInstance handle", + "page": "vkspec" }, { "vuid": "VUID-vkCreateScreenSurfaceQNX-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkScreenSurfaceCreateInfoQNX structure" + "text": "pCreateInfo must be a valid pointer to a valid VkScreenSurfaceCreateInfoQNX structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateScreenSurfaceQNX-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateScreenSurfaceQNX-pSurface-parameter", - "text": " pSurface must be a valid pointer to a VkSurfaceKHR handle" + "text": "pSurface must be a valid pointer to a VkSurfaceKHR handle", + "page": "vkspec" } ] }, @@ -61886,23 +80218,28 @@ "core": [ { "vuid": "VUID-VkScreenSurfaceCreateInfoQNX-context-04741", - "text": " context must point to a valid QNX Screen struct _screen_context" + "text": "context must point to a valid QNX Screen struct _screen_context", + "page": "vkspec" }, { "vuid": "VUID-VkScreenSurfaceCreateInfoQNX-window-04742", - "text": " window must point to a valid QNX Screen struct _screen_window" + "text": "window must point to a valid QNX Screen struct _screen_window", + "page": "vkspec" }, { "vuid": "VUID-VkScreenSurfaceCreateInfoQNX-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX" + "text": "sType must be VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX", + "page": "vkspec" }, { "vuid": "VUID-VkScreenSurfaceCreateInfoQNX-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkScreenSurfaceCreateInfoQNX-flags-zerobitmask", - "text": " flags must be 0" + "text": "flags must be 0", + "page": "vkspec" } ] }, @@ -61910,31 +80247,38 @@ "core": [ { "vuid": "VUID-vkDestroySurfaceKHR-surface-01266", - "text": " All VkSwapchainKHR objects created for surface must have been destroyed prior to destroying surface" + "text": "All VkSwapchainKHR objects created for surface must have been destroyed prior to destroying surface", + "page": "vkspec" }, { "vuid": "VUID-vkDestroySurfaceKHR-surface-01267", - "text": " If VkAllocationCallbacks were provided when surface was created, a compatible set of callbacks must be provided here" + "text": "If VkAllocationCallbacks were provided when surface was created, a compatible set of callbacks must be provided here", + "page": "vkspec" }, { "vuid": "VUID-vkDestroySurfaceKHR-surface-01268", - "text": " If no VkAllocationCallbacks were provided when surface was created, pAllocator must be NULL" + "text": "If no VkAllocationCallbacks were provided when surface was created, pAllocator must be NULL", + "page": "vkspec" }, { "vuid": "VUID-vkDestroySurfaceKHR-instance-parameter", - "text": " instance must be a valid VkInstance handle" + "text": "instance must be a valid VkInstance handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroySurfaceKHR-surface-parameter", - "text": " If surface is not VK_NULL_HANDLE, surface must be a valid VkSurfaceKHR handle" + "text": "If surface is not VK_NULL_HANDLE, surface must be a valid VkSurfaceKHR handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroySurfaceKHR-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkDestroySurfaceKHR-surface-parent", - "text": " If surface is a valid handle, it must have been created, allocated, or retrieved from instance" + "text": "If surface is a valid handle, it must have been created, allocated, or retrieved from instance", + "page": "vkspec" } ] }, @@ -61942,15 +80286,18 @@ "core": [ { "vuid": "VUID-vkGetPhysicalDeviceDisplayPropertiesKHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": "physicalDevice must be a valid VkPhysicalDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceDisplayPropertiesKHR-pPropertyCount-parameter", - "text": " pPropertyCount must be a valid pointer to a uint32_t value" + "text": "pPropertyCount must be a valid pointer to a uint32_t value", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceDisplayPropertiesKHR-pProperties-parameter", - "text": " If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkDisplayPropertiesKHR structures" + "text": "If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkDisplayPropertiesKHR structures", + "page": "vkspec" } ] }, @@ -61958,15 +80305,18 @@ "core": [ { "vuid": "VUID-vkGetPhysicalDeviceDisplayProperties2KHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": "physicalDevice must be a valid VkPhysicalDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceDisplayProperties2KHR-pPropertyCount-parameter", - "text": " pPropertyCount must be a valid pointer to a uint32_t value" + "text": "pPropertyCount must be a valid pointer to a uint32_t value", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceDisplayProperties2KHR-pProperties-parameter", - "text": " If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkDisplayProperties2KHR structures" + "text": "If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkDisplayProperties2KHR structures", + "page": "vkspec" } ] }, @@ -61974,11 +80324,13 @@ "core": [ { "vuid": "VUID-VkDisplayProperties2KHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkDisplayProperties2KHR-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" } ] }, @@ -61986,19 +80338,23 @@ "core": [ { "vuid": "VUID-vkAcquireXlibDisplayEXT-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": "physicalDevice must be a valid VkPhysicalDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkAcquireXlibDisplayEXT-dpy-parameter", - "text": " dpy must be a valid pointer to a Display value" + "text": "dpy must be a valid pointer to a Display value", + "page": "vkspec" }, { "vuid": "VUID-vkAcquireXlibDisplayEXT-display-parameter", - "text": " display must be a valid VkDisplayKHR handle" + "text": "display must be a valid VkDisplayKHR handle", + "page": "vkspec" }, { "vuid": "VUID-vkAcquireXlibDisplayEXT-display-parent", - "text": " display must have been created, allocated, or retrieved from physicalDevice" + "text": "display must have been created, allocated, or retrieved from physicalDevice", + "page": "vkspec" } ] }, @@ -62006,15 +80362,18 @@ "core": [ { "vuid": "VUID-vkGetRandROutputDisplayEXT-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": "physicalDevice must be a valid VkPhysicalDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetRandROutputDisplayEXT-dpy-parameter", - "text": " dpy must be a valid pointer to a Display value" + "text": "dpy must be a valid pointer to a Display value", + "page": "vkspec" }, { "vuid": "VUID-vkGetRandROutputDisplayEXT-pDisplay-parameter", - "text": " pDisplay must be a valid pointer to a VkDisplayKHR handle" + "text": "pDisplay must be a valid pointer to a VkDisplayKHR handle", + "page": "vkspec" } ] }, @@ -62022,15 +80381,18 @@ "core": [ { "vuid": "VUID-vkAcquireWinrtDisplayNV-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": "physicalDevice must be a valid VkPhysicalDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkAcquireWinrtDisplayNV-display-parameter", - "text": " display must be a valid VkDisplayKHR handle" + "text": "display must be a valid VkDisplayKHR handle", + "page": "vkspec" }, { "vuid": "VUID-vkAcquireWinrtDisplayNV-display-parent", - "text": " display must have been created, allocated, or retrieved from physicalDevice" + "text": "display must have been created, allocated, or retrieved from physicalDevice", + "page": "vkspec" } ] }, @@ -62038,11 +80400,13 @@ "core": [ { "vuid": "VUID-vkGetWinrtDisplayNV-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": "physicalDevice must be a valid VkPhysicalDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetWinrtDisplayNV-pDisplay-parameter", - "text": " pDisplay must be a valid pointer to a VkDisplayKHR handle" + "text": "pDisplay must be a valid pointer to a VkDisplayKHR handle", + "page": "vkspec" } ] }, @@ -62050,15 +80414,18 @@ "core": [ { "vuid": "VUID-vkAcquireDrmDisplayEXT-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": "physicalDevice must be a valid VkPhysicalDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkAcquireDrmDisplayEXT-display-parameter", - "text": " display must be a valid VkDisplayKHR handle" + "text": "display must be a valid VkDisplayKHR handle", + "page": "vkspec" }, { "vuid": "VUID-vkAcquireDrmDisplayEXT-display-parent", - "text": " display must have been created, allocated, or retrieved from physicalDevice" + "text": "display must have been created, allocated, or retrieved from physicalDevice", + "page": "vkspec" } ] }, @@ -62066,11 +80433,13 @@ "core": [ { "vuid": "VUID-vkGetDrmDisplayEXT-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": "physicalDevice must be a valid VkPhysicalDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetDrmDisplayEXT-display-parameter", - "text": " display must be a valid pointer to a VkDisplayKHR handle" + "text": "display must be a valid pointer to a VkDisplayKHR handle", + "page": "vkspec" } ] }, @@ -62078,15 +80447,18 @@ "core": [ { "vuid": "VUID-vkReleaseDisplayEXT-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": "physicalDevice must be a valid VkPhysicalDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkReleaseDisplayEXT-display-parameter", - "text": " display must be a valid VkDisplayKHR handle" + "text": "display must be a valid VkDisplayKHR handle", + "page": "vkspec" }, { "vuid": "VUID-vkReleaseDisplayEXT-display-parent", - "text": " display must have been created, allocated, or retrieved from physicalDevice" + "text": "display must have been created, allocated, or retrieved from physicalDevice", + "page": "vkspec" } ] }, @@ -62094,15 +80466,18 @@ "core": [ { "vuid": "VUID-vkGetPhysicalDeviceDisplayPlanePropertiesKHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": "physicalDevice must be a valid VkPhysicalDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceDisplayPlanePropertiesKHR-pPropertyCount-parameter", - "text": " pPropertyCount must be a valid pointer to a uint32_t value" + "text": "pPropertyCount must be a valid pointer to a uint32_t value", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceDisplayPlanePropertiesKHR-pProperties-parameter", - "text": " If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkDisplayPlanePropertiesKHR structures" + "text": "If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkDisplayPlanePropertiesKHR structures", + "page": "vkspec" } ] }, @@ -62110,15 +80485,18 @@ "core": [ { "vuid": "VUID-vkGetPhysicalDeviceDisplayPlaneProperties2KHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": "physicalDevice must be a valid VkPhysicalDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceDisplayPlaneProperties2KHR-pPropertyCount-parameter", - "text": " pPropertyCount must be a valid pointer to a uint32_t value" + "text": "pPropertyCount must be a valid pointer to a uint32_t value", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceDisplayPlaneProperties2KHR-pProperties-parameter", - "text": " If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkDisplayPlaneProperties2KHR structures" + "text": "If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkDisplayPlaneProperties2KHR structures", + "page": "vkspec" } ] }, @@ -62126,11 +80504,13 @@ "core": [ { "vuid": "VUID-VkDisplayPlaneProperties2KHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkDisplayPlaneProperties2KHR-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" } ] }, @@ -62138,19 +80518,23 @@ "core": [ { "vuid": "VUID-vkGetDisplayPlaneSupportedDisplaysKHR-planeIndex-01249", - "text": " planeIndex must be less than the number of display planes supported by the device as determined by calling vkGetPhysicalDeviceDisplayPlanePropertiesKHR" + "text": "planeIndex must be less than the number of display planes supported by the device as determined by calling vkGetPhysicalDeviceDisplayPlanePropertiesKHR", + "page": "vkspec" }, { "vuid": "VUID-vkGetDisplayPlaneSupportedDisplaysKHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": "physicalDevice must be a valid VkPhysicalDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetDisplayPlaneSupportedDisplaysKHR-pDisplayCount-parameter", - "text": " pDisplayCount must be a valid pointer to a uint32_t value" + "text": "pDisplayCount must be a valid pointer to a uint32_t value", + "page": "vkspec" }, { "vuid": "VUID-vkGetDisplayPlaneSupportedDisplaysKHR-pDisplays-parameter", - "text": " If the value referenced by pDisplayCount is not 0, and pDisplays is not NULL, pDisplays must be a valid pointer to an array of pDisplayCount VkDisplayKHR handles" + "text": "If the value referenced by pDisplayCount is not 0, and pDisplays is not NULL, pDisplays must be a valid pointer to an array of pDisplayCount VkDisplayKHR handles", + "page": "vkspec" } ] }, @@ -62158,23 +80542,28 @@ "core": [ { "vuid": "VUID-vkGetDisplayModePropertiesKHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": "physicalDevice must be a valid VkPhysicalDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetDisplayModePropertiesKHR-display-parameter", - "text": " display must be a valid VkDisplayKHR handle" + "text": "display must be a valid VkDisplayKHR handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetDisplayModePropertiesKHR-pPropertyCount-parameter", - "text": " pPropertyCount must be a valid pointer to a uint32_t value" + "text": "pPropertyCount must be a valid pointer to a uint32_t value", + "page": "vkspec" }, { "vuid": "VUID-vkGetDisplayModePropertiesKHR-pProperties-parameter", - "text": " If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkDisplayModePropertiesKHR structures" + "text": "If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkDisplayModePropertiesKHR structures", + "page": "vkspec" }, { "vuid": "VUID-vkGetDisplayModePropertiesKHR-display-parent", - "text": " display must have been created, allocated, or retrieved from physicalDevice" + "text": "display must have been created, allocated, or retrieved from physicalDevice", + "page": "vkspec" } ] }, @@ -62182,23 +80571,28 @@ "core": [ { "vuid": "VUID-vkGetDisplayModeProperties2KHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": "physicalDevice must be a valid VkPhysicalDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetDisplayModeProperties2KHR-display-parameter", - "text": " display must be a valid VkDisplayKHR handle" + "text": "display must be a valid VkDisplayKHR handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetDisplayModeProperties2KHR-pPropertyCount-parameter", - "text": " pPropertyCount must be a valid pointer to a uint32_t value" + "text": "pPropertyCount must be a valid pointer to a uint32_t value", + "page": "vkspec" }, { "vuid": "VUID-vkGetDisplayModeProperties2KHR-pProperties-parameter", - "text": " If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkDisplayModeProperties2KHR structures" + "text": "If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkDisplayModeProperties2KHR structures", + "page": "vkspec" }, { "vuid": "VUID-vkGetDisplayModeProperties2KHR-display-parent", - "text": " display must have been created, allocated, or retrieved from physicalDevice" + "text": "display must have been created, allocated, or retrieved from physicalDevice", + "page": "vkspec" } ] }, @@ -62206,11 +80600,13 @@ "core": [ { "vuid": "VUID-VkDisplayModeProperties2KHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkDisplayModeProperties2KHR-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" } ] }, @@ -62218,15 +80614,18 @@ "core": [ { "vuid": "VUID-VkDisplayModeParametersKHR-width-01990", - "text": " The width member of visibleRegion must be greater than 0" + "text": "The width member of visibleRegion must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-VkDisplayModeParametersKHR-height-01991", - "text": " The height member of visibleRegion must be greater than 0" + "text": "The height member of visibleRegion must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-VkDisplayModeParametersKHR-refreshRate-01992", - "text": " refreshRate must be greater than 0" + "text": "refreshRate must be greater than 0", + "page": "vkspec" } ] }, @@ -62234,27 +80633,33 @@ "core": [ { "vuid": "VUID-vkCreateDisplayModeKHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": "physicalDevice must be a valid VkPhysicalDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkCreateDisplayModeKHR-display-parameter", - "text": " display must be a valid VkDisplayKHR handle" + "text": "display must be a valid VkDisplayKHR handle", + "page": "vkspec" }, { "vuid": "VUID-vkCreateDisplayModeKHR-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkDisplayModeCreateInfoKHR structure" + "text": "pCreateInfo must be a valid pointer to a valid VkDisplayModeCreateInfoKHR structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateDisplayModeKHR-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateDisplayModeKHR-pMode-parameter", - "text": " pMode must be a valid pointer to a VkDisplayModeKHR handle" + "text": "pMode must be a valid pointer to a VkDisplayModeKHR handle", + "page": "vkspec" }, { "vuid": "VUID-vkCreateDisplayModeKHR-display-parent", - "text": " display must have been created, allocated, or retrieved from physicalDevice" + "text": "display must have been created, allocated, or retrieved from physicalDevice", + "page": "vkspec" } ] }, @@ -62262,19 +80667,23 @@ "core": [ { "vuid": "VUID-VkDisplayModeCreateInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkDisplayModeCreateInfoKHR-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkDisplayModeCreateInfoKHR-flags-zerobitmask", - "text": " flags must be 0" + "text": "flags must be 0", + "page": "vkspec" }, { "vuid": "VUID-VkDisplayModeCreateInfoKHR-parameters-parameter", - "text": " parameters must be a valid VkDisplayModeParametersKHR structure" + "text": "parameters must be a valid VkDisplayModeParametersKHR structure", + "page": "vkspec" } ] }, @@ -62282,15 +80691,23 @@ "core": [ { "vuid": "VUID-vkGetDisplayPlaneCapabilitiesKHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": "physicalDevice must be a valid VkPhysicalDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetDisplayPlaneCapabilitiesKHR-mode-parameter", - "text": " mode must be a valid VkDisplayModeKHR handle" + "text": "mode must be a valid VkDisplayModeKHR handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetDisplayPlaneCapabilitiesKHR-pCapabilities-parameter", - "text": " pCapabilities must be a valid pointer to a VkDisplayPlaneCapabilitiesKHR structure" + "text": "pCapabilities must be a valid pointer to a VkDisplayPlaneCapabilitiesKHR structure", + "page": "vkspec" + }, + { + "vuid": "VUID-vkGetDisplayPlaneCapabilitiesKHR-mode-parent", + "text": "mode must have been created, allocated, or retrieved from physicalDevice", + "page": "vkspec" } ] }, @@ -62298,15 +80715,18 @@ "core": [ { "vuid": "VUID-vkGetDisplayPlaneCapabilities2KHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": "physicalDevice must be a valid VkPhysicalDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetDisplayPlaneCapabilities2KHR-pDisplayPlaneInfo-parameter", - "text": " pDisplayPlaneInfo must be a valid pointer to a valid VkDisplayPlaneInfo2KHR structure" + "text": "pDisplayPlaneInfo must be a valid pointer to a valid VkDisplayPlaneInfo2KHR structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetDisplayPlaneCapabilities2KHR-pCapabilities-parameter", - "text": " pCapabilities must be a valid pointer to a VkDisplayPlaneCapabilities2KHR structure" + "text": "pCapabilities must be a valid pointer to a VkDisplayPlaneCapabilities2KHR structure", + "page": "vkspec" } ] }, @@ -62314,15 +80734,18 @@ "core": [ { "vuid": "VUID-VkDisplayPlaneInfo2KHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkDisplayPlaneInfo2KHR-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkDisplayPlaneInfo2KHR-mode-parameter", - "text": " mode must be a valid VkDisplayModeKHR handle" + "text": "mode must be a valid VkDisplayModeKHR handle", + "page": "vkspec" } ] }, @@ -62330,11 +80753,13 @@ "core": [ { "vuid": "VUID-VkDisplayPlaneCapabilities2KHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkDisplayPlaneCapabilities2KHR-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" } ] }, @@ -62342,19 +80767,23 @@ "core": [ { "vuid": "VUID-vkDisplayPowerControlEXT-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkDisplayPowerControlEXT-display-parameter", - "text": " display must be a valid VkDisplayKHR handle" + "text": "display must be a valid VkDisplayKHR handle", + "page": "vkspec" }, { "vuid": "VUID-vkDisplayPowerControlEXT-pDisplayPowerInfo-parameter", - "text": " pDisplayPowerInfo must be a valid pointer to a valid VkDisplayPowerInfoEXT structure" + "text": "pDisplayPowerInfo must be a valid pointer to a valid VkDisplayPowerInfoEXT structure", + "page": "vkspec" }, { "vuid": "VUID-vkDisplayPowerControlEXT-commonparent", - "text": " Both of device, and display must have been created, allocated, or retrieved from the same VkPhysicalDevice" + "text": "Both of device, and display must have been created, allocated, or retrieved from the same VkPhysicalDevice", + "page": "vkspec" } ] }, @@ -62362,15 +80791,18 @@ "core": [ { "vuid": "VUID-VkDisplayPowerInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkDisplayPowerInfoEXT-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkDisplayPowerInfoEXT-powerState-parameter", - "text": " powerState must be a valid VkDisplayPowerStateEXT value" + "text": "powerState must be a valid VkDisplayPowerStateEXT value", + "page": "vkspec" } ] }, @@ -62378,19 +80810,23 @@ "core": [ { "vuid": "VUID-vkCreateDisplayPlaneSurfaceKHR-instance-parameter", - "text": " instance must be a valid VkInstance handle" + "text": "instance must be a valid VkInstance handle", + "page": "vkspec" }, { "vuid": "VUID-vkCreateDisplayPlaneSurfaceKHR-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkDisplaySurfaceCreateInfoKHR structure" + "text": "pCreateInfo must be a valid pointer to a valid VkDisplaySurfaceCreateInfoKHR structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateDisplayPlaneSurfaceKHR-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateDisplayPlaneSurfaceKHR-pSurface-parameter", - "text": " pSurface must be a valid pointer to a VkSurfaceKHR handle" + "text": "pSurface must be a valid pointer to a VkSurfaceKHR handle", + "page": "vkspec" } ] }, @@ -62398,51 +80834,63 @@ "core": [ { "vuid": "VUID-VkDisplaySurfaceCreateInfoKHR-planeIndex-01252", - "text": " planeIndex must be less than the number of display planes supported by the device as determined by calling vkGetPhysicalDeviceDisplayPlanePropertiesKHR" + "text": "planeIndex must be less than the number of display planes supported by the device as determined by calling vkGetPhysicalDeviceDisplayPlanePropertiesKHR", + "page": "vkspec" }, { "vuid": "VUID-VkDisplaySurfaceCreateInfoKHR-planeReorderPossible-01253", - "text": " If the planeReorderPossible member of the VkDisplayPropertiesKHR structure returned by vkGetPhysicalDeviceDisplayPropertiesKHR for the display corresponding to displayMode is VK_TRUE then planeStackIndex must be less than the number of display planes supported by the device as determined by calling vkGetPhysicalDeviceDisplayPlanePropertiesKHR; otherwise planeStackIndex must equal the currentStackIndex member of VkDisplayPlanePropertiesKHR returned by vkGetPhysicalDeviceDisplayPlanePropertiesKHR for the display plane corresponding to displayMode" + "text": "If the planeReorderPossible member of the VkDisplayPropertiesKHR structure returned by vkGetPhysicalDeviceDisplayPropertiesKHR for the display corresponding to displayMode is VK_TRUE then planeStackIndex must be less than the number of display planes supported by the device as determined by calling vkGetPhysicalDeviceDisplayPlanePropertiesKHR; otherwise planeStackIndex must equal the currentStackIndex member of VkDisplayPlanePropertiesKHR returned by vkGetPhysicalDeviceDisplayPlanePropertiesKHR for the display plane corresponding to displayMode", + "page": "vkspec" }, { "vuid": "VUID-VkDisplaySurfaceCreateInfoKHR-alphaMode-01254", - "text": " If alphaMode is VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR then globalAlpha must be between 0 and 1, inclusive" + "text": "If alphaMode is VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR then globalAlpha must be between 0 and 1, inclusive", + "page": "vkspec" }, { "vuid": "VUID-VkDisplaySurfaceCreateInfoKHR-alphaMode-01255", - "text": " alphaMode must be one of the bits present in the supportedAlpha member of VkDisplayPlaneCapabilitiesKHR for the display plane corresponding to displayMode" + "text": "alphaMode must be one of the bits present in the supportedAlpha member of VkDisplayPlaneCapabilitiesKHR for the display plane corresponding to displayMode", + "page": "vkspec" }, { "vuid": "VUID-VkDisplaySurfaceCreateInfoKHR-transform-06740", - "text": " transform must be one of the bits present in the supportedTransforms member of VkDisplayPropertiesKHR for the display corresponding to displayMode" + "text": "transform must be one of the bits present in the supportedTransforms member of VkDisplayPropertiesKHR for the display corresponding to displayMode", + "page": "vkspec" }, { "vuid": "VUID-VkDisplaySurfaceCreateInfoKHR-width-01256", - "text": " The width and height members of imageExtent must be less than or equal to VkPhysicalDeviceLimits::maxImageDimension2D" + "text": "The width and height members of imageExtent must be less than or equal to VkPhysicalDeviceLimits::maxImageDimension2D", + "page": "vkspec" }, { "vuid": "VUID-VkDisplaySurfaceCreateInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkDisplaySurfaceCreateInfoKHR-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkDisplaySurfaceCreateInfoKHR-flags-zerobitmask", - "text": " flags must be 0" + "text": "flags must be 0", + "page": "vkspec" }, { "vuid": "VUID-VkDisplaySurfaceCreateInfoKHR-displayMode-parameter", - "text": " displayMode must be a valid VkDisplayModeKHR handle" + "text": "displayMode must be a valid VkDisplayModeKHR handle", + "page": "vkspec" }, { "vuid": "VUID-VkDisplaySurfaceCreateInfoKHR-transform-parameter", - "text": " transform must be a valid VkSurfaceTransformFlagBitsKHR value" + "text": "transform must be a valid VkSurfaceTransformFlagBitsKHR value", + "page": "vkspec" }, { "vuid": "VUID-VkDisplaySurfaceCreateInfoKHR-alphaMode-parameter", - "text": " alphaMode must be a valid VkDisplayPlaneAlphaFlagBitsKHR value" + "text": "alphaMode must be a valid VkDisplayPlaneAlphaFlagBitsKHR value", + "page": "vkspec" } ] }, @@ -62450,19 +80898,23 @@ "core": [ { "vuid": "VUID-vkCreateHeadlessSurfaceEXT-instance-parameter", - "text": " instance must be a valid VkInstance handle" + "text": "instance must be a valid VkInstance handle", + "page": "vkspec" }, { "vuid": "VUID-vkCreateHeadlessSurfaceEXT-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkHeadlessSurfaceCreateInfoEXT structure" + "text": "pCreateInfo must be a valid pointer to a valid VkHeadlessSurfaceCreateInfoEXT structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateHeadlessSurfaceEXT-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateHeadlessSurfaceEXT-pSurface-parameter", - "text": " pSurface must be a valid pointer to a VkSurfaceKHR handle" + "text": "pSurface must be a valid pointer to a VkSurfaceKHR handle", + "page": "vkspec" } ] }, @@ -62470,15 +80922,18 @@ "core": [ { "vuid": "VUID-VkHeadlessSurfaceCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkHeadlessSurfaceCreateInfoEXT-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkHeadlessSurfaceCreateInfoEXT-flags-zerobitmask", - "text": " flags must be 0" + "text": "flags must be 0", + "page": "vkspec" } ] }, @@ -62486,23 +80941,28 @@ "core": [ { "vuid": "VUID-vkGetPhysicalDeviceSurfaceSupportKHR-queueFamilyIndex-01269", - "text": " queueFamilyIndex must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties for the given physicalDevice" + "text": "queueFamilyIndex must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties for the given physicalDevice", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceSurfaceSupportKHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": "physicalDevice must be a valid VkPhysicalDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceSurfaceSupportKHR-surface-parameter", - "text": " surface must be a valid VkSurfaceKHR handle" + "text": "surface must be a valid VkSurfaceKHR handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceSurfaceSupportKHR-pSupported-parameter", - "text": " pSupported must be a valid pointer to a VkBool32 value" + "text": "pSupported must be a valid pointer to a VkBool32 value", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceSurfaceSupportKHR-commonparent", - "text": " Both of physicalDevice, and surface must have been created, allocated, or retrieved from the same VkInstance" + "text": "Both of physicalDevice, and surface must have been created, allocated, or retrieved from the same VkInstance", + "page": "vkspec" } ] }, @@ -62510,15 +80970,18 @@ "core": [ { "vuid": "VUID-vkGetPhysicalDeviceWaylandPresentationSupportKHR-queueFamilyIndex-01306", - "text": " queueFamilyIndex must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties for the given physicalDevice" + "text": "queueFamilyIndex must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties for the given physicalDevice", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceWaylandPresentationSupportKHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": "physicalDevice must be a valid VkPhysicalDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceWaylandPresentationSupportKHR-display-parameter", - "text": " display must be a valid pointer to a wl_display value" + "text": "display must be a valid pointer to a wl_display value", + "page": "vkspec" } ] }, @@ -62526,11 +80989,13 @@ "core": [ { "vuid": "VUID-vkGetPhysicalDeviceWin32PresentationSupportKHR-queueFamilyIndex-01309", - "text": " queueFamilyIndex must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties for the given physicalDevice" + "text": "queueFamilyIndex must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties for the given physicalDevice", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceWin32PresentationSupportKHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": "physicalDevice must be a valid VkPhysicalDevice handle", + "page": "vkspec" } ] }, @@ -62538,15 +81003,18 @@ "core": [ { "vuid": "VUID-vkGetPhysicalDeviceXcbPresentationSupportKHR-queueFamilyIndex-01312", - "text": " queueFamilyIndex must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties for the given physicalDevice" + "text": "queueFamilyIndex must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties for the given physicalDevice", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceXcbPresentationSupportKHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": "physicalDevice must be a valid VkPhysicalDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceXcbPresentationSupportKHR-connection-parameter", - "text": " connection must be a valid pointer to an xcb_connection_t value" + "text": "connection must be a valid pointer to an xcb_connection_t value", + "page": "vkspec" } ] }, @@ -62554,15 +81022,18 @@ "core": [ { "vuid": "VUID-vkGetPhysicalDeviceXlibPresentationSupportKHR-queueFamilyIndex-01315", - "text": " queueFamilyIndex must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties for the given physicalDevice" + "text": "queueFamilyIndex must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties for the given physicalDevice", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceXlibPresentationSupportKHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": "physicalDevice must be a valid VkPhysicalDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceXlibPresentationSupportKHR-dpy-parameter", - "text": " dpy must be a valid pointer to a Display value" + "text": "dpy must be a valid pointer to a Display value", + "page": "vkspec" } ] }, @@ -62570,15 +81041,18 @@ "core": [ { "vuid": "VUID-vkGetPhysicalDeviceDirectFBPresentationSupportEXT-queueFamilyIndex-04119", - "text": " queueFamilyIndex must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties for the given physicalDevice" + "text": "queueFamilyIndex must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties for the given physicalDevice", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceDirectFBPresentationSupportEXT-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": "physicalDevice must be a valid VkPhysicalDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceDirectFBPresentationSupportEXT-dfb-parameter", - "text": " dfb must be a valid pointer to an IDirectFB value" + "text": "dfb must be a valid pointer to an IDirectFB value", + "page": "vkspec" } ] }, @@ -62586,15 +81060,18 @@ "core": [ { "vuid": "VUID-vkGetPhysicalDeviceScreenPresentationSupportQNX-queueFamilyIndex-04743", - "text": " queueFamilyIndex must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties for the given physicalDevice" + "text": "queueFamilyIndex must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties for the given physicalDevice", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceScreenPresentationSupportQNX-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": "physicalDevice must be a valid VkPhysicalDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceScreenPresentationSupportQNX-window-parameter", - "text": " window must be a valid pointer to a _screen_window value" + "text": "window must be a valid pointer to a _screen_window value", + "page": "vkspec" } ] }, @@ -62602,27 +81079,33 @@ "core": [ { "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilitiesKHR-surface-06523", - "text": " surface must be a valid VkSurfaceKHR handle" + "text": "surface must be a valid VkSurfaceKHR handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilitiesKHR-surface-06211", - "text": " surface must be supported by physicalDevice, as reported by vkGetPhysicalDeviceSurfaceSupportKHR or an equivalent platform-specific mechanism" + "text": "surface must be supported by physicalDevice, as reported by vkGetPhysicalDeviceSurfaceSupportKHR or an equivalent platform-specific mechanism", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilitiesKHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": "physicalDevice must be a valid VkPhysicalDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilitiesKHR-surface-parameter", - "text": " surface must be a valid VkSurfaceKHR handle" + "text": "surface must be a valid VkSurfaceKHR handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilitiesKHR-pSurfaceCapabilities-parameter", - "text": " pSurfaceCapabilities must be a valid pointer to a VkSurfaceCapabilitiesKHR structure" + "text": "pSurfaceCapabilities must be a valid pointer to a VkSurfaceCapabilitiesKHR structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilitiesKHR-commonparent", - "text": " Both of physicalDevice, and surface must have been created, allocated, or retrieved from the same VkInstance" + "text": "Both of physicalDevice, and surface must have been created, allocated, or retrieved from the same VkInstance", + "page": "vkspec" } ] }, @@ -62630,43 +81113,53 @@ "core": [ { "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pSurfaceInfo-06521", - "text": " If the VK_GOOGLE_surfaceless_query extension is not enabled, pSurfaceInfo->surface must be a valid VkSurfaceKHR handle" + "text": "If the VK_GOOGLE_surfaceless_query extension is not enabled, pSurfaceInfo->surface must be a valid VkSurfaceKHR handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pSurfaceInfo-06522", - "text": " If pSurfaceInfo->surface is not VK_NULL_HANDLE, it must be supported by physicalDevice, as reported by vkGetPhysicalDeviceSurfaceSupportKHR or an equivalent platform-specific mechanism" + "text": "If pSurfaceInfo->surface is not VK_NULL_HANDLE, it must be supported by physicalDevice, as reported by vkGetPhysicalDeviceSurfaceSupportKHR or an equivalent platform-specific mechanism", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pNext-02671", - "text": " If a VkSurfaceCapabilitiesFullScreenExclusiveEXT structure is included in the pNext chain of pSurfaceCapabilities, a VkSurfaceFullScreenExclusiveWin32InfoEXT structure must be included in the pNext chain of pSurfaceInfo" + "text": "If a VkSurfaceCapabilitiesFullScreenExclusiveEXT structure is included in the pNext chain of pSurfaceCapabilities, a VkSurfaceFullScreenExclusiveWin32InfoEXT structure must be included in the pNext chain of pSurfaceInfo", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pNext-07776", - "text": " If a VkSurfacePresentModeCompatibilityEXT structure is included in the pNext chain of pSurfaceCapabilities, a VkSurfacePresentModeEXT structure must be included in the pNext chain of pSurfaceInfo" + "text": "If a VkSurfacePresentModeCompatibilityEXT structure is included in the pNext chain of pSurfaceCapabilities, a VkSurfacePresentModeEXT structure must be included in the pNext chain of pSurfaceInfo", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pNext-07777", - "text": " If a VkSurfacePresentScalingCapabilitiesEXT structure is included in the pNext chain of pSurfaceCapabilities, a VkSurfacePresentModeEXT structure must be included in the pNext chain of pSurfaceInfo" + "text": "If a VkSurfacePresentScalingCapabilitiesEXT structure is included in the pNext chain of pSurfaceCapabilities, a VkSurfacePresentModeEXT structure must be included in the pNext chain of pSurfaceInfo", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pNext-07778", - "text": " If a VkSurfacePresentModeCompatibilityEXT structure is included in the pNext chain of pSurfaceCapabilities, pSurfaceInfo->surface must be a valid VkSurfaceKHR handle" + "text": "If a VkSurfacePresentModeCompatibilityEXT structure is included in the pNext chain of pSurfaceCapabilities, pSurfaceInfo->surface must be a valid VkSurfaceKHR handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pNext-07779", - "text": " If a VkSurfacePresentScalingCapabilitiesEXT structure is included in the pNext chain of pSurfaceCapabilities, pSurfaceInfo->surface must be a valid VkSurfaceKHR handle" + "text": "If a VkSurfacePresentScalingCapabilitiesEXT structure is included in the pNext chain of pSurfaceCapabilities, pSurfaceInfo->surface must be a valid VkSurfaceKHR handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": "physicalDevice must be a valid VkPhysicalDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pSurfaceInfo-parameter", - "text": " pSurfaceInfo must be a valid pointer to a valid VkPhysicalDeviceSurfaceInfo2KHR structure" + "text": "pSurfaceInfo must be a valid pointer to a valid VkPhysicalDeviceSurfaceInfo2KHR structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pSurfaceCapabilities-parameter", - "text": " pSurfaceCapabilities must be a valid pointer to a VkSurfaceCapabilities2KHR structure" + "text": "pSurfaceCapabilities must be a valid pointer to a VkSurfaceCapabilities2KHR structure", + "page": "vkspec" } ] }, @@ -62674,27 +81167,33 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceSurfaceInfo2KHR-pNext-02672", - "text": " If the pNext chain includes a VkSurfaceFullScreenExclusiveInfoEXT structure with its fullScreenExclusive member set to VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT, and surface was created using vkCreateWin32SurfaceKHR, a VkSurfaceFullScreenExclusiveWin32InfoEXT structure must be included in the pNext chain" + "text": "If the pNext chain includes a VkSurfaceFullScreenExclusiveInfoEXT structure with its fullScreenExclusive member set to VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT, and surface was created using vkCreateWin32SurfaceKHR, a VkSurfaceFullScreenExclusiveWin32InfoEXT structure must be included in the pNext chain", + "page": "vkspec" }, { "vuid": "VUID-VkPhysicalDeviceSurfaceInfo2KHR-surface-07919", - "text": " If the VK_GOOGLE_surfaceless_query extension is not enabled, surface must be a valid VkSurfaceKHR handle" + "text": "If the VK_GOOGLE_surfaceless_query extension is not enabled, surface must be a valid VkSurfaceKHR handle", + "page": "vkspec" }, { "vuid": "VUID-VkPhysicalDeviceSurfaceInfo2KHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkPhysicalDeviceSurfaceInfo2KHR-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 VkSurfaceFullScreenExclusiveInfoEXT, VkSurfaceFullScreenExclusiveWin32InfoEXT, or VkSurfacePresentModeEXT" + "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 VkSurfaceFullScreenExclusiveInfoEXT, VkSurfaceFullScreenExclusiveWin32InfoEXT, or VkSurfacePresentModeEXT", + "page": "vkspec" }, { "vuid": "VUID-VkPhysicalDeviceSurfaceInfo2KHR-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" }, { "vuid": "VUID-VkPhysicalDeviceSurfaceInfo2KHR-surface-parameter", - "text": " If surface is not VK_NULL_HANDLE, surface must be a valid VkSurfaceKHR handle" + "text": "If surface is not VK_NULL_HANDLE, surface must be a valid VkSurfaceKHR handle", + "page": "vkspec" } ] }, @@ -62702,11 +81201,13 @@ "core": [ { "vuid": "VUID-VkSurfaceFullScreenExclusiveInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkSurfaceFullScreenExclusiveInfoEXT-fullScreenExclusive-parameter", - "text": " fullScreenExclusive must be a valid VkFullScreenExclusiveEXT value" + "text": "fullScreenExclusive must be a valid VkFullScreenExclusiveEXT value", + "page": "vkspec" } ] }, @@ -62714,11 +81215,13 @@ "core": [ { "vuid": "VUID-VkSurfaceFullScreenExclusiveWin32InfoEXT-hmonitor-02673", - "text": " hmonitor must be a valid HMONITOR" + "text": "hmonitor must be a valid HMONITOR", + "page": "vkspec" }, { "vuid": "VUID-VkSurfaceFullScreenExclusiveWin32InfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT", + "page": "vkspec" } ] }, @@ -62726,15 +81229,18 @@ "core": [ { "vuid": "VUID-VkSurfaceCapabilities2KHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR", + "page": "vkspec" }, { "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, 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, VkSurfacePresentModeCompatibilityEXT, VkSurfacePresentScalingCapabilitiesEXT, or VkSurfaceProtectedCapabilitiesKHR", + "page": "vkspec" }, { "vuid": "VUID-VkSurfaceCapabilities2KHR-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" } ] }, @@ -62742,7 +81248,8 @@ "core": [ { "vuid": "VUID-VkSurfaceProtectedCapabilitiesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR", + "page": "vkspec" } ] }, @@ -62750,19 +81257,23 @@ "core": [ { "vuid": "VUID-VkSurfacePresentScalingCapabilitiesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkSurfacePresentScalingCapabilitiesEXT-supportedPresentScaling-parameter", - "text": " supportedPresentScaling must be a valid combination of VkPresentScalingFlagBitsEXT values" + "text": "supportedPresentScaling must be a valid combination of VkPresentScalingFlagBitsEXT values", + "page": "vkspec" }, { "vuid": "VUID-VkSurfacePresentScalingCapabilitiesEXT-supportedPresentGravityX-parameter", - "text": " supportedPresentGravityX must be a valid combination of VkPresentGravityFlagBitsEXT values" + "text": "supportedPresentGravityX must be a valid combination of VkPresentGravityFlagBitsEXT values", + "page": "vkspec" }, { "vuid": "VUID-VkSurfacePresentScalingCapabilitiesEXT-supportedPresentGravityY-parameter", - "text": " supportedPresentGravityY must be a valid combination of VkPresentGravityFlagBitsEXT values" + "text": "supportedPresentGravityY must be a valid combination of VkPresentGravityFlagBitsEXT values", + "page": "vkspec" } ] }, @@ -62770,15 +81281,18 @@ "core": [ { "vuid": "VUID-VkSurfacePresentModeEXT-presentMode-07780", - "text": " presentMode must be a value reported by vkGetPhysicalDeviceSurfacePresentModesKHR for the specified surface." + "text": "presentMode must be a value reported by vkGetPhysicalDeviceSurfacePresentModesKHR for the specified surface.", + "page": "vkspec" }, { "vuid": "VUID-VkSurfacePresentModeEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkSurfacePresentModeEXT-presentMode-parameter", - "text": " presentMode must be a valid VkPresentModeKHR value" + "text": "presentMode must be a valid VkPresentModeKHR value", + "page": "vkspec" } ] }, @@ -62786,11 +81300,13 @@ "core": [ { "vuid": "VUID-VkSurfacePresentModeCompatibilityEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkSurfacePresentModeCompatibilityEXT-pPresentModes-parameter", - "text": " If presentModeCount is not 0, and pPresentModes is not NULL, pPresentModes must be a valid pointer to an array of presentModeCount VkPresentModeKHR values" + "text": "If presentModeCount is not 0, and pPresentModes is not NULL, pPresentModes must be a valid pointer to an array of presentModeCount VkPresentModeKHR values", + "page": "vkspec" } ] }, @@ -62798,7 +81314,8 @@ "core": [ { "vuid": "VUID-VkSharedPresentSurfaceCapabilitiesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR", + "page": "vkspec" } ] }, @@ -62806,7 +81323,8 @@ "core": [ { "vuid": "VUID-VkDisplayNativeHdrSurfaceCapabilitiesAMD-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD" + "text": "sType must be VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD", + "page": "vkspec" } ] }, @@ -62814,7 +81332,8 @@ "core": [ { "vuid": "VUID-VkSurfaceCapabilitiesFullScreenExclusiveEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT", + "page": "vkspec" } ] }, @@ -62822,7 +81341,8 @@ "core": [ { "vuid": "VUID-VkSurfaceCapabilitiesPresentBarrierNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV" + "text": "sType must be VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV", + "page": "vkspec" } ] }, @@ -62830,27 +81350,33 @@ "core": [ { "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilities2EXT-surface-06523", - "text": " surface must be a valid VkSurfaceKHR handle" + "text": "surface must be a valid VkSurfaceKHR handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilities2EXT-surface-06211", - "text": " surface must be supported by physicalDevice, as reported by vkGetPhysicalDeviceSurfaceSupportKHR or an equivalent platform-specific mechanism" + "text": "surface must be supported by physicalDevice, as reported by vkGetPhysicalDeviceSurfaceSupportKHR or an equivalent platform-specific mechanism", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilities2EXT-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": "physicalDevice must be a valid VkPhysicalDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilities2EXT-surface-parameter", - "text": " surface must be a valid VkSurfaceKHR handle" + "text": "surface must be a valid VkSurfaceKHR handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilities2EXT-pSurfaceCapabilities-parameter", - "text": " pSurfaceCapabilities must be a valid pointer to a VkSurfaceCapabilities2EXT structure" + "text": "pSurfaceCapabilities must be a valid pointer to a VkSurfaceCapabilities2EXT structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilities2EXT-commonparent", - "text": " Both of physicalDevice, and surface must have been created, allocated, or retrieved from the same VkInstance" + "text": "Both of physicalDevice, and surface must have been created, allocated, or retrieved from the same VkInstance", + "page": "vkspec" } ] }, @@ -62858,15 +81384,18 @@ "core": [ { "vuid": "VUID-VkSurfaceCapabilities2EXT-supportedSurfaceCounters-01246", - "text": " supportedSurfaceCounters must not include VK_SURFACE_COUNTER_VBLANK_BIT_EXT unless the surface queried is a display surface" + "text": "supportedSurfaceCounters must not include VK_SURFACE_COUNTER_VBLANK_BIT_EXT unless the surface queried is a display surface", + "page": "vkspec" }, { "vuid": "VUID-VkSurfaceCapabilities2EXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkSurfaceCapabilities2EXT-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" } ] }, @@ -62874,31 +81403,38 @@ "core": [ { "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-surface-06524", - "text": " If the VK_GOOGLE_surfaceless_query extension is not enabled, surface must be a valid VkSurfaceKHR handle" + "text": "If the VK_GOOGLE_surfaceless_query extension is not enabled, surface must be a valid VkSurfaceKHR handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-surface-06525", - "text": " If surface is not VK_NULL_HANDLE, it must be supported by physicalDevice, as reported by vkGetPhysicalDeviceSurfaceSupportKHR or an equivalent platform-specific mechanism" + "text": "If surface is not VK_NULL_HANDLE, it must be supported by physicalDevice, as reported by vkGetPhysicalDeviceSurfaceSupportKHR or an equivalent platform-specific mechanism", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": "physicalDevice must be a valid VkPhysicalDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-surface-parameter", - "text": " If surface is not VK_NULL_HANDLE, surface must be a valid VkSurfaceKHR handle" + "text": "If surface is not VK_NULL_HANDLE, surface must be a valid VkSurfaceKHR handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-pSurfaceFormatCount-parameter", - "text": " pSurfaceFormatCount must be a valid pointer to a uint32_t value" + "text": "pSurfaceFormatCount must be a valid pointer to a uint32_t value", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-pSurfaceFormats-parameter", - "text": " If the value referenced by pSurfaceFormatCount is not 0, and pSurfaceFormats is not NULL, pSurfaceFormats must be a valid pointer to an array of pSurfaceFormatCount VkSurfaceFormatKHR structures" + "text": "If the value referenced by pSurfaceFormatCount is not 0, and pSurfaceFormats is not NULL, pSurfaceFormats must be a valid pointer to an array of pSurfaceFormatCount VkSurfaceFormatKHR structures", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-commonparent", - "text": " Both of physicalDevice, and surface that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkInstance" + "text": "Both of physicalDevice, and surface that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkInstance", + "page": "vkspec" } ] }, @@ -62906,27 +81442,33 @@ "core": [ { "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormats2KHR-pSurfaceInfo-06521", - "text": " If the VK_GOOGLE_surfaceless_query extension is not enabled, pSurfaceInfo->surface must be a valid VkSurfaceKHR handle" + "text": "If the VK_GOOGLE_surfaceless_query extension is not enabled, pSurfaceInfo->surface must be a valid VkSurfaceKHR handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormats2KHR-pSurfaceInfo-06522", - "text": " If pSurfaceInfo->surface is not VK_NULL_HANDLE, it must be supported by physicalDevice, as reported by vkGetPhysicalDeviceSurfaceSupportKHR or an equivalent platform-specific mechanism" + "text": "If pSurfaceInfo->surface is not VK_NULL_HANDLE, it must be supported by physicalDevice, as reported by vkGetPhysicalDeviceSurfaceSupportKHR or an equivalent platform-specific mechanism", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormats2KHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": "physicalDevice must be a valid VkPhysicalDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormats2KHR-pSurfaceInfo-parameter", - "text": " pSurfaceInfo must be a valid pointer to a valid VkPhysicalDeviceSurfaceInfo2KHR structure" + "text": "pSurfaceInfo must be a valid pointer to a valid VkPhysicalDeviceSurfaceInfo2KHR structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormats2KHR-pSurfaceFormatCount-parameter", - "text": " pSurfaceFormatCount must be a valid pointer to a uint32_t value" + "text": "pSurfaceFormatCount must be a valid pointer to a uint32_t value", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormats2KHR-pSurfaceFormats-parameter", - "text": " If the value referenced by pSurfaceFormatCount is not 0, and pSurfaceFormats is not NULL, pSurfaceFormats must be a valid pointer to an array of pSurfaceFormatCount VkSurfaceFormat2KHR structures" + "text": "If the value referenced by pSurfaceFormatCount is not 0, and pSurfaceFormats is not NULL, pSurfaceFormats must be a valid pointer to an array of pSurfaceFormatCount VkSurfaceFormat2KHR structures", + "page": "vkspec" } ] }, @@ -62934,19 +81476,23 @@ "core": [ { "vuid": "VUID-VkSurfaceFormat2KHR-pNext-06750", - "text": " If the imageCompressionControlSwapchain feature is not enabled, the pNext chain must not include an VkImageCompressionPropertiesEXT structure" + "text": "If the imageCompressionControlSwapchain feature is not enabled, the pNext chain must not include an VkImageCompressionPropertiesEXT structure", + "page": "vkspec" }, { "vuid": "VUID-VkSurfaceFormat2KHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkSurfaceFormat2KHR-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkImageCompressionPropertiesEXT" + "text": "pNext must be NULL or a pointer to a valid instance of VkImageCompressionPropertiesEXT", + "page": "vkspec" }, { "vuid": "VUID-VkSurfaceFormat2KHR-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" } ] }, @@ -62954,31 +81500,38 @@ "core": [ { "vuid": "VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-surface-06524", - "text": " If the VK_GOOGLE_surfaceless_query extension is not enabled, surface must be a valid VkSurfaceKHR handle" + "text": "If the VK_GOOGLE_surfaceless_query extension is not enabled, surface must be a valid VkSurfaceKHR handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-surface-06525", - "text": " If surface is not VK_NULL_HANDLE, it must be supported by physicalDevice, as reported by vkGetPhysicalDeviceSurfaceSupportKHR or an equivalent platform-specific mechanism" + "text": "If surface is not VK_NULL_HANDLE, it must be supported by physicalDevice, as reported by vkGetPhysicalDeviceSurfaceSupportKHR or an equivalent platform-specific mechanism", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": "physicalDevice must be a valid VkPhysicalDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-surface-parameter", - "text": " If surface is not VK_NULL_HANDLE, surface must be a valid VkSurfaceKHR handle" + "text": "If surface is not VK_NULL_HANDLE, surface must be a valid VkSurfaceKHR handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-pPresentModeCount-parameter", - "text": " pPresentModeCount must be a valid pointer to a uint32_t value" + "text": "pPresentModeCount must be a valid pointer to a uint32_t value", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-pPresentModes-parameter", - "text": " If the value referenced by pPresentModeCount is not 0, and pPresentModes is not NULL, pPresentModes must be a valid pointer to an array of pPresentModeCount VkPresentModeKHR values" + "text": "If the value referenced by pPresentModeCount is not 0, and pPresentModes is not NULL, pPresentModes must be a valid pointer to an array of pPresentModeCount VkPresentModeKHR values", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-commonparent", - "text": " Both of physicalDevice, and surface that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkInstance" + "text": "Both of physicalDevice, and surface that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkInstance", + "page": "vkspec" } ] }, @@ -62986,27 +81539,33 @@ "core": [ { "vuid": "VUID-vkGetPhysicalDeviceSurfacePresentModes2EXT-pSurfaceInfo-06521", - "text": " If the VK_GOOGLE_surfaceless_query extension is not enabled, pSurfaceInfo->surface must be a valid VkSurfaceKHR handle" + "text": "If the VK_GOOGLE_surfaceless_query extension is not enabled, pSurfaceInfo->surface must be a valid VkSurfaceKHR handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceSurfacePresentModes2EXT-pSurfaceInfo-06522", - "text": " If pSurfaceInfo->surface is not VK_NULL_HANDLE, it must be supported by physicalDevice, as reported by vkGetPhysicalDeviceSurfaceSupportKHR or an equivalent platform-specific mechanism" + "text": "If pSurfaceInfo->surface is not VK_NULL_HANDLE, it must be supported by physicalDevice, as reported by vkGetPhysicalDeviceSurfaceSupportKHR or an equivalent platform-specific mechanism", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceSurfacePresentModes2EXT-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": "physicalDevice must be a valid VkPhysicalDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceSurfacePresentModes2EXT-pSurfaceInfo-parameter", - "text": " pSurfaceInfo must be a valid pointer to a valid VkPhysicalDeviceSurfaceInfo2KHR structure" + "text": "pSurfaceInfo must be a valid pointer to a valid VkPhysicalDeviceSurfaceInfo2KHR structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceSurfacePresentModes2EXT-pPresentModeCount-parameter", - "text": " pPresentModeCount must be a valid pointer to a uint32_t value" + "text": "pPresentModeCount must be a valid pointer to a uint32_t value", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceSurfacePresentModes2EXT-pPresentModes-parameter", - "text": " If the value referenced by pPresentModeCount is not 0, and pPresentModes is not NULL, pPresentModes must be a valid pointer to an array of pPresentModeCount VkPresentModeKHR values" + "text": "If the value referenced by pPresentModeCount is not 0, and pPresentModes is not NULL, pPresentModes must be a valid pointer to an array of pPresentModeCount VkPresentModeKHR values", + "page": "vkspec" } ] }, @@ -63014,27 +81573,33 @@ "core": [ { "vuid": "VUID-vkAcquireFullScreenExclusiveModeEXT-swapchain-02674", - "text": " swapchain must not be in the retired state" + "text": "swapchain must not be in the retired state", + "page": "vkspec" }, { "vuid": "VUID-vkAcquireFullScreenExclusiveModeEXT-swapchain-02675", - "text": " swapchain must be a swapchain created with a VkSurfaceFullScreenExclusiveInfoEXT structure, with fullScreenExclusive set to VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT" + "text": "swapchain must be a swapchain created with a VkSurfaceFullScreenExclusiveInfoEXT structure, with fullScreenExclusive set to VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkAcquireFullScreenExclusiveModeEXT-swapchain-02676", - "text": " swapchain must not currently have exclusive full-screen access" + "text": "swapchain must not currently have exclusive full-screen access", + "page": "vkspec" }, { "vuid": "VUID-vkAcquireFullScreenExclusiveModeEXT-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkAcquireFullScreenExclusiveModeEXT-swapchain-parameter", - "text": " swapchain must be a valid VkSwapchainKHR handle" + "text": "swapchain must be a valid VkSwapchainKHR handle", + "page": "vkspec" }, { "vuid": "VUID-vkAcquireFullScreenExclusiveModeEXT-swapchain-parent", - "text": " swapchain must have been created, allocated, or retrieved from device" + "text": "swapchain must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -63042,11 +81607,13 @@ "core": [ { "vuid": "VUID-vkReleaseFullScreenExclusiveModeEXT-swapchain-02677", - "text": " swapchain must not be in the retired state" + "text": "swapchain must not be in the retired state", + "page": "vkspec" }, { "vuid": "VUID-vkReleaseFullScreenExclusiveModeEXT-swapchain-02678", - "text": " swapchain must be a swapchain created with a VkSurfaceFullScreenExclusiveInfoEXT structure, with fullScreenExclusive set to VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT" + "text": "swapchain must be a swapchain created with a VkSurfaceFullScreenExclusiveInfoEXT structure, with fullScreenExclusive set to VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT", + "page": "vkspec" } ] }, @@ -63054,11 +81621,13 @@ "core": [ { "vuid": "VUID-vkGetDeviceGroupPresentCapabilitiesKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetDeviceGroupPresentCapabilitiesKHR-pDeviceGroupPresentCapabilities-parameter", - "text": " pDeviceGroupPresentCapabilities must be a valid pointer to a VkDeviceGroupPresentCapabilitiesKHR structure" + "text": "pDeviceGroupPresentCapabilities must be a valid pointer to a VkDeviceGroupPresentCapabilitiesKHR structure", + "page": "vkspec" } ] }, @@ -63066,11 +81635,13 @@ "core": [ { "vuid": "VUID-VkDeviceGroupPresentCapabilitiesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceGroupPresentCapabilitiesKHR-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" } ] }, @@ -63078,23 +81649,28 @@ "core": [ { "vuid": "VUID-vkGetDeviceGroupSurfacePresentModesKHR-surface-06212", - "text": " surface must be supported by all physical devices associated with device, as reported by vkGetPhysicalDeviceSurfaceSupportKHR or an equivalent platform-specific mechanism" + "text": "surface must be supported by all physical devices associated with device, as reported by vkGetPhysicalDeviceSurfaceSupportKHR or an equivalent platform-specific mechanism", + "page": "vkspec" }, { "vuid": "VUID-vkGetDeviceGroupSurfacePresentModesKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetDeviceGroupSurfacePresentModesKHR-surface-parameter", - "text": " surface must be a valid VkSurfaceKHR handle" + "text": "surface must be a valid VkSurfaceKHR handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetDeviceGroupSurfacePresentModesKHR-pModes-parameter", - "text": " pModes must be a valid pointer to a VkDeviceGroupPresentModeFlagsKHR value" + "text": "pModes must be a valid pointer to a VkDeviceGroupPresentModeFlagsKHR value", + "page": "vkspec" }, { "vuid": "VUID-vkGetDeviceGroupSurfacePresentModesKHR-commonparent", - "text": " Both of device, and surface must have been created, allocated, or retrieved from the same VkInstance" + "text": "Both of device, and surface must have been created, allocated, or retrieved from the same VkInstance", + "page": "vkspec" } ] }, @@ -63102,19 +81678,23 @@ "core": [ { "vuid": "VUID-vkGetDeviceGroupSurfacePresentModes2EXT-pSurfaceInfo-06213", - "text": " pSurfaceInfo->surface must be supported by all physical devices associated with device, as reported by vkGetPhysicalDeviceSurfaceSupportKHR or an equivalent platform-specific mechanism" + "text": "pSurfaceInfo->surface must be supported by all physical devices associated with device, as reported by vkGetPhysicalDeviceSurfaceSupportKHR or an equivalent platform-specific mechanism", + "page": "vkspec" }, { "vuid": "VUID-vkGetDeviceGroupSurfacePresentModes2EXT-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetDeviceGroupSurfacePresentModes2EXT-pSurfaceInfo-parameter", - "text": " pSurfaceInfo must be a valid pointer to a valid VkPhysicalDeviceSurfaceInfo2KHR structure" + "text": "pSurfaceInfo must be a valid pointer to a valid VkPhysicalDeviceSurfaceInfo2KHR structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetDeviceGroupSurfacePresentModes2EXT-pModes-parameter", - "text": " pModes must be a valid pointer to a VkDeviceGroupPresentModeFlagsKHR value" + "text": "pModes must be a valid pointer to a VkDeviceGroupPresentModeFlagsKHR value", + "page": "vkspec" } ] }, @@ -63122,31 +81702,38 @@ "core": [ { "vuid": "VUID-vkGetPhysicalDevicePresentRectanglesKHR-surface-06523", - "text": " surface must be a valid VkSurfaceKHR handle" + "text": "surface must be a valid VkSurfaceKHR handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDevicePresentRectanglesKHR-surface-06211", - "text": " surface must be supported by physicalDevice, as reported by vkGetPhysicalDeviceSurfaceSupportKHR or an equivalent platform-specific mechanism" + "text": "surface must be supported by physicalDevice, as reported by vkGetPhysicalDeviceSurfaceSupportKHR or an equivalent platform-specific mechanism", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDevicePresentRectanglesKHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": "physicalDevice must be a valid VkPhysicalDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDevicePresentRectanglesKHR-surface-parameter", - "text": " surface must be a valid VkSurfaceKHR handle" + "text": "surface must be a valid VkSurfaceKHR handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDevicePresentRectanglesKHR-pRectCount-parameter", - "text": " pRectCount must be a valid pointer to a uint32_t value" + "text": "pRectCount must be a valid pointer to a uint32_t value", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDevicePresentRectanglesKHR-pRects-parameter", - "text": " If the value referenced by pRectCount is not 0, and pRects is not NULL, pRects must be a valid pointer to an array of pRectCount VkRect2D structures" + "text": "If the value referenced by pRectCount is not 0, and pRects is not NULL, pRects must be a valid pointer to an array of pRectCount VkRect2D structures", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDevicePresentRectanglesKHR-commonparent", - "text": " Both of physicalDevice, and surface must have been created, allocated, or retrieved from the same VkInstance" + "text": "Both of physicalDevice, and surface must have been created, allocated, or retrieved from the same VkInstance", + "page": "vkspec" } ] }, @@ -63154,19 +81741,23 @@ "core": [ { "vuid": "VUID-vkGetRefreshCycleDurationGOOGLE-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetRefreshCycleDurationGOOGLE-swapchain-parameter", - "text": " swapchain must be a valid VkSwapchainKHR handle" + "text": "swapchain must be a valid VkSwapchainKHR handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetRefreshCycleDurationGOOGLE-pDisplayTimingProperties-parameter", - "text": " pDisplayTimingProperties must be a valid pointer to a VkRefreshCycleDurationGOOGLE structure" + "text": "pDisplayTimingProperties must be a valid pointer to a VkRefreshCycleDurationGOOGLE structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetRefreshCycleDurationGOOGLE-swapchain-parent", - "text": " swapchain must have been created, allocated, or retrieved from device" + "text": "swapchain must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -63174,23 +81765,28 @@ "core": [ { "vuid": "VUID-vkGetPastPresentationTimingGOOGLE-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPastPresentationTimingGOOGLE-swapchain-parameter", - "text": " swapchain must be a valid VkSwapchainKHR handle" + "text": "swapchain must be a valid VkSwapchainKHR handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPastPresentationTimingGOOGLE-pPresentationTimingCount-parameter", - "text": " pPresentationTimingCount must be a valid pointer to a uint32_t value" + "text": "pPresentationTimingCount must be a valid pointer to a uint32_t value", + "page": "vkspec" }, { "vuid": "VUID-vkGetPastPresentationTimingGOOGLE-pPresentationTimings-parameter", - "text": " If the value referenced by pPresentationTimingCount is not 0, and pPresentationTimings is not NULL, pPresentationTimings must be a valid pointer to an array of pPresentationTimingCount VkPastPresentationTimingGOOGLE structures" + "text": "If the value referenced by pPresentationTimingCount is not 0, and pPresentationTimings is not NULL, pPresentationTimings must be a valid pointer to an array of pPresentationTimingCount VkPastPresentationTimingGOOGLE structures", + "page": "vkspec" }, { "vuid": "VUID-vkGetPastPresentationTimingGOOGLE-swapchain-parent", - "text": " swapchain must have been created, allocated, or retrieved from device" + "text": "swapchain must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -63198,15 +81794,18 @@ "core": [ { "vuid": "VUID-vkGetSwapchainStatusKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetSwapchainStatusKHR-swapchain-parameter", - "text": " swapchain must be a valid VkSwapchainKHR handle" + "text": "swapchain must be a valid VkSwapchainKHR handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetSwapchainStatusKHR-swapchain-parent", - "text": " swapchain must have been created, allocated, or retrieved from device" + "text": "swapchain must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -63214,19 +81813,23 @@ "core": [ { "vuid": "VUID-vkCreateSwapchainKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkCreateSwapchainKHR-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkSwapchainCreateInfoKHR structure" + "text": "pCreateInfo must be a valid pointer to a valid VkSwapchainCreateInfoKHR structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateSwapchainKHR-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateSwapchainKHR-pSwapchain-parameter", - "text": " pSwapchain must be a valid pointer to a VkSwapchainKHR handle" + "text": "pSwapchain must be a valid pointer to a VkSwapchainKHR handle", + "page": "vkspec" } ] }, @@ -63234,167 +81837,208 @@ "core": [ { "vuid": "VUID-VkSwapchainCreateInfoKHR-surface-01270", - "text": " surface must be a surface that is supported by the device as determined using vkGetPhysicalDeviceSurfaceSupportKHR" + "text": "surface must be a surface that is supported by the device as determined using vkGetPhysicalDeviceSurfaceSupportKHR", + "page": "vkspec" }, { "vuid": "VUID-VkSwapchainCreateInfoKHR-minImageCount-01272", - "text": " minImageCount must be less than or equal to the value returned in the maxImageCount member of the VkSurfaceCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilitiesKHR for the surface if the returned maxImageCount is not zero" + "text": "minImageCount must be less than or equal to the value returned in the maxImageCount member of the VkSurfaceCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilitiesKHR for the surface if the returned maxImageCount is not zero", + "page": "vkspec" }, { "vuid": "VUID-VkSwapchainCreateInfoKHR-presentMode-02839", - "text": " If presentMode is not VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR nor VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR, then minImageCount must be greater than or equal to the value returned in the minImageCount member of the VkSurfaceCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilitiesKHR for the surface" + "text": "If presentMode is not VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR nor VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR, then minImageCount must be greater than or equal to the value returned in the minImageCount member of the VkSurfaceCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilitiesKHR for the surface", + "page": "vkspec" }, { "vuid": "VUID-VkSwapchainCreateInfoKHR-minImageCount-01383", - "text": " minImageCount must be 1 if presentMode is either VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR or VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR" + "text": "minImageCount must be 1 if presentMode is either VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR or VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkSwapchainCreateInfoKHR-imageFormat-01273", - "text": " imageFormat and imageColorSpace must match the format and colorSpace members, respectively, of one of the VkSurfaceFormatKHR structures returned by vkGetPhysicalDeviceSurfaceFormatsKHR for the surface" + "text": "imageFormat and imageColorSpace must match the format and colorSpace members, respectively, of one of the VkSurfaceFormatKHR structures returned by vkGetPhysicalDeviceSurfaceFormatsKHR for the surface", + "page": "vkspec" }, { "vuid": "VUID-VkSwapchainCreateInfoKHR-pNext-07781", - "text": " If a VkSwapchainPresentScalingCreateInfoEXT structure was not included in the pNext chain, or it is included and VkSwapchainPresentScalingCreateInfoEXT::scalingBehavior is zero then imageExtent must be between minImageExtent and maxImageExtent, inclusive, where minImageExtent and maxImageExtent are members of the VkSurfaceCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilitiesKHR for the surface" + "text": "If a VkSwapchainPresentScalingCreateInfoEXT structure was not included in the pNext chain, or it is included and VkSwapchainPresentScalingCreateInfoEXT::scalingBehavior is zero then imageExtent must be between minImageExtent and maxImageExtent, inclusive, where minImageExtent and maxImageExtent are members of the VkSurfaceCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilitiesKHR for the surface", + "page": "vkspec" }, { "vuid": "VUID-VkSwapchainCreateInfoKHR-pNext-07782", - "text": " If a VkSwapchainPresentScalingCreateInfoEXT structure was included in the pNext chain and VkSwapchainPresentScalingCreateInfoEXT::scalingBehavior is not zero then imageExtent must be between minScaledImageExtent and maxScaledImageExtent, inclusive, where minScaledImageExtent and maxScaledImageExtent are members of the VkSurfacePresentScalingCapabilitiesEXT structure returned by vkGetPhysicalDeviceSurfaceCapabilities2KHR for the surface and presentMode" + "text": "If a VkSwapchainPresentScalingCreateInfoEXT structure was included in the pNext chain and VkSwapchainPresentScalingCreateInfoEXT::scalingBehavior is not zero then imageExtent must be between minScaledImageExtent and maxScaledImageExtent, inclusive, where minScaledImageExtent and maxScaledImageExtent are members of the VkSurfacePresentScalingCapabilitiesEXT structure returned by vkGetPhysicalDeviceSurfaceCapabilities2KHR for the surface and presentMode", + "page": "vkspec" }, { "vuid": "VUID-VkSwapchainCreateInfoKHR-imageExtent-01689", - "text": " imageExtent members width and height must both be non-zero" + "text": "imageExtent members width and height must both be non-zero", + "page": "vkspec" }, { "vuid": "VUID-VkSwapchainCreateInfoKHR-imageArrayLayers-01275", - "text": " imageArrayLayers must be greater than 0 and less than or equal to the maxImageArrayLayers member of the VkSurfaceCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilitiesKHR for the surface" + "text": "imageArrayLayers must be greater than 0 and less than or equal to the maxImageArrayLayers member of the VkSurfaceCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilitiesKHR for the surface", + "page": "vkspec" }, { "vuid": "VUID-VkSwapchainCreateInfoKHR-presentMode-01427", - "text": " If presentMode is VK_PRESENT_MODE_IMMEDIATE_KHR, VK_PRESENT_MODE_MAILBOX_KHR, VK_PRESENT_MODE_FIFO_KHR or VK_PRESENT_MODE_FIFO_RELAXED_KHR, imageUsage must be a subset of the supported usage flags present in the supportedUsageFlags member of the VkSurfaceCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilitiesKHR for surface" + "text": "If presentMode is VK_PRESENT_MODE_IMMEDIATE_KHR, VK_PRESENT_MODE_MAILBOX_KHR, VK_PRESENT_MODE_FIFO_KHR or VK_PRESENT_MODE_FIFO_RELAXED_KHR, imageUsage must be a subset of the supported usage flags present in the supportedUsageFlags member of the VkSurfaceCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilitiesKHR for surface", + "page": "vkspec" }, { "vuid": "VUID-VkSwapchainCreateInfoKHR-imageUsage-01384", - "text": " If presentMode is VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR or VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR, imageUsage must be a subset of the supported usage flags present in the sharedPresentSupportedUsageFlags member of the VkSharedPresentSurfaceCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilities2KHR for surface" + "text": "If presentMode is VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR or VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR, imageUsage must be a subset of the supported usage flags present in the sharedPresentSupportedUsageFlags member of the VkSharedPresentSurfaceCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilities2KHR for surface", + "page": "vkspec" }, { "vuid": "VUID-VkSwapchainCreateInfoKHR-imageSharingMode-01277", - "text": " If imageSharingMode is VK_SHARING_MODE_CONCURRENT, pQueueFamilyIndices must be a valid pointer to an array of queueFamilyIndexCount uint32_t values" + "text": "If imageSharingMode is VK_SHARING_MODE_CONCURRENT, pQueueFamilyIndices must be a valid pointer to an array of queueFamilyIndexCount uint32_t values", + "page": "vkspec" }, { "vuid": "VUID-VkSwapchainCreateInfoKHR-imageSharingMode-01278", - "text": " If imageSharingMode is VK_SHARING_MODE_CONCURRENT, queueFamilyIndexCount must be greater than 1" + "text": "If imageSharingMode is VK_SHARING_MODE_CONCURRENT, queueFamilyIndexCount must be greater than 1", + "page": "vkspec" }, { "vuid": "VUID-VkSwapchainCreateInfoKHR-imageSharingMode-01428", - "text": " If imageSharingMode 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" + "text": "If imageSharingMode 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": "vkspec" }, { "vuid": "VUID-VkSwapchainCreateInfoKHR-preTransform-01279", - "text": " preTransform must be one of the bits present in the supportedTransforms member of the VkSurfaceCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilitiesKHR for the surface" + "text": "preTransform must be one of the bits present in the supportedTransforms member of the VkSurfaceCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilitiesKHR for the surface", + "page": "vkspec" }, { "vuid": "VUID-VkSwapchainCreateInfoKHR-compositeAlpha-01280", - "text": " compositeAlpha must be one of the bits present in the supportedCompositeAlpha member of the VkSurfaceCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilitiesKHR for the surface" + "text": "compositeAlpha must be one of the bits present in the supportedCompositeAlpha member of the VkSurfaceCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilitiesKHR for the surface", + "page": "vkspec" }, { "vuid": "VUID-VkSwapchainCreateInfoKHR-presentMode-01281", - "text": " presentMode must be one of the VkPresentModeKHR values returned by vkGetPhysicalDeviceSurfacePresentModesKHR for the surface" + "text": "presentMode must be one of the VkPresentModeKHR values returned by vkGetPhysicalDeviceSurfacePresentModesKHR for the surface", + "page": "vkspec" }, { "vuid": "VUID-VkSwapchainCreateInfoKHR-physicalDeviceCount-01429", - "text": " If the logical device was created with VkDeviceGroupDeviceCreateInfo::physicalDeviceCount equal to 1, flags must not contain VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR" + "text": "If the logical device was created with VkDeviceGroupDeviceCreateInfo::physicalDeviceCount equal to 1, flags must not contain VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkSwapchainCreateInfoKHR-oldSwapchain-01933", - "text": " If oldSwapchain is not VK_NULL_HANDLE, oldSwapchain must be a non-retired swapchain associated with native window referred to by surface" + "text": "If oldSwapchain is not VK_NULL_HANDLE, oldSwapchain must be a non-retired swapchain associated with native window referred to by surface", + "page": "vkspec" }, { "vuid": "VUID-VkSwapchainCreateInfoKHR-imageFormat-01778", - "text": " The implied image creation parameters of the swapchain must be supported as reported by vkGetPhysicalDeviceImageFormatProperties" + "text": "The implied image creation parameters of the swapchain must be supported as reported by vkGetPhysicalDeviceImageFormatProperties", + "page": "vkspec" }, { "vuid": "VUID-VkSwapchainCreateInfoKHR-flags-03168", - "text": " If flags contains VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR then the pNext chain must include a VkImageFormatListCreateInfo structure with a viewFormatCount greater than zero and pViewFormats must have an element equal to imageFormat" + "text": "If flags contains VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR then the pNext chain must include a VkImageFormatListCreateInfo structure with a viewFormatCount greater than zero and pViewFormats must have an element equal to imageFormat", + "page": "vkspec" }, { "vuid": "VUID-VkSwapchainCreateInfoKHR-pNext-04099", - "text": " If a VkImageFormatListCreateInfo structure was included in the pNext chain and VkImageFormatListCreateInfo::viewFormatCount is not zero then all of the formats in VkImageFormatListCreateInfo::pViewFormats must be compatible with the format as described in the compatibility table" + "text": "If a VkImageFormatListCreateInfo structure was included in the pNext chain and VkImageFormatListCreateInfo::viewFormatCount is not zero then all of the formats in VkImageFormatListCreateInfo::pViewFormats must be compatible with the format as described in the compatibility table", + "page": "vkspec" }, { "vuid": "VUID-VkSwapchainCreateInfoKHR-flags-04100", - "text": " If flags does not contain VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR and the pNext chain include a VkImageFormatListCreateInfo structure then VkImageFormatListCreateInfo::viewFormatCount must be 0 or 1" + "text": "If flags does not contain VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR and the pNext chain include a VkImageFormatListCreateInfo structure then VkImageFormatListCreateInfo::viewFormatCount must be 0 or 1", + "page": "vkspec" }, { "vuid": "VUID-VkSwapchainCreateInfoKHR-flags-03187", - "text": " If flags contains VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR, then VkSurfaceProtectedCapabilitiesKHR::supportsProtected must be VK_TRUE in the VkSurfaceProtectedCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilities2KHR for surface" + "text": "If flags contains VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR, then VkSurfaceProtectedCapabilitiesKHR::supportsProtected must be VK_TRUE in the VkSurfaceProtectedCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilities2KHR for surface", + "page": "vkspec" }, { "vuid": "VUID-VkSwapchainCreateInfoKHR-pNext-02679", - "text": " If the pNext chain includes a VkSurfaceFullScreenExclusiveInfoEXT structure with its fullScreenExclusive member set to VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT, and surface was created using vkCreateWin32SurfaceKHR, a VkSurfaceFullScreenExclusiveWin32InfoEXT structure must be included in the pNext chain" + "text": "If the pNext chain includes a VkSurfaceFullScreenExclusiveInfoEXT structure with its fullScreenExclusive member set to VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT, and surface was created using vkCreateWin32SurfaceKHR, a VkSurfaceFullScreenExclusiveWin32InfoEXT structure must be included in the pNext chain", + "page": "vkspec" }, { "vuid": "VUID-VkSwapchainCreateInfoKHR-pNext-06752", - "text": " If the imageCompressionControlSwapchain feature is not enabled, the pNext chain must not include an VkImageCompressionControlEXT structure" + "text": "If the imageCompressionControlSwapchain feature is not enabled, the pNext chain must not include an VkImageCompressionControlEXT structure", + "page": "vkspec" }, { "vuid": "VUID-VkSwapchainCreateInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkSwapchainCreateInfoKHR-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 VkDeviceGroupSwapchainCreateInfoKHR, VkImageCompressionControlEXT, VkImageFormatListCreateInfo, VkSurfaceFullScreenExclusiveInfoEXT, VkSurfaceFullScreenExclusiveWin32InfoEXT, VkSwapchainCounterCreateInfoEXT, VkSwapchainDisplayNativeHdrCreateInfoAMD, VkSwapchainPresentBarrierCreateInfoNV, VkSwapchainPresentModesCreateInfoEXT, or VkSwapchainPresentScalingCreateInfoEXT" + "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 VkDeviceGroupSwapchainCreateInfoKHR, VkImageCompressionControlEXT, VkImageFormatListCreateInfo, VkSurfaceFullScreenExclusiveInfoEXT, VkSurfaceFullScreenExclusiveWin32InfoEXT, VkSwapchainCounterCreateInfoEXT, VkSwapchainDisplayNativeHdrCreateInfoAMD, VkSwapchainLatencyCreateInfoNV, VkSwapchainPresentBarrierCreateInfoNV, VkSwapchainPresentModesCreateInfoEXT, or VkSwapchainPresentScalingCreateInfoEXT", + "page": "vkspec" }, { "vuid": "VUID-VkSwapchainCreateInfoKHR-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" }, { "vuid": "VUID-VkSwapchainCreateInfoKHR-flags-parameter", - "text": " flags must be a valid combination of VkSwapchainCreateFlagBitsKHR values" + "text": "flags must be a valid combination of VkSwapchainCreateFlagBitsKHR values", + "page": "vkspec" }, { "vuid": "VUID-VkSwapchainCreateInfoKHR-surface-parameter", - "text": " surface must be a valid VkSurfaceKHR handle" + "text": "surface must be a valid VkSurfaceKHR handle", + "page": "vkspec" }, { "vuid": "VUID-VkSwapchainCreateInfoKHR-imageFormat-parameter", - "text": " imageFormat must be a valid VkFormat value" + "text": "imageFormat must be a valid VkFormat value", + "page": "vkspec" }, { "vuid": "VUID-VkSwapchainCreateInfoKHR-imageColorSpace-parameter", - "text": " imageColorSpace must be a valid VkColorSpaceKHR value" + "text": "imageColorSpace must be a valid VkColorSpaceKHR value", + "page": "vkspec" }, { "vuid": "VUID-VkSwapchainCreateInfoKHR-imageUsage-parameter", - "text": " imageUsage must be a valid combination of VkImageUsageFlagBits values" + "text": "imageUsage must be a valid combination of VkImageUsageFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkSwapchainCreateInfoKHR-imageUsage-requiredbitmask", - "text": " imageUsage must not be 0" + "text": "imageUsage must not be 0", + "page": "vkspec" }, { "vuid": "VUID-VkSwapchainCreateInfoKHR-imageSharingMode-parameter", - "text": " imageSharingMode must be a valid VkSharingMode value" + "text": "imageSharingMode must be a valid VkSharingMode value", + "page": "vkspec" }, { "vuid": "VUID-VkSwapchainCreateInfoKHR-preTransform-parameter", - "text": " preTransform must be a valid VkSurfaceTransformFlagBitsKHR value" + "text": "preTransform must be a valid VkSurfaceTransformFlagBitsKHR value", + "page": "vkspec" }, { "vuid": "VUID-VkSwapchainCreateInfoKHR-compositeAlpha-parameter", - "text": " compositeAlpha must be a valid VkCompositeAlphaFlagBitsKHR value" + "text": "compositeAlpha must be a valid VkCompositeAlphaFlagBitsKHR value", + "page": "vkspec" }, { "vuid": "VUID-VkSwapchainCreateInfoKHR-presentMode-parameter", - "text": " presentMode must be a valid VkPresentModeKHR value" + "text": "presentMode must be a valid VkPresentModeKHR value", + "page": "vkspec" }, { "vuid": "VUID-VkSwapchainCreateInfoKHR-oldSwapchain-parameter", - "text": " If oldSwapchain is not VK_NULL_HANDLE, oldSwapchain must be a valid VkSwapchainKHR handle" + "text": "If oldSwapchain is not VK_NULL_HANDLE, oldSwapchain must be a valid VkSwapchainKHR handle", + "page": "vkspec" }, { "vuid": "VUID-VkSwapchainCreateInfoKHR-commonparent", - "text": " Both of oldSwapchain, and surface that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkInstance" + "text": "Both of oldSwapchain, and surface that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkInstance", + "page": "vkspec" } ] }, @@ -63402,15 +82046,18 @@ "core": [ { "vuid": "VUID-VkDeviceGroupSwapchainCreateInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceGroupSwapchainCreateInfoKHR-modes-parameter", - "text": " modes must be a valid combination of VkDeviceGroupPresentModeFlagBitsKHR values" + "text": "modes must be a valid combination of VkDeviceGroupPresentModeFlagBitsKHR values", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceGroupSwapchainCreateInfoKHR-modes-requiredbitmask", - "text": " modes must not be 0" + "text": "modes must not be 0", + "page": "vkspec" } ] }, @@ -63418,11 +82065,13 @@ "core": [ { "vuid": "VUID-VkSwapchainDisplayNativeHdrCreateInfoAMD-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD" + "text": "sType must be VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD", + "page": "vkspec" }, { "vuid": "VUID-VkSwapchainDisplayNativeHdrCreateInfoAMD-localDimmingEnable-04449", - "text": " It is only valid to set localDimmingEnable to VK_TRUE if VkDisplayNativeHdrSurfaceCapabilitiesAMD::localDimmingSupport is supported" + "text": "It is only valid to set localDimmingEnable to VK_TRUE if VkDisplayNativeHdrSurfaceCapabilitiesAMD::localDimmingSupport is supported", + "page": "vkspec" } ] }, @@ -63430,19 +82079,23 @@ "core": [ { "vuid": "VUID-vkSetLocalDimmingAMD-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkSetLocalDimmingAMD-swapChain-parameter", - "text": " swapChain must be a valid VkSwapchainKHR handle" + "text": "swapChain must be a valid VkSwapchainKHR handle", + "page": "vkspec" }, { "vuid": "VUID-vkSetLocalDimmingAMD-swapChain-parent", - "text": " swapChain must have been created, allocated, or retrieved from device" + "text": "swapChain must have been created, allocated, or retrieved from device", + "page": "vkspec" }, { "vuid": "VUID-vkSetLocalDimmingAMD-localDimmingSupport-04618", - "text": " VkDisplayNativeHdrSurfaceCapabilitiesAMD::localDimmingSupport must be supported" + "text": "VkDisplayNativeHdrSurfaceCapabilitiesAMD::localDimmingSupport must be supported", + "page": "vkspec" } ] }, @@ -63450,15 +82103,18 @@ "core": [ { "vuid": "VUID-VkSwapchainCounterCreateInfoEXT-surfaceCounters-01244", - "text": " The bits in surfaceCounters must be supported by VkSwapchainCreateInfoKHR::surface, as reported by vkGetPhysicalDeviceSurfaceCapabilities2EXT" + "text": "The bits in surfaceCounters must be supported by VkSwapchainCreateInfoKHR::surface, as reported by vkGetPhysicalDeviceSurfaceCapabilities2EXT", + "page": "vkspec" }, { "vuid": "VUID-VkSwapchainCounterCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkSwapchainCounterCreateInfoEXT-surfaceCounters-parameter", - "text": " surfaceCounters must be a valid combination of VkSurfaceCounterFlagBitsEXT values" + "text": "surfaceCounters must be a valid combination of VkSurfaceCounterFlagBitsEXT values", + "page": "vkspec" } ] }, @@ -63466,27 +82122,33 @@ "core": [ { "vuid": "VUID-vkGetSwapchainCounterEXT-swapchain-01245", - "text": " One or more present commands on swapchain must have been processed by the presentation engine" + "text": "One or more present commands on swapchain must have been processed by the presentation engine", + "page": "vkspec" }, { "vuid": "VUID-vkGetSwapchainCounterEXT-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetSwapchainCounterEXT-swapchain-parameter", - "text": " swapchain must be a valid VkSwapchainKHR handle" + "text": "swapchain must be a valid VkSwapchainKHR handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetSwapchainCounterEXT-counter-parameter", - "text": " counter must be a valid VkSurfaceCounterFlagBitsEXT value" + "text": "counter must be a valid VkSurfaceCounterFlagBitsEXT value", + "page": "vkspec" }, { "vuid": "VUID-vkGetSwapchainCounterEXT-pCounterValue-parameter", - "text": " pCounterValue must be a valid pointer to a uint64_t value" + "text": "pCounterValue must be a valid pointer to a uint64_t value", + "page": "vkspec" }, { "vuid": "VUID-vkGetSwapchainCounterEXT-swapchain-parent", - "text": " swapchain must have been created, allocated, or retrieved from device" + "text": "swapchain must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -63494,27 +82156,33 @@ "core": [ { "vuid": "VUID-VkSwapchainPresentModesCreateInfoEXT-None-07762", - "text": " Each entry in pPresentModes must be one of the VkPresentModeKHR values returned by vkGetPhysicalDeviceSurfacePresentModesKHR for the surface" + "text": "Each entry in pPresentModes must be one of the VkPresentModeKHR values returned by vkGetPhysicalDeviceSurfacePresentModesKHR for the surface", + "page": "vkspec" }, { "vuid": "VUID-VkSwapchainPresentModesCreateInfoEXT-pPresentModes-07763", - "text": " The entries in pPresentModes must be a subset of the present modes returned in VkSurfacePresentModeCompatibilityEXT::pPresentModes, given VkSwapchainCreateInfoKHR::presentMode in VkSurfacePresentModeEXT" + "text": "The entries in pPresentModes must be a subset of the present modes returned in VkSurfacePresentModeCompatibilityEXT::pPresentModes, given VkSwapchainCreateInfoKHR::presentMode in VkSurfacePresentModeEXT", + "page": "vkspec" }, { "vuid": "VUID-VkSwapchainPresentModesCreateInfoEXT-presentMode-07764", - "text": " VkSwapchainCreateInfoKHR::presentMode must be included in pPresentModes" + "text": "VkSwapchainCreateInfoKHR::presentMode must be included in pPresentModes", + "page": "vkspec" }, { "vuid": "VUID-VkSwapchainPresentModesCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkSwapchainPresentModesCreateInfoEXT-pPresentModes-parameter", - "text": " pPresentModes must be a valid pointer to an array of presentModeCount valid VkPresentModeKHR values" + "text": "pPresentModes must be a valid pointer to an array of presentModeCount valid VkPresentModeKHR values", + "page": "vkspec" }, { "vuid": "VUID-VkSwapchainPresentModesCreateInfoEXT-presentModeCount-arraylength", - "text": " presentModeCount must be greater than 0" + "text": "presentModeCount must be greater than 0", + "page": "vkspec" } ] }, @@ -63522,63 +82190,78 @@ "core": [ { "vuid": "VUID-VkSwapchainPresentScalingCreateInfoEXT-presentGravityX-07765", - "text": " If presentGravityX is 0, presentGravityY must be 0" + "text": "If presentGravityX is 0, presentGravityY must be 0", + "page": "vkspec" }, { "vuid": "VUID-VkSwapchainPresentScalingCreateInfoEXT-presentGravityX-07766", - "text": " If presentGravityX is not 0, presentGravityY must not be 0" + "text": "If presentGravityX is not 0, presentGravityY must not be 0", + "page": "vkspec" }, { "vuid": "VUID-VkSwapchainPresentScalingCreateInfoEXT-scalingBehavior-07767", - "text": " scalingBehavior must not have more than one bit set" + "text": "scalingBehavior must not have more than one bit set", + "page": "vkspec" }, { "vuid": "VUID-VkSwapchainPresentScalingCreateInfoEXT-presentGravityX-07768", - "text": " presentGravityX must not have more than one bit set" + "text": "presentGravityX must not have more than one bit set", + "page": "vkspec" }, { "vuid": "VUID-VkSwapchainPresentScalingCreateInfoEXT-presentGravityY-07769", - "text": " presentGravityY must not have more than one bit set" + "text": "presentGravityY must not have more than one bit set", + "page": "vkspec" }, { "vuid": "VUID-VkSwapchainPresentScalingCreateInfoEXT-scalingBehavior-07770", - "text": " scalingBehavior must be a valid scaling method for the surface as returned in VkSurfacePresentScalingCapabilitiesEXT::supportedPresentScaling, given VkSwapchainCreateInfoKHR::presentMode in VkSurfacePresentModeEXT" + "text": "scalingBehavior must be a valid scaling method for the surface as returned in VkSurfacePresentScalingCapabilitiesEXT::supportedPresentScaling, given VkSwapchainCreateInfoKHR::presentMode in VkSurfacePresentModeEXT", + "page": "vkspec" }, { "vuid": "VUID-VkSwapchainPresentScalingCreateInfoEXT-scalingBehavior-07771", - "text": " If the swapchain is created with VkSwapchainPresentModesCreateInfoEXT, scalingBehavior must be a valid scaling method for the surface as returned in VkSurfacePresentScalingCapabilitiesEXT::supportedPresentScaling, given each present mode in VkSwapchainPresentModesCreateInfoEXT::pPresentModes in VkSurfacePresentModeEXT" + "text": "If the swapchain is created with VkSwapchainPresentModesCreateInfoEXT, scalingBehavior must be a valid scaling method for the surface as returned in VkSurfacePresentScalingCapabilitiesEXT::supportedPresentScaling, given each present mode in VkSwapchainPresentModesCreateInfoEXT::pPresentModes in VkSurfacePresentModeEXT", + "page": "vkspec" }, { "vuid": "VUID-VkSwapchainPresentScalingCreateInfoEXT-presentGravityX-07772", - "text": " presentGravityX must be a valid x-axis present gravity for the surface as returned in VkSurfacePresentScalingCapabilitiesEXT::supportedPresentGravityX, given VkSwapchainCreateInfoKHR::presentMode in VkSurfacePresentModeEXT" + "text": "presentGravityX must be a valid x-axis present gravity for the surface as returned in VkSurfacePresentScalingCapabilitiesEXT::supportedPresentGravityX, given VkSwapchainCreateInfoKHR::presentMode in VkSurfacePresentModeEXT", + "page": "vkspec" }, { "vuid": "VUID-VkSwapchainPresentScalingCreateInfoEXT-presentGravityX-07773", - "text": " If the swapchain is created with VkSwapchainPresentModesCreateInfoEXT, presentGravityX must be a valid x-axis present gravity for the surface as returned in VkSurfacePresentScalingCapabilitiesEXT::supportedPresentGravityX, given each present mode in VkSwapchainPresentModesCreateInfoEXT::pPresentModes in VkSurfacePresentModeEXT" + "text": "If the swapchain is created with VkSwapchainPresentModesCreateInfoEXT, presentGravityX must be a valid x-axis present gravity for the surface as returned in VkSurfacePresentScalingCapabilitiesEXT::supportedPresentGravityX, given each present mode in VkSwapchainPresentModesCreateInfoEXT::pPresentModes in VkSurfacePresentModeEXT", + "page": "vkspec" }, { "vuid": "VUID-VkSwapchainPresentScalingCreateInfoEXT-presentGravityY-07774", - "text": " presentGravityY must be a valid y-axis present gravity for the surface as returned in VkSurfacePresentScalingCapabilitiesEXT::supportedPresentGravityY, given VkSwapchainCreateInfoKHR::presentMode in VkSurfacePresentModeEXT" + "text": "presentGravityY must be a valid y-axis present gravity for the surface as returned in VkSurfacePresentScalingCapabilitiesEXT::supportedPresentGravityY, given VkSwapchainCreateInfoKHR::presentMode in VkSurfacePresentModeEXT", + "page": "vkspec" }, { "vuid": "VUID-VkSwapchainPresentScalingCreateInfoEXT-presentGravityY-07775", - "text": " If the swapchain is created with VkSwapchainPresentModesCreateInfoEXT, presentGravityY must be a valid y-axis present gravity for the surface as returned in VkSurfacePresentScalingCapabilitiesEXT::supportedPresentGravityY, given each present mode in VkSwapchainPresentModesCreateInfoEXT::pPresentModes in VkSurfacePresentModeEXT" + "text": "If the swapchain is created with VkSwapchainPresentModesCreateInfoEXT, presentGravityY must be a valid y-axis present gravity for the surface as returned in VkSurfacePresentScalingCapabilitiesEXT::supportedPresentGravityY, given each present mode in VkSwapchainPresentModesCreateInfoEXT::pPresentModes in VkSurfacePresentModeEXT", + "page": "vkspec" }, { "vuid": "VUID-VkSwapchainPresentScalingCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkSwapchainPresentScalingCreateInfoEXT-scalingBehavior-parameter", - "text": " scalingBehavior must be a valid combination of VkPresentScalingFlagBitsEXT values" + "text": "scalingBehavior must be a valid combination of VkPresentScalingFlagBitsEXT values", + "page": "vkspec" }, { "vuid": "VUID-VkSwapchainPresentScalingCreateInfoEXT-presentGravityX-parameter", - "text": " presentGravityX must be a valid combination of VkPresentGravityFlagBitsEXT values" + "text": "presentGravityX must be a valid combination of VkPresentGravityFlagBitsEXT values", + "page": "vkspec" }, { "vuid": "VUID-VkSwapchainPresentScalingCreateInfoEXT-presentGravityY-parameter", - "text": " presentGravityY must be a valid combination of VkPresentGravityFlagBitsEXT values" + "text": "presentGravityY must be a valid combination of VkPresentGravityFlagBitsEXT values", + "page": "vkspec" } ] }, @@ -63586,31 +82269,38 @@ "core": [ { "vuid": "VUID-vkDestroySwapchainKHR-swapchain-01282", - "text": " All uses of presentable images acquired from swapchain must have completed execution" + "text": "All uses of presentable images acquired from swapchain must have completed execution", + "page": "vkspec" }, { "vuid": "VUID-vkDestroySwapchainKHR-swapchain-01283", - "text": " If VkAllocationCallbacks were provided when swapchain was created, a compatible set of callbacks must be provided here" + "text": "If VkAllocationCallbacks were provided when swapchain was created, a compatible set of callbacks must be provided here", + "page": "vkspec" }, { "vuid": "VUID-vkDestroySwapchainKHR-swapchain-01284", - "text": " If no VkAllocationCallbacks were provided when swapchain was created, pAllocator must be NULL" + "text": "If no VkAllocationCallbacks were provided when swapchain was created, pAllocator must be NULL", + "page": "vkspec" }, { "vuid": "VUID-vkDestroySwapchainKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroySwapchainKHR-swapchain-parameter", - "text": " If swapchain is not VK_NULL_HANDLE, swapchain must be a valid VkSwapchainKHR handle" + "text": "If swapchain is not VK_NULL_HANDLE, swapchain must be a valid VkSwapchainKHR handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroySwapchainKHR-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkDestroySwapchainKHR-swapchain-parent", - "text": " If swapchain is a valid handle, it must have been created, allocated, or retrieved from device" + "text": "If swapchain is a valid handle, it must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -63618,23 +82308,28 @@ "core": [ { "vuid": "VUID-vkCreateSharedSwapchainsKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkCreateSharedSwapchainsKHR-pCreateInfos-parameter", - "text": " pCreateInfos must be a valid pointer to an array of swapchainCount valid VkSwapchainCreateInfoKHR structures" + "text": "pCreateInfos must be a valid pointer to an array of swapchainCount valid VkSwapchainCreateInfoKHR structures", + "page": "vkspec" }, { "vuid": "VUID-vkCreateSharedSwapchainsKHR-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateSharedSwapchainsKHR-pSwapchains-parameter", - "text": " pSwapchains must be a valid pointer to an array of swapchainCount VkSwapchainKHR handles" + "text": "pSwapchains must be a valid pointer to an array of swapchainCount VkSwapchainKHR handles", + "page": "vkspec" }, { "vuid": "VUID-vkCreateSharedSwapchainsKHR-swapchainCount-arraylength", - "text": " swapchainCount must be greater than 0" + "text": "swapchainCount must be greater than 0", + "page": "vkspec" } ] }, @@ -63642,23 +82337,28 @@ "core": [ { "vuid": "VUID-vkGetSwapchainImagesKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetSwapchainImagesKHR-swapchain-parameter", - "text": " swapchain must be a valid VkSwapchainKHR handle" + "text": "swapchain must be a valid VkSwapchainKHR handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetSwapchainImagesKHR-pSwapchainImageCount-parameter", - "text": " pSwapchainImageCount must be a valid pointer to a uint32_t value" + "text": "pSwapchainImageCount must be a valid pointer to a uint32_t value", + "page": "vkspec" }, { "vuid": "VUID-vkGetSwapchainImagesKHR-pSwapchainImages-parameter", - "text": " If the value referenced by pSwapchainImageCount is not 0, and pSwapchainImages is not NULL, pSwapchainImages must be a valid pointer to an array of pSwapchainImageCount VkImage handles" + "text": "If the value referenced by pSwapchainImageCount is not 0, and pSwapchainImages is not NULL, pSwapchainImages must be a valid pointer to an array of pSwapchainImageCount VkImage handles", + "page": "vkspec" }, { "vuid": "VUID-vkGetSwapchainImagesKHR-swapchain-parent", - "text": " swapchain must have been created, allocated, or retrieved from device" + "text": "swapchain must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -63666,63 +82366,78 @@ "core": [ { "vuid": "VUID-vkAcquireNextImageKHR-swapchain-01285", - "text": " swapchain must not be in the retired state" + "text": "swapchain must not be in the retired state", + "page": "vkspec" }, { "vuid": "VUID-vkAcquireNextImageKHR-semaphore-01286", - "text": " If semaphore is not VK_NULL_HANDLE it must be unsignaled" + "text": "If semaphore is not VK_NULL_HANDLE it must be unsignaled", + "page": "vkspec" }, { "vuid": "VUID-vkAcquireNextImageKHR-semaphore-01779", - "text": " If semaphore is not VK_NULL_HANDLE it must not have any uncompleted signal or wait operations pending" + "text": "If semaphore is not VK_NULL_HANDLE it must not have any uncompleted signal or wait operations pending", + "page": "vkspec" }, { "vuid": "VUID-vkAcquireNextImageKHR-fence-01287", - "text": " If fence is not VK_NULL_HANDLE it must be unsignaled and must not be associated with any other queue command that has not yet completed execution on that queue" + "text": "If fence is not VK_NULL_HANDLE it must be unsignaled and must not be associated with any other queue command that has not yet completed execution on that queue", + "page": "vkspec" }, { "vuid": "VUID-vkAcquireNextImageKHR-semaphore-01780", - "text": " semaphore and fence must not both be equal to VK_NULL_HANDLE" + "text": "semaphore and fence must not both be equal to VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-vkAcquireNextImageKHR-surface-07783", - "text": " If forward progress cannot be guaranteed for the surface used to create the swapchain member of pAcquireInfo, the timeout member of pAcquireInfo must not be UINT64_MAX" + "text": "If forward progress cannot be guaranteed for the surface used to create the swapchain member of pAcquireInfo, the timeout member of pAcquireInfo must not be UINT64_MAX", + "page": "vkspec" }, { "vuid": "VUID-vkAcquireNextImageKHR-semaphore-03265", - "text": " semaphore must have a VkSemaphoreType of VK_SEMAPHORE_TYPE_BINARY" + "text": "semaphore must have a VkSemaphoreType of VK_SEMAPHORE_TYPE_BINARY", + "page": "vkspec" }, { "vuid": "VUID-vkAcquireNextImageKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkAcquireNextImageKHR-swapchain-parameter", - "text": " swapchain must be a valid VkSwapchainKHR handle" + "text": "swapchain must be a valid VkSwapchainKHR handle", + "page": "vkspec" }, { "vuid": "VUID-vkAcquireNextImageKHR-semaphore-parameter", - "text": " If semaphore is not VK_NULL_HANDLE, semaphore must be a valid VkSemaphore handle" + "text": "If semaphore is not VK_NULL_HANDLE, semaphore must be a valid VkSemaphore handle", + "page": "vkspec" }, { "vuid": "VUID-vkAcquireNextImageKHR-fence-parameter", - "text": " If fence is not VK_NULL_HANDLE, fence must be a valid VkFence handle" + "text": "If fence is not VK_NULL_HANDLE, fence must be a valid VkFence handle", + "page": "vkspec" }, { "vuid": "VUID-vkAcquireNextImageKHR-pImageIndex-parameter", - "text": " pImageIndex must be a valid pointer to a uint32_t value" + "text": "pImageIndex must be a valid pointer to a uint32_t value", + "page": "vkspec" }, { "vuid": "VUID-vkAcquireNextImageKHR-swapchain-parent", - "text": " swapchain must have been created, allocated, or retrieved from device" + "text": "swapchain must have been created, allocated, or retrieved from device", + "page": "vkspec" }, { "vuid": "VUID-vkAcquireNextImageKHR-semaphore-parent", - "text": " If semaphore is a valid handle, it must have been created, allocated, or retrieved from device" + "text": "If semaphore is a valid handle, it must have been created, allocated, or retrieved from device", + "page": "vkspec" }, { "vuid": "VUID-vkAcquireNextImageKHR-fence-parent", - "text": " If fence is a valid handle, it must have been created, allocated, or retrieved from device" + "text": "If fence is a valid handle, it must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -63730,19 +82445,23 @@ "core": [ { "vuid": "VUID-vkAcquireNextImage2KHR-surface-07784", - "text": " If forward progress cannot be guaranteed for the surface used to create swapchain, the timeout member of pAcquireInfo must not be UINT64_MAX" + "text": "If forward progress cannot be guaranteed for the surface used to create swapchain, the timeout member of pAcquireInfo must not be UINT64_MAX", + "page": "vkspec" }, { "vuid": "VUID-vkAcquireNextImage2KHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkAcquireNextImage2KHR-pAcquireInfo-parameter", - "text": " pAcquireInfo must be a valid pointer to a valid VkAcquireNextImageInfoKHR structure" + "text": "pAcquireInfo must be a valid pointer to a valid VkAcquireNextImageInfoKHR structure", + "page": "vkspec" }, { "vuid": "VUID-vkAcquireNextImage2KHR-pImageIndex-parameter", - "text": " pImageIndex must be a valid pointer to a uint32_t value" + "text": "pImageIndex must be a valid pointer to a uint32_t value", + "page": "vkspec" } ] }, @@ -63750,59 +82469,73 @@ "core": [ { "vuid": "VUID-VkAcquireNextImageInfoKHR-swapchain-01675", - "text": " swapchain must not be in the retired state" + "text": "swapchain must not be in the retired state", + "page": "vkspec" }, { "vuid": "VUID-VkAcquireNextImageInfoKHR-semaphore-01288", - "text": " If semaphore is not VK_NULL_HANDLE it must be unsignaled" + "text": "If semaphore is not VK_NULL_HANDLE it must be unsignaled", + "page": "vkspec" }, { "vuid": "VUID-VkAcquireNextImageInfoKHR-semaphore-01781", - "text": " If semaphore is not VK_NULL_HANDLE it must not have any uncompleted signal or wait operations pending" + "text": "If semaphore is not VK_NULL_HANDLE it must not have any uncompleted signal or wait operations pending", + "page": "vkspec" }, { "vuid": "VUID-VkAcquireNextImageInfoKHR-fence-01289", - "text": " If fence is not VK_NULL_HANDLE it must be unsignaled and must not be associated with any other queue command that has not yet completed execution on that queue" + "text": "If fence is not VK_NULL_HANDLE it must be unsignaled and must not be associated with any other queue command that has not yet completed execution on that queue", + "page": "vkspec" }, { "vuid": "VUID-VkAcquireNextImageInfoKHR-semaphore-01782", - "text": " semaphore and fence must not both be equal to VK_NULL_HANDLE" + "text": "semaphore and fence must not both be equal to VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-VkAcquireNextImageInfoKHR-deviceMask-01290", - "text": " deviceMask must be a valid device mask" + "text": "deviceMask must be a valid device mask", + "page": "vkspec" }, { "vuid": "VUID-VkAcquireNextImageInfoKHR-deviceMask-01291", - "text": " deviceMask must not be zero" + "text": "deviceMask must not be zero", + "page": "vkspec" }, { "vuid": "VUID-VkAcquireNextImageInfoKHR-semaphore-03266", - "text": " semaphore must have a VkSemaphoreType of VK_SEMAPHORE_TYPE_BINARY" + "text": "semaphore must have a VkSemaphoreType of VK_SEMAPHORE_TYPE_BINARY", + "page": "vkspec" }, { "vuid": "VUID-VkAcquireNextImageInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkAcquireNextImageInfoKHR-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkAcquireNextImageInfoKHR-swapchain-parameter", - "text": " swapchain must be a valid VkSwapchainKHR handle" + "text": "swapchain must be a valid VkSwapchainKHR handle", + "page": "vkspec" }, { "vuid": "VUID-VkAcquireNextImageInfoKHR-semaphore-parameter", - "text": " If semaphore is not VK_NULL_HANDLE, semaphore must be a valid VkSemaphore handle" + "text": "If semaphore is not VK_NULL_HANDLE, semaphore must be a valid VkSemaphore handle", + "page": "vkspec" }, { "vuid": "VUID-VkAcquireNextImageInfoKHR-fence-parameter", - "text": " If fence is not VK_NULL_HANDLE, fence must be a valid VkFence handle" + "text": "If fence is not VK_NULL_HANDLE, fence must be a valid VkFence handle", + "page": "vkspec" }, { "vuid": "VUID-VkAcquireNextImageInfoKHR-commonparent", - "text": " Each of fence, semaphore, and swapchain that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" + "text": "Each of fence, semaphore, and swapchain that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -63810,83 +82543,107 @@ "core": [ { "vuid": "VUID-vkQueuePresentKHR-pSwapchains-01292", - "text": " Each element of pSwapchains member of pPresentInfo must be a swapchain that is created for a surface for which presentation is supported from queue as determined using a call to vkGetPhysicalDeviceSurfaceSupportKHR" + "text": "Each element of pSwapchains member of pPresentInfo must be a swapchain that is created for a surface for which presentation is supported from queue as determined using a call to vkGetPhysicalDeviceSurfaceSupportKHR", + "page": "vkspec" }, { "vuid": "VUID-vkQueuePresentKHR-pSwapchains-01293", - "text": " If more than one member of pSwapchains was created from a display surface, all display surfaces referenced that refer to the same display must use the same display mode" + "text": "If more than one member of pSwapchains was created from a display surface, all display surfaces referenced that refer to the same display must use the same display mode", + "page": "vkspec" }, { "vuid": "VUID-vkQueuePresentKHR-pWaitSemaphores-01294", - "text": " When a semaphore wait operation referring to a binary semaphore defined by the elements of the pWaitSemaphores member of pPresentInfo executes on queue, there must be no other queues waiting on the same semaphore" + "text": "When a semaphore wait operation referring to a binary semaphore defined by the elements of the pWaitSemaphores member of pPresentInfo executes on queue, there must be no other queues waiting on the same semaphore", + "page": "vkspec" }, { "vuid": "VUID-vkQueuePresentKHR-pWaitSemaphores-03267", - "text": " All elements of the pWaitSemaphores member of pPresentInfo must be created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_BINARY" + "text": "All elements of the pWaitSemaphores member of pPresentInfo must be created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_BINARY", + "page": "vkspec" }, { "vuid": "VUID-vkQueuePresentKHR-pWaitSemaphores-03268", - "text": " All elements of the pWaitSemaphores member of pPresentInfo must reference a semaphore signal operation that has been submitted for execution and any semaphore signal operations on which it depends (if any) must have also been submitted for execution" + "text": "All elements of the pWaitSemaphores member of pPresentInfo must reference a semaphore signal operation that has been submitted for execution and any semaphore signal operations on which it depends (if any) must have also been submitted for execution", + "page": "vkspec" }, { "vuid": "VUID-vkQueuePresentKHR-queue-parameter", - "text": " queue must be a valid VkQueue handle" + "text": "queue must be a valid VkQueue handle", + "page": "vkspec" }, { "vuid": "VUID-vkQueuePresentKHR-pPresentInfo-parameter", - "text": " pPresentInfo must be a valid pointer to a valid VkPresentInfoKHR structure" + "text": "pPresentInfo must be a valid pointer to a valid VkPresentInfoKHR structure", + "page": "vkspec" } ] }, "VkPresentInfoKHR": { "core": [ + { + "vuid": "VUID-VkPresentInfoKHR-pSwapchain-09231", + "text": "Elements of pSwapchain must be unique", + "page": "vkspec" + }, { "vuid": "VUID-VkPresentInfoKHR-pImageIndices-01430", - "text": " Each element of pImageIndices must be the index of a presentable image acquired from the swapchain specified by the corresponding element of the pSwapchains array, and the presented image subresource must be in the VK_IMAGE_LAYOUT_PRESENT_SRC_KHR or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR layout at the time the operation is executed on a VkDevice" + "text": "Each element of pImageIndices must be the index of a presentable image acquired from the swapchain specified by the corresponding element of the pSwapchains array, and the presented image subresource must be in the VK_IMAGE_LAYOUT_PRESENT_SRC_KHR or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR layout at the time the operation is executed on a VkDevice", + "page": "vkspec" }, { "vuid": "VUID-VkPresentInfoKHR-pNext-06235", - "text": " If a VkPresentIdKHR structure is included in the pNext chain, and the presentId feature is not enabled, each presentIds entry in that structure must be NULL" + "text": "If a VkPresentIdKHR structure is included in the pNext chain, and the presentId feature is not enabled, each presentIds entry in that structure must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkPresentInfoKHR-pSwapchains-09199", - "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" + "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": "vkspec" }, { "vuid": "VUID-VkPresentInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PRESENT_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_PRESENT_INFO_KHR", + "page": "vkspec" }, { "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, VkPresentFrameTokenGGP, VkPresentIdKHR, VkPresentRegionsKHR, VkPresentTimesInfoGOOGLE, 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, VkPresentFrameTokenGGP, VkPresentIdKHR, VkPresentRegionsKHR, VkPresentTimesInfoGOOGLE, VkSwapchainPresentFenceInfoEXT, or VkSwapchainPresentModeInfoEXT", + "page": "vkspec" }, { "vuid": "VUID-VkPresentInfoKHR-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" }, { "vuid": "VUID-VkPresentInfoKHR-pWaitSemaphores-parameter", - "text": " If waitSemaphoreCount is not 0, pWaitSemaphores must be a valid pointer to an array of waitSemaphoreCount valid VkSemaphore handles" + "text": "If waitSemaphoreCount is not 0, pWaitSemaphores must be a valid pointer to an array of waitSemaphoreCount valid VkSemaphore handles", + "page": "vkspec" }, { "vuid": "VUID-VkPresentInfoKHR-pSwapchains-parameter", - "text": " pSwapchains must be a valid pointer to an array of swapchainCount valid VkSwapchainKHR handles" + "text": "pSwapchains must be a valid pointer to an array of swapchainCount valid VkSwapchainKHR handles", + "page": "vkspec" }, { "vuid": "VUID-VkPresentInfoKHR-pImageIndices-parameter", - "text": " pImageIndices must be a valid pointer to an array of swapchainCount uint32_t values" + "text": "pImageIndices must be a valid pointer to an array of swapchainCount uint32_t values", + "page": "vkspec" }, { "vuid": "VUID-VkPresentInfoKHR-pResults-parameter", - "text": " If pResults is not NULL, pResults must be a valid pointer to an array of swapchainCount VkResult values" + "text": "If pResults is not NULL, pResults must be a valid pointer to an array of swapchainCount VkResult values", + "page": "vkspec" }, { "vuid": "VUID-VkPresentInfoKHR-swapchainCount-arraylength", - "text": " swapchainCount must be greater than 0" + "text": "swapchainCount must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-VkPresentInfoKHR-commonparent", - "text": " Both of the elements of pSwapchains, and the elements of pWaitSemaphores that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of the elements of pSwapchains, and the elements of pWaitSemaphores that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -63894,19 +82651,23 @@ "core": [ { "vuid": "VUID-VkPresentRegionsKHR-swapchainCount-01260", - "text": " swapchainCount must be the same value as VkPresentInfoKHR::swapchainCount, where VkPresentInfoKHR is included in the pNext chain of this VkPresentRegionsKHR structure" + "text": "swapchainCount must be the same value as VkPresentInfoKHR::swapchainCount, where VkPresentInfoKHR is included in the pNext chain of this VkPresentRegionsKHR structure", + "page": "vkspec" }, { "vuid": "VUID-VkPresentRegionsKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkPresentRegionsKHR-pRegions-parameter", - "text": " If pRegions is not NULL, pRegions must be a valid pointer to an array of swapchainCount valid VkPresentRegionKHR structures" + "text": "If pRegions is not NULL, pRegions must be a valid pointer to an array of swapchainCount valid VkPresentRegionKHR structures", + "page": "vkspec" }, { "vuid": "VUID-VkPresentRegionsKHR-swapchainCount-arraylength", - "text": " swapchainCount must be greater than 0" + "text": "swapchainCount must be greater than 0", + "page": "vkspec" } ] }, @@ -63914,7 +82675,8 @@ "core": [ { "vuid": "VUID-VkPresentRegionKHR-pRectangles-parameter", - "text": " If rectangleCount is not 0, and pRectangles is not NULL, pRectangles must be a valid pointer to an array of rectangleCount valid VkRectLayerKHR structures" + "text": "If rectangleCount is not 0, and pRectangles is not NULL, pRectangles must be a valid pointer to an array of rectangleCount valid VkRectLayerKHR structures", + "page": "vkspec" } ] }, @@ -63922,11 +82684,13 @@ "core": [ { "vuid": "VUID-VkRectLayerKHR-offset-04864", - "text": " The sum of offset and extent, after being transformed according to the preTransform member of the VkSwapchainCreateInfoKHR structure, must be no greater than the imageExtent member of the VkSwapchainCreateInfoKHR structure passed to vkCreateSwapchainKHR" + "text": "The sum of offset and extent, after being transformed according to the preTransform member of the VkSwapchainCreateInfoKHR structure, must be no greater than the imageExtent member of the VkSwapchainCreateInfoKHR structure passed to vkCreateSwapchainKHR", + "page": "vkspec" }, { "vuid": "VUID-VkRectLayerKHR-layer-01262", - "text": " layer must be less than the imageArrayLayers member of the VkSwapchainCreateInfoKHR structure passed to vkCreateSwapchainKHR" + "text": "layer must be less than the imageArrayLayers member of the VkSwapchainCreateInfoKHR structure passed to vkCreateSwapchainKHR", + "page": "vkspec" } ] }, @@ -63934,19 +82698,23 @@ "core": [ { "vuid": "VUID-VkDisplayPresentInfoKHR-srcRect-01257", - "text": " srcRect must specify a rectangular region that is a subset of the image being presented" + "text": "srcRect must specify a rectangular region that is a subset of the image being presented", + "page": "vkspec" }, { "vuid": "VUID-VkDisplayPresentInfoKHR-dstRect-01258", - "text": " dstRect must specify a rectangular region that is a subset of the visibleRegion parameter of the display mode the swapchain being presented uses" + "text": "dstRect must specify a rectangular region that is a subset of the visibleRegion parameter of the display mode the swapchain being presented uses", + "page": "vkspec" }, { "vuid": "VUID-VkDisplayPresentInfoKHR-persistentContent-01259", - "text": " If the persistentContent member of the VkDisplayPropertiesKHR structure returned by vkGetPhysicalDeviceDisplayPropertiesKHR for the display the present operation targets is VK_FALSE, then persistent must be VK_FALSE" + "text": "If the persistentContent member of the VkDisplayPropertiesKHR structure returned by vkGetPhysicalDeviceDisplayPropertiesKHR for the display the present operation targets is VK_FALSE, then persistent must be VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-VkDisplayPresentInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR", + "page": "vkspec" } ] }, @@ -63954,43 +82722,53 @@ "core": [ { "vuid": "VUID-VkDeviceGroupPresentInfoKHR-swapchainCount-01297", - "text": " swapchainCount must equal 0 or VkPresentInfoKHR::swapchainCount" + "text": "swapchainCount must equal 0 or VkPresentInfoKHR::swapchainCount", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceGroupPresentInfoKHR-mode-01298", - "text": " If mode is VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR, then each element of pDeviceMasks must have exactly one bit set, and the corresponding element of VkDeviceGroupPresentCapabilitiesKHR::presentMask must be non-zero" + "text": "If mode is VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR, then each element of pDeviceMasks must have exactly one bit set, and the corresponding element of VkDeviceGroupPresentCapabilitiesKHR::presentMask must be non-zero", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceGroupPresentInfoKHR-mode-01299", - "text": " If mode is VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR, then each element of pDeviceMasks must have exactly one bit set, and some physical device in the logical device must include that bit in its VkDeviceGroupPresentCapabilitiesKHR::presentMask" + "text": "If mode is VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR, then each element of pDeviceMasks must have exactly one bit set, and some physical device in the logical device must include that bit in its VkDeviceGroupPresentCapabilitiesKHR::presentMask", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceGroupPresentInfoKHR-mode-01300", - "text": " If mode is VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR, then each element of pDeviceMasks must have a value for which all set bits are set in one of the elements of VkDeviceGroupPresentCapabilitiesKHR::presentMask" + "text": "If mode is VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR, then each element of pDeviceMasks must have a value for which all set bits are set in one of the elements of VkDeviceGroupPresentCapabilitiesKHR::presentMask", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceGroupPresentInfoKHR-mode-01301", - "text": " If mode is VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR, then for each bit set in each element of pDeviceMasks, the corresponding element of VkDeviceGroupPresentCapabilitiesKHR::presentMask must be non-zero" + "text": "If mode is VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR, then for each bit set in each element of pDeviceMasks, the corresponding element of VkDeviceGroupPresentCapabilitiesKHR::presentMask must be non-zero", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceGroupPresentInfoKHR-pDeviceMasks-01302", - "text": " The value of each element of pDeviceMasks must be equal to the device mask passed in VkAcquireNextImageInfoKHR::deviceMask when the image index was last acquired" + "text": "The value of each element of pDeviceMasks must be equal to the device mask passed in VkAcquireNextImageInfoKHR::deviceMask when the image index was last acquired", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceGroupPresentInfoKHR-mode-01303", - "text": " mode must have exactly one bit set, and that bit must have been included in VkDeviceGroupSwapchainCreateInfoKHR::modes" + "text": "mode must have exactly one bit set, and that bit must have been included in VkDeviceGroupSwapchainCreateInfoKHR::modes", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceGroupPresentInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceGroupPresentInfoKHR-pDeviceMasks-parameter", - "text": " If swapchainCount is not 0, pDeviceMasks must be a valid pointer to an array of swapchainCount uint32_t values" + "text": "If swapchainCount is not 0, pDeviceMasks must be a valid pointer to an array of swapchainCount uint32_t values", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceGroupPresentInfoKHR-mode-parameter", - "text": " mode must be a valid VkDeviceGroupPresentModeFlagBitsKHR value" + "text": "mode must be a valid VkDeviceGroupPresentModeFlagBitsKHR value", + "page": "vkspec" } ] }, @@ -63998,19 +82776,23 @@ "core": [ { "vuid": "VUID-VkPresentTimesInfoGOOGLE-swapchainCount-01247", - "text": " swapchainCount must be the same value as VkPresentInfoKHR::swapchainCount, where VkPresentInfoKHR is included in the pNext chain of this VkPresentTimesInfoGOOGLE structure" + "text": "swapchainCount must be the same value as VkPresentInfoKHR::swapchainCount, where VkPresentInfoKHR is included in the pNext chain of this VkPresentTimesInfoGOOGLE structure", + "page": "vkspec" }, { "vuid": "VUID-VkPresentTimesInfoGOOGLE-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE" + "text": "sType must be VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE", + "page": "vkspec" }, { "vuid": "VUID-VkPresentTimesInfoGOOGLE-pTimes-parameter", - "text": " If pTimes is not NULL, pTimes must be a valid pointer to an array of swapchainCount VkPresentTimeGOOGLE structures" + "text": "If pTimes is not NULL, pTimes must be a valid pointer to an array of swapchainCount VkPresentTimeGOOGLE structures", + "page": "vkspec" }, { "vuid": "VUID-VkPresentTimesInfoGOOGLE-swapchainCount-arraylength", - "text": " swapchainCount must be greater than 0" + "text": "swapchainCount must be greater than 0", + "page": "vkspec" } ] }, @@ -64018,23 +82800,28 @@ "core": [ { "vuid": "VUID-VkPresentIdKHR-swapchainCount-04998", - "text": " swapchainCount must be the same value as VkPresentInfoKHR::swapchainCount, where this VkPresentIdKHR is in the pNext chain of the VkPresentInfoKHR structure" + "text": "swapchainCount must be the same value as VkPresentInfoKHR::swapchainCount, where this VkPresentIdKHR is in the pNext chain of the VkPresentInfoKHR structure", + "page": "vkspec" }, { "vuid": "VUID-VkPresentIdKHR-presentIds-04999", - "text": " Each presentIds entry must be greater than any previous presentIds entry passed for the associated pSwapchains entry" + "text": "Each presentIds entry must be greater than any previous presentIds entry passed for the associated pSwapchains entry", + "page": "vkspec" }, { "vuid": "VUID-VkPresentIdKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PRESENT_ID_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_PRESENT_ID_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkPresentIdKHR-pPresentIds-parameter", - "text": " If pPresentIds is not NULL, pPresentIds must be a valid pointer to an array of swapchainCount uint64_t values" + "text": "If pPresentIds is not NULL, pPresentIds must be a valid pointer to an array of swapchainCount uint64_t values", + "page": "vkspec" }, { "vuid": "VUID-VkPresentIdKHR-swapchainCount-arraylength", - "text": " swapchainCount must be greater than 0" + "text": "swapchainCount must be greater than 0", + "page": "vkspec" } ] }, @@ -64042,23 +82829,28 @@ "core": [ { "vuid": "VUID-vkWaitForPresentKHR-swapchain-04997", - "text": " swapchain must not be in the retired state" + "text": "swapchain must not be in the retired state", + "page": "vkspec" }, { "vuid": "VUID-vkWaitForPresentKHR-presentWait-06234", - "text": " The presentWait feature must be enabled" + "text": "The presentWait feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkWaitForPresentKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkWaitForPresentKHR-swapchain-parameter", - "text": " swapchain must be a valid VkSwapchainKHR handle" + "text": "swapchain must be a valid VkSwapchainKHR handle", + "page": "vkspec" }, { "vuid": "VUID-vkWaitForPresentKHR-swapchain-parent", - "text": " swapchain must have been created, allocated, or retrieved from device" + "text": "swapchain must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -64066,11 +82858,13 @@ "core": [ { "vuid": "VUID-VkPresentFrameTokenGGP-frameToken-02680", - "text": " frameToken must be a valid GgpFrameToken" + "text": "frameToken must be a valid GgpFrameToken", + "page": "vkspec" }, { "vuid": "VUID-VkPresentFrameTokenGGP-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP" + "text": "sType must be VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP", + "page": "vkspec" } ] }, @@ -64078,23 +82872,28 @@ "core": [ { "vuid": "VUID-VkSwapchainPresentModeInfoEXT-swapchainCount-07760", - "text": " swapchainCount must be equal to VkPresentInfoKHR::swapchainCount" + "text": "swapchainCount must be equal to VkPresentInfoKHR::swapchainCount", + "page": "vkspec" }, { "vuid": "VUID-VkSwapchainPresentModeInfoEXT-pPresentModes-07761", - "text": " Each entry in pPresentModes must be a presentation mode specified in VkSwapchainPresentModesCreateInfoEXT::pPresentModes when creating the entry’s corresponding swapchain" + "text": "Each entry in pPresentModes must be a presentation mode specified in VkSwapchainPresentModesCreateInfoEXT::pPresentModes when creating the entry’s corresponding swapchain", + "page": "vkspec" }, { "vuid": "VUID-VkSwapchainPresentModeInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkSwapchainPresentModeInfoEXT-pPresentModes-parameter", - "text": " pPresentModes must be a valid pointer to an array of swapchainCount valid VkPresentModeKHR values" + "text": "pPresentModes must be a valid pointer to an array of swapchainCount valid VkPresentModeKHR values", + "page": "vkspec" }, { "vuid": "VUID-VkSwapchainPresentModeInfoEXT-swapchainCount-arraylength", - "text": " swapchainCount must be greater than 0" + "text": "swapchainCount must be greater than 0", + "page": "vkspec" } ] }, @@ -64102,27 +82901,33 @@ "core": [ { "vuid": "VUID-VkSwapchainPresentFenceInfoEXT-swapchainCount-07757", - "text": " swapchainCount must be equal to VkPresentInfoKHR::swapchainCount" + "text": "swapchainCount must be equal to VkPresentInfoKHR::swapchainCount", + "page": "vkspec" }, { "vuid": "VUID-VkSwapchainPresentFenceInfoEXT-pFences-07758", - "text": " Each element of pFences must be unsignaled" + "text": "Each element of pFences must be unsignaled", + "page": "vkspec" }, { "vuid": "VUID-VkSwapchainPresentFenceInfoEXT-pFences-07759", - "text": " Each element of pFences must not be associated with any other queue command that has not yet completed execution on that queue" + "text": "Each element of pFences must not be associated with any other queue command that has not yet completed execution on that queue", + "page": "vkspec" }, { "vuid": "VUID-VkSwapchainPresentFenceInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkSwapchainPresentFenceInfoEXT-pFences-parameter", - "text": " pFences must be a valid pointer to an array of swapchainCount valid VkFence handles" + "text": "pFences must be a valid pointer to an array of swapchainCount valid VkFence handles", + "page": "vkspec" }, { "vuid": "VUID-VkSwapchainPresentFenceInfoEXT-swapchainCount-arraylength", - "text": " swapchainCount must be greater than 0" + "text": "swapchainCount must be greater than 0", + "page": "vkspec" } ] }, @@ -64130,11 +82935,13 @@ "core": [ { "vuid": "VUID-vkReleaseSwapchainImagesEXT-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkReleaseSwapchainImagesEXT-pReleaseInfo-parameter", - "text": " pReleaseInfo must be a valid pointer to a valid VkReleaseSwapchainImagesInfoEXT structure" + "text": "pReleaseInfo must be a valid pointer to a valid VkReleaseSwapchainImagesInfoEXT structure", + "page": "vkspec" } ] }, @@ -64142,31 +82949,38 @@ "core": [ { "vuid": "VUID-VkReleaseSwapchainImagesInfoEXT-pImageIndices-07785", - "text": " Each element of pImageIndices must be the index of a presentable image acquired from the swapchain specified by swapchain" + "text": "Each element of pImageIndices must be the index of a presentable image acquired from the swapchain specified by swapchain", + "page": "vkspec" }, { "vuid": "VUID-VkReleaseSwapchainImagesInfoEXT-pImageIndices-07786", - "text": " All uses of presentable images identified by elements of pImageIndices must have completed execution" + "text": "All uses of presentable images identified by elements of pImageIndices must have completed execution", + "page": "vkspec" }, { "vuid": "VUID-VkReleaseSwapchainImagesInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkReleaseSwapchainImagesInfoEXT-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkReleaseSwapchainImagesInfoEXT-swapchain-parameter", - "text": " swapchain must be a valid VkSwapchainKHR handle" + "text": "swapchain must be a valid VkSwapchainKHR handle", + "page": "vkspec" }, { "vuid": "VUID-VkReleaseSwapchainImagesInfoEXT-pImageIndices-parameter", - "text": " pImageIndices must be a valid pointer to an array of imageIndexCount uint32_t values" + "text": "pImageIndices must be a valid pointer to an array of imageIndexCount uint32_t values", + "page": "vkspec" }, { "vuid": "VUID-VkReleaseSwapchainImagesInfoEXT-imageIndexCount-arraylength", - "text": " imageIndexCount must be greater than 0" + "text": "imageIndexCount must be greater than 0", + "page": "vkspec" } ] }, @@ -64174,23 +82988,28 @@ "core": [ { "vuid": "VUID-vkSetHdrMetadataEXT-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkSetHdrMetadataEXT-pSwapchains-parameter", - "text": " pSwapchains must be a valid pointer to an array of swapchainCount valid VkSwapchainKHR handles" + "text": "pSwapchains must be a valid pointer to an array of swapchainCount valid VkSwapchainKHR handles", + "page": "vkspec" }, { "vuid": "VUID-vkSetHdrMetadataEXT-pMetadata-parameter", - "text": " pMetadata must be a valid pointer to an array of swapchainCount valid VkHdrMetadataEXT structures" + "text": "pMetadata must be a valid pointer to an array of swapchainCount valid VkHdrMetadataEXT structures", + "page": "vkspec" }, { "vuid": "VUID-vkSetHdrMetadataEXT-swapchainCount-arraylength", - "text": " swapchainCount must be greater than 0" + "text": "swapchainCount must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-vkSetHdrMetadataEXT-pSwapchains-parent", - "text": " Each element of pSwapchains must have been created, allocated, or retrieved from device" + "text": "Each element of pSwapchains must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -64198,11 +83017,13 @@ "core": [ { "vuid": "VUID-VkHdrMetadataEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_HDR_METADATA_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_HDR_METADATA_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkHdrMetadataEXT-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" } ] }, @@ -64210,7 +83031,8 @@ "core": [ { "vuid": "VUID-VkSwapchainPresentBarrierCreateInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV" + "text": "sType must be VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV", + "page": "vkspec" } ] }, @@ -64218,15 +83040,18 @@ "core": [ { "vuid": "VUID-vkCreateDeferredOperationKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkCreateDeferredOperationKHR-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateDeferredOperationKHR-pDeferredOperation-parameter", - "text": " pDeferredOperation must be a valid pointer to a VkDeferredOperationKHR handle" + "text": "pDeferredOperation must be a valid pointer to a VkDeferredOperationKHR handle", + "page": "vkspec" } ] }, @@ -64234,15 +83059,18 @@ "core": [ { "vuid": "VUID-vkDeferredOperationJoinKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkDeferredOperationJoinKHR-operation-parameter", - "text": " operation must be a valid VkDeferredOperationKHR handle" + "text": "operation must be a valid VkDeferredOperationKHR handle", + "page": "vkspec" }, { "vuid": "VUID-vkDeferredOperationJoinKHR-operation-parent", - "text": " operation must have been created, allocated, or retrieved from device" + "text": "operation must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -64250,31 +83078,38 @@ "core": [ { "vuid": "VUID-vkDestroyDeferredOperationKHR-operation-03434", - "text": " If VkAllocationCallbacks were provided when operation was created, a compatible set of callbacks must be provided here" + "text": "If VkAllocationCallbacks were provided when operation was created, a compatible set of callbacks must be provided here", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyDeferredOperationKHR-operation-03435", - "text": " If no VkAllocationCallbacks were provided when operation was created, pAllocator must be NULL" + "text": "If no VkAllocationCallbacks were provided when operation was created, pAllocator must be NULL", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyDeferredOperationKHR-operation-03436", - "text": " operation must be completed" + "text": "operation must be completed", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyDeferredOperationKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyDeferredOperationKHR-operation-parameter", - "text": " If operation is not VK_NULL_HANDLE, operation must be a valid VkDeferredOperationKHR handle" + "text": "If operation is not VK_NULL_HANDLE, operation must be a valid VkDeferredOperationKHR handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyDeferredOperationKHR-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyDeferredOperationKHR-operation-parent", - "text": " If operation is a valid handle, it must have been created, allocated, or retrieved from device" + "text": "If operation is a valid handle, it must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -64282,15 +83117,18 @@ "core": [ { "vuid": "VUID-vkGetDeferredOperationMaxConcurrencyKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetDeferredOperationMaxConcurrencyKHR-operation-parameter", - "text": " operation must be a valid VkDeferredOperationKHR handle" + "text": "operation must be a valid VkDeferredOperationKHR handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetDeferredOperationMaxConcurrencyKHR-operation-parent", - "text": " operation must have been created, allocated, or retrieved from device" + "text": "operation must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -64298,15 +83136,18 @@ "core": [ { "vuid": "VUID-vkGetDeferredOperationResultKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetDeferredOperationResultKHR-operation-parameter", - "text": " operation must be a valid VkDeferredOperationKHR handle" + "text": "operation must be a valid VkDeferredOperationKHR handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetDeferredOperationResultKHR-operation-parent", - "text": " operation must have been created, allocated, or retrieved from device" + "text": "operation must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -64314,23 +83155,28 @@ "core": [ { "vuid": "VUID-vkCreatePrivateDataSlot-privateData-04564", - "text": " The privateData feature must be enabled" + "text": "The privateData feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCreatePrivateDataSlot-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkCreatePrivateDataSlot-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkPrivateDataSlotCreateInfo structure" + "text": "pCreateInfo must be a valid pointer to a valid VkPrivateDataSlotCreateInfo structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreatePrivateDataSlot-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreatePrivateDataSlot-pPrivateDataSlot-parameter", - "text": " pPrivateDataSlot must be a valid pointer to a VkPrivateDataSlot handle" + "text": "pPrivateDataSlot must be a valid pointer to a VkPrivateDataSlot handle", + "page": "vkspec" } ] }, @@ -64338,15 +83184,18 @@ "core": [ { "vuid": "VUID-VkPrivateDataSlotCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkPrivateDataSlotCreateInfo-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkPrivateDataSlotCreateInfo-flags-zerobitmask", - "text": " flags must be 0" + "text": "flags must be 0", + "page": "vkspec" } ] }, @@ -64354,27 +83203,33 @@ "core": [ { "vuid": "VUID-vkDestroyPrivateDataSlot-privateDataSlot-04062", - "text": " If VkAllocationCallbacks were provided when privateDataSlot was created, a compatible set of callbacks must be provided here" + "text": "If VkAllocationCallbacks were provided when privateDataSlot was created, a compatible set of callbacks must be provided here", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyPrivateDataSlot-privateDataSlot-04063", - "text": " If no VkAllocationCallbacks were provided when privateDataSlot was created, pAllocator must be NULL" + "text": "If no VkAllocationCallbacks were provided when privateDataSlot was created, pAllocator must be NULL", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyPrivateDataSlot-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyPrivateDataSlot-privateDataSlot-parameter", - "text": " If privateDataSlot is not VK_NULL_HANDLE, privateDataSlot must be a valid VkPrivateDataSlot handle" + "text": "If privateDataSlot is not VK_NULL_HANDLE, privateDataSlot must be a valid VkPrivateDataSlot handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyPrivateDataSlot-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyPrivateDataSlot-privateDataSlot-parent", - "text": " If privateDataSlot is a valid handle, it must have been created, allocated, or retrieved from device" + "text": "If privateDataSlot is a valid handle, it must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -64382,27 +83237,33 @@ "core": [ { "vuid": "VUID-vkSetPrivateData-objectHandle-04016", - "text": " objectHandle must be device or a child of device" + "text": "objectHandle must be device or a child of device", + "page": "vkspec" }, { "vuid": "VUID-vkSetPrivateData-objectHandle-04017", - "text": " objectHandle must be a valid handle to an object of type objectType" + "text": "objectHandle must be a valid handle to an object of type objectType", + "page": "vkspec" }, { "vuid": "VUID-vkSetPrivateData-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkSetPrivateData-objectType-parameter", - "text": " objectType must be a valid VkObjectType value" + "text": "objectType must be a valid VkObjectType value", + "page": "vkspec" }, { "vuid": "VUID-vkSetPrivateData-privateDataSlot-parameter", - "text": " privateDataSlot must be a valid VkPrivateDataSlot handle" + "text": "privateDataSlot must be a valid VkPrivateDataSlot handle", + "page": "vkspec" }, { "vuid": "VUID-vkSetPrivateData-privateDataSlot-parent", - "text": " privateDataSlot must have been created, allocated, or retrieved from device" + "text": "privateDataSlot must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -64410,27 +83271,33 @@ "core": [ { "vuid": "VUID-vkGetPrivateData-objectType-04018", - "text": " objectType must be VK_OBJECT_TYPE_DEVICE, or an object type whose parent is VkDevice" + "text": "objectType must be VK_OBJECT_TYPE_DEVICE, or an object type whose parent is VkDevice", + "page": "vkspec" }, { "vuid": "VUID-vkGetPrivateData-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPrivateData-objectType-parameter", - "text": " objectType must be a valid VkObjectType value" + "text": "objectType must be a valid VkObjectType value", + "page": "vkspec" }, { "vuid": "VUID-vkGetPrivateData-privateDataSlot-parameter", - "text": " privateDataSlot must be a valid VkPrivateDataSlot handle" + "text": "privateDataSlot must be a valid VkPrivateDataSlot handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPrivateData-pData-parameter", - "text": " pData must be a valid pointer to a uint64_t value" + "text": "pData must be a valid pointer to a uint64_t value", + "page": "vkspec" }, { "vuid": "VUID-vkGetPrivateData-privateDataSlot-parent", - "text": " privateDataSlot must have been created, allocated, or retrieved from device" + "text": "privateDataSlot must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -64438,99 +83305,123 @@ "core": [ { "vuid": "VUID-vkCmdBuildAccelerationStructureNV-geometryCount-02241", - "text": " geometryCount must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxGeometryCount" + "text": "geometryCount must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxGeometryCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructureNV-dst-02488", - "text": " dst must have been created with compatible VkAccelerationStructureInfoNV where VkAccelerationStructureInfoNV::type and VkAccelerationStructureInfoNV::flags are identical, VkAccelerationStructureInfoNV::instanceCount and VkAccelerationStructureInfoNV::geometryCount for dst are greater than or equal to the build size and each geometry in VkAccelerationStructureInfoNV::pGeometries for dst has greater than or equal to the number of vertices, indices, and AABBs" + "text": "dst must have been created with compatible VkAccelerationStructureInfoNV where VkAccelerationStructureInfoNV::type and VkAccelerationStructureInfoNV::flags are identical, VkAccelerationStructureInfoNV::instanceCount and VkAccelerationStructureInfoNV::geometryCount for dst are greater than or equal to the build size and each geometry in VkAccelerationStructureInfoNV::pGeometries for dst has greater than or equal to the number of vertices, indices, and AABBs", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructureNV-update-02489", - "text": " If update is VK_TRUE, src must not be VK_NULL_HANDLE" + "text": "If update is VK_TRUE, src must not be VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructureNV-update-02490", - "text": " If update is VK_TRUE, src must have previously been constructed with VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV set in VkAccelerationStructureInfoNV::flags in the original build" + "text": "If update is VK_TRUE, src must have previously been constructed with VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV set in VkAccelerationStructureInfoNV::flags in the original build", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructureNV-update-02491", - "text": " If update is VK_FALSE, the size member of the VkMemoryRequirements structure returned from a call to vkGetAccelerationStructureMemoryRequirementsNV with VkAccelerationStructureMemoryRequirementsInfoNV::accelerationStructure set to dst and VkAccelerationStructureMemoryRequirementsInfoNV::type set to VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV must be less than or equal to the size of scratch minus scratchOffset" + "text": "If update is VK_FALSE, the size member of the VkMemoryRequirements structure returned from a call to vkGetAccelerationStructureMemoryRequirementsNV with VkAccelerationStructureMemoryRequirementsInfoNV::accelerationStructure set to dst and VkAccelerationStructureMemoryRequirementsInfoNV::type set to VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV must be less than or equal to the size of scratch minus scratchOffset", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructureNV-update-02492", - "text": " If update is VK_TRUE, the size member of the VkMemoryRequirements structure returned from a call to vkGetAccelerationStructureMemoryRequirementsNV with VkAccelerationStructureMemoryRequirementsInfoNV::accelerationStructure set to dst and VkAccelerationStructureMemoryRequirementsInfoNV::type set to VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV must be less than or equal to the size of scratch minus scratchOffset" + "text": "If update is VK_TRUE, the size member of the VkMemoryRequirements structure returned from a call to vkGetAccelerationStructureMemoryRequirementsNV with VkAccelerationStructureMemoryRequirementsInfoNV::accelerationStructure set to dst and VkAccelerationStructureMemoryRequirementsInfoNV::type set to VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV must be less than or equal to the size of scratch minus scratchOffset", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructureNV-scratch-03522", - "text": " scratch must have been created with VK_BUFFER_USAGE_RAY_TRACING_BIT_NV usage flag" + "text": "scratch must have been created with VK_BUFFER_USAGE_RAY_TRACING_BIT_NV usage flag", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructureNV-instanceData-03523", - "text": " If instanceData is not VK_NULL_HANDLE, instanceData must have been created with VK_BUFFER_USAGE_RAY_TRACING_BIT_NV usage flag" + "text": "If instanceData is not VK_NULL_HANDLE, instanceData must have been created with VK_BUFFER_USAGE_RAY_TRACING_BIT_NV usage flag", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructureNV-accelerationStructureReference-03786", - "text": " Each VkAccelerationStructureInstanceKHR::accelerationStructureReference value in instanceData must be a valid device address containing a value obtained from vkGetAccelerationStructureHandleNV" + "text": "Each VkAccelerationStructureInstanceKHR::accelerationStructureReference value in instanceData must be a valid device address containing a value obtained from vkGetAccelerationStructureHandleNV", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructureNV-update-03524", - "text": " If update is VK_TRUE, then objects that were previously active must not be made inactive as per Inactive Primitives and Instances" + "text": "If update is VK_TRUE, then objects that were previously active must not be made inactive as per Inactive Primitives and Instances", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructureNV-update-03525", - "text": " If update is VK_TRUE, then objects that were previously inactive must not be made active as per Inactive Primitives and Instances" + "text": "If update is VK_TRUE, then objects that were previously inactive must not be made active as per Inactive Primitives and Instances", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructureNV-update-03526", - "text": " If update is VK_TRUE, the src and dst objects must either be the same object or not have any memory aliasing" + "text": "If update is VK_TRUE, the src and dst objects must either be the same object or not have any memory aliasing", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructureNV-dst-07787", - "text": " dst must be bound completely and contiguously to a single VkDeviceMemory object via vkBindAccelerationStructureMemoryNV" + "text": "dst must be bound completely and contiguously to a single VkDeviceMemory object via vkBindAccelerationStructureMemoryNV", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructureNV-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructureNV-pInfo-parameter", - "text": " pInfo must be a valid pointer to a valid VkAccelerationStructureInfoNV structure" + "text": "pInfo must be a valid pointer to a valid VkAccelerationStructureInfoNV structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructureNV-instanceData-parameter", - "text": " If instanceData is not VK_NULL_HANDLE, instanceData must be a valid VkBuffer handle" + "text": "If instanceData is not VK_NULL_HANDLE, instanceData must be a valid VkBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructureNV-dst-parameter", - "text": " dst must be a valid VkAccelerationStructureNV handle" + "text": "dst must be a valid VkAccelerationStructureNV handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructureNV-src-parameter", - "text": " If src is not VK_NULL_HANDLE, src must be a valid VkAccelerationStructureNV handle" + "text": "If src is not VK_NULL_HANDLE, src must be a valid VkAccelerationStructureNV handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructureNV-scratch-parameter", - "text": " scratch must be a valid VkBuffer handle" + "text": "scratch must be a valid VkBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructureNV-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructureNV-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support compute operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructureNV-renderpass", - "text": " This command must only be called outside of a render pass instance" + "text": "This command must only be called outside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructureNV-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructureNV-commonparent", - "text": " Each of commandBuffer, dst, instanceData, scratch, and src that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" + "text": "Each of commandBuffer, dst, instanceData, scratch, and src that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -64538,291 +83429,363 @@ "core": [ { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-accelerationStructure-08923", - "text": " The VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructure feature must be enabled" + "text": "The VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructure feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-mode-04628", - "text": " The mode member of each element of pInfos must be a valid VkBuildAccelerationStructureModeKHR value" + "text": "The mode member of each element of pInfos must be a valid VkBuildAccelerationStructureModeKHR value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-srcAccelerationStructure-04629", - "text": " If the srcAccelerationStructure member of any element of pInfos is not VK_NULL_HANDLE, the srcAccelerationStructure member must be a valid VkAccelerationStructureKHR handle" + "text": "If the srcAccelerationStructure member of any element of pInfos is not VK_NULL_HANDLE, the srcAccelerationStructure member must be a valid VkAccelerationStructureKHR handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-04630", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its srcAccelerationStructure member must not be VK_NULL_HANDLE" + "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its srcAccelerationStructure member must not be VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03403", - "text": " The srcAccelerationStructure member of any element of pInfos must not be the same acceleration structure as the dstAccelerationStructure member of any other element of pInfos" + "text": "The srcAccelerationStructure member of any element of pInfos must not be the same acceleration structure as the dstAccelerationStructure member of any other element of pInfos", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-dstAccelerationStructure-03698", - "text": " The dstAccelerationStructure member of any element of pInfos must not be the same acceleration structure as the dstAccelerationStructure member of any other element of pInfos" + "text": "The dstAccelerationStructure member of any element of pInfos must not be the same acceleration structure as the dstAccelerationStructure member of any other element of pInfos", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-dstAccelerationStructure-03800", - "text": " The dstAccelerationStructure member of any element of pInfos must be a valid VkAccelerationStructureKHR handle" + "text": "The dstAccelerationStructure member of any element of pInfos must be a valid VkAccelerationStructureKHR handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03699", - "text": " For each element of pInfos, if its type member is VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR, its dstAccelerationStructure member must have been created with a value of VkAccelerationStructureCreateInfoKHR::type equal to either VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR or VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR" + "text": "For each element of pInfos, if its type member is VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR, its dstAccelerationStructure member must have been created with a value of VkAccelerationStructureCreateInfoKHR::type equal to either VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR or VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03700", - "text": " For each element of pInfos, if its type member is VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR, its dstAccelerationStructure member must have been created with a value of VkAccelerationStructureCreateInfoKHR::type equal to either VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR or VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR" + "text": "For each element of pInfos, if its type member is VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR, its dstAccelerationStructure member must have been created with a value of VkAccelerationStructureCreateInfoKHR::type equal to either VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR or VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03663", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, inactive primitives in its srcAccelerationStructure member must not be made active" + "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, inactive primitives in its srcAccelerationStructure member must not be made active", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03664", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, active primitives in its srcAccelerationStructure member must not be made inactive" + "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, active primitives in its srcAccelerationStructure member must not be made inactive", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-None-03407", - "text": " The dstAccelerationStructure member of any element of pInfos must not be referenced by the geometry.instances.data member of any element of pGeometries or ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR in any other element of pInfos" + "text": "The dstAccelerationStructure member of any element of pInfos must not be referenced by the geometry.instances.data member of any element of pGeometries or ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR in any other element of pInfos", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-dstAccelerationStructure-03701", - "text": " The range of memory backing the dstAccelerationStructure member of any element of pInfos that is accessed by this command must not overlap the memory backing the srcAccelerationStructure member of any other element of pInfos with a mode equal to VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, which is accessed by this command" + "text": "The range of memory backing the dstAccelerationStructure member of any element of pInfos that is accessed by this command must not overlap the memory backing the srcAccelerationStructure member of any other element of pInfos with a mode equal to VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, which is accessed by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-dstAccelerationStructure-03702", - "text": " The range of memory backing the dstAccelerationStructure member of any element of pInfos that is accessed by this command must not overlap the memory backing the dstAccelerationStructure member of any other element of pInfos, which is accessed by this command" + "text": "The range of memory backing the dstAccelerationStructure member of any element of pInfos that is accessed by this command must not overlap the memory backing the dstAccelerationStructure member of any other element of pInfos, which is accessed by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-dstAccelerationStructure-03703", - "text": " The range of memory backing the dstAccelerationStructure member of any element of pInfos that is accessed by this command must not overlap the memory backing the scratchData member of any element of pInfos (including the same element), which is accessed by this command" + "text": "The range of memory backing the dstAccelerationStructure member of any element of pInfos that is accessed by this command must not overlap the memory backing the scratchData member of any element of pInfos (including the same element), which is accessed by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-scratchData-03704", - "text": " The range of memory backing the scratchData member of any element of pInfos that is accessed by this command must not overlap the memory backing the scratchData member of any other element of pInfos, which is accessed by this command" + "text": "The range of memory backing the scratchData member of any element of pInfos that is accessed by this command must not overlap the memory backing the scratchData member of any other element of pInfos, which is accessed by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-scratchData-03705", - "text": " The range of memory backing the scratchData member of any element of pInfos that is accessed by this command must not overlap the memory backing the srcAccelerationStructure member of any element of pInfos with a mode equal to VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR (including the same element), which is accessed by this command" + "text": "The range of memory backing the scratchData member of any element of pInfos that is accessed by this command must not overlap the memory backing the srcAccelerationStructure member of any element of pInfos with a mode equal to VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR (including the same element), which is accessed by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-dstAccelerationStructure-03706", - "text": " The range of memory backing the dstAccelerationStructure member of any element of pInfos that is accessed by this command must not overlap the memory backing any acceleration structure referenced by the geometry.instances.data member of any element of pGeometries or ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR in any other element of pInfos, which is accessed by this command" + "text": "The range of memory backing the dstAccelerationStructure member of any element of pInfos that is accessed by this command must not overlap the memory backing any acceleration structure referenced by the geometry.instances.data member of any element of pGeometries or ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR in any other element of pInfos, which is accessed by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03667", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its srcAccelerationStructure member must have previously been constructed with VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR set in VkAccelerationStructureBuildGeometryInfoKHR::flags in the build" + "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its srcAccelerationStructure member must have previously been constructed with VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR set in VkAccelerationStructureBuildGeometryInfoKHR::flags in the build", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03668", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its srcAccelerationStructure and dstAccelerationStructure members must either be the same VkAccelerationStructureKHR, or not have any memory aliasing" + "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its srcAccelerationStructure and dstAccelerationStructure members must either be the same VkAccelerationStructureKHR, or not have any memory aliasing", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03758", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its geometryCount member must have the same value which was specified when srcAccelerationStructure was last built" + "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its geometryCount member must have the same value which was specified when srcAccelerationStructure was last built", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03759", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its flags member must have the same value which was specified when srcAccelerationStructure was last built" + "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its flags member must have the same value which was specified when srcAccelerationStructure was last built", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03760", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its type member must have the same value which was specified when srcAccelerationStructure was last built" + "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its type member must have the same value which was specified when srcAccelerationStructure was last built", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03761", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, its geometryType member must have the same value which was specified when srcAccelerationStructure was last built" + "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, its geometryType member must have the same value which was specified when srcAccelerationStructure was last built", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03762", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, its flags member must have the same value which was specified when srcAccelerationStructure was last built" + "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, its flags member must have the same value which was specified when srcAccelerationStructure was last built", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03763", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, its geometry.triangles.vertexFormat member must have the same value which was specified when srcAccelerationStructure was last built" + "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, its geometry.triangles.vertexFormat member must have the same value which was specified when srcAccelerationStructure was last built", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03764", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, its geometry.triangles.maxVertex member must have the same value which was specified when srcAccelerationStructure was last built" + "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, its geometry.triangles.maxVertex member must have the same value which was specified when srcAccelerationStructure was last built", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03765", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, its geometry.triangles.indexType member must have the same value which was specified when srcAccelerationStructure was last built" + "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, its geometry.triangles.indexType member must have the same value which was specified when srcAccelerationStructure was last built", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03766", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, if its geometry.triangles.transformData address was NULL when srcAccelerationStructure was last built, then it must be NULL" + "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, if its geometry.triangles.transformData address was NULL when srcAccelerationStructure was last built, then it must be NULL", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03767", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, if its geometry.triangles.transformData address was not NULL when srcAccelerationStructure was last built, then it must not be NULL" + "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, if its geometry.triangles.transformData address was not NULL when srcAccelerationStructure was last built, then it must not be NULL", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03768", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, and geometry.triangles.indexType is not VK_INDEX_TYPE_NONE_KHR, then the value of each index referenced must be the same as the corresponding index value when srcAccelerationStructure was last built" + "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, and geometry.triangles.indexType is not VK_INDEX_TYPE_NONE_KHR, then the value of each index referenced must be the same as the corresponding index value when srcAccelerationStructure was last built", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-primitiveCount-03769", - "text": " For each VkAccelerationStructureBuildRangeInfoKHR referenced by this command, its primitiveCount member must have the same value which was specified when srcAccelerationStructure was last built" + "text": "For each VkAccelerationStructureBuildRangeInfoKHR referenced by this command, its primitiveCount member must have the same value which was specified when srcAccelerationStructure was last built", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-firstVertex-03770", - "text": " For each VkAccelerationStructureBuildRangeInfoKHR referenced by this command, if the corresponding geometry uses indices, its firstVertex member must have the same value which was specified when srcAccelerationStructure was last built" + "text": "For each VkAccelerationStructureBuildRangeInfoKHR referenced by this command, if the corresponding geometry uses indices, its firstVertex member must have the same value which was specified when srcAccelerationStructure was last built", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03801", - "text": " For each element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, the corresponding pname:ppBuildRangeInfos[i][j].pname:primitiveCount must be less than or equal to VkPhysicalDeviceAccelerationStructurePropertiesKHR::maxInstanceCount" + "text": "For each element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, the corresponding ppBuildRangeInfos[i][j].primitiveCount must be less than or equal to VkPhysicalDeviceAccelerationStructurePropertiesKHR::maxInstanceCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03707", - "text": " For each element of pInfos, the buffer used to create its dstAccelerationStructure member must be bound to device memory" + "text": "For each element of pInfos, the buffer used to create its dstAccelerationStructure member must be bound to device memory", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03708", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR the buffer used to create its srcAccelerationStructure member must be bound to device memory" + "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR the buffer used to create its srcAccelerationStructure member must be bound to device memory", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03709", - "text": " For each element of pInfos, the buffer used to create each acceleration structure referenced by the geometry.instances.data member of any element of pGeometries or ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR must be bound to device memory" + "text": "For each element of pInfos, the buffer used to create each acceleration structure referenced by the geometry.instances.data member of any element of pGeometries or ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR must be bound to device memory", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03671", - "text": " If pInfos[i].mode is VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR, all addresses between pInfos[i].scratchData.deviceAddress and pInfos[i].scratchData.deviceAddress + N - 1 must be in the buffer device address range of the same buffer, where N is given by the buildScratchSize member of the VkAccelerationStructureBuildSizesInfoKHR structure returned from a call to vkGetAccelerationStructureBuildSizesKHR with an identical VkAccelerationStructureBuildGeometryInfoKHR structure and primitive count" + "text": "If pInfos[i].mode is VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR, all addresses between pInfos[i].scratchData.deviceAddress and pInfos[i].scratchData.deviceAddress + N - 1 must be in the buffer device address range of the same buffer, where N is given by the buildScratchSize member of the VkAccelerationStructureBuildSizesInfoKHR structure returned from a call to vkGetAccelerationStructureBuildSizesKHR with an identical VkAccelerationStructureBuildGeometryInfoKHR structure and primitive count", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03672", - "text": " If pInfos[i].mode is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, all addresses between pInfos[i].scratchData.deviceAddress and pInfos[i].scratchData.deviceAddress + N - 1 must be in the buffer device address range of the same buffer, where N is given by the updateScratchSize member of the VkAccelerationStructureBuildSizesInfoKHR structure returned from a call to vkGetAccelerationStructureBuildSizesKHR with an identical VkAccelerationStructureBuildGeometryInfoKHR structure and primitive count" + "text": "If pInfos[i].mode is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, all addresses between pInfos[i].scratchData.deviceAddress and pInfos[i].scratchData.deviceAddress + N - 1 must be in the buffer device address range of the same buffer, where N is given by the updateScratchSize member of the VkAccelerationStructureBuildSizesInfoKHR structure returned from a call to vkGetAccelerationStructureBuildSizesKHR with an identical VkAccelerationStructureBuildGeometryInfoKHR structure and primitive count", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-geometry-03673", - "text": " The buffers from which the buffer device addresses for all of the geometry.triangles.vertexData, geometry.triangles.indexData, geometry.triangles.transformData, geometry.aabbs.data, and geometry.instances.data members of all pInfos[i].pGeometries and pInfos[i].ppGeometries are queried must have been created with the VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR usage flag" + "text": "The buffers from which the buffer device addresses for all of the geometry.triangles.vertexData, geometry.triangles.indexData, geometry.triangles.transformData, geometry.aabbs.data, and geometry.instances.data members of all pInfos[i].pGeometries and pInfos[i].ppGeometries are queried must have been created with the VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR usage flag", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03674", - "text": " The buffer from which the buffer device address pInfos[i].scratchData.deviceAddress is queried must have been created with VK_BUFFER_USAGE_STORAGE_BUFFER_BIT usage flag" + "text": "The buffer from which the buffer device address pInfos[i].scratchData.deviceAddress is queried must have been created with VK_BUFFER_USAGE_STORAGE_BUFFER_BIT usage flag", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03802", - "text": " For each element of pInfos, its scratchData.deviceAddress member must be a valid device address obtained from vkGetBufferDeviceAddress" + "text": "For each element of pInfos, its scratchData.deviceAddress member must be a valid device address obtained from vkGetBufferDeviceAddress", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03803", - "text": " For each element of pInfos, if scratchData.deviceAddress is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "For each element of pInfos, if scratchData.deviceAddress is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03710", - "text": " For each element of pInfos, its scratchData.deviceAddress member must be a multiple of VkPhysicalDeviceAccelerationStructurePropertiesKHR::minAccelerationStructureScratchOffsetAlignment" + "text": "For each element of pInfos, its scratchData.deviceAddress member must be a multiple of VkPhysicalDeviceAccelerationStructurePropertiesKHR::minAccelerationStructureScratchOffsetAlignment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03804", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, geometry.triangles.vertexData.deviceAddress must be a valid device address obtained from vkGetBufferDeviceAddress" + "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, geometry.triangles.vertexData.deviceAddress must be a valid device address obtained from vkGetBufferDeviceAddress", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03805", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if geometry.triangles.vertexData.deviceAddress is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if geometry.triangles.vertexData.deviceAddress is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03711", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, geometry.triangles.vertexData.deviceAddress must be aligned to the size in bytes of the smallest component of the format in vertexFormat" + "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, geometry.triangles.vertexData.deviceAddress must be aligned to the size in bytes of the smallest component of the format in vertexFormat", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03806", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if geometry.triangles.indexType is not VK_INDEX_TYPE_NONE_KHR, geometry.triangles.indexData.deviceAddress must be a valid device address obtained from vkGetBufferDeviceAddress" + "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if geometry.triangles.indexType is not VK_INDEX_TYPE_NONE_KHR, geometry.triangles.indexData.deviceAddress must be a valid device address obtained from vkGetBufferDeviceAddress", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03807", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if geometry.triangles.indexType is not VK_INDEX_TYPE_NONE_KHR, if geometry.triangles.indexData.deviceAddress is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if geometry.triangles.indexType is not VK_INDEX_TYPE_NONE_KHR, if geometry.triangles.indexData.deviceAddress is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03712", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, and with geometry.triangles.indexType not equal to VK_INDEX_TYPE_NONE_KHR, geometry.triangles.indexData.deviceAddress must be aligned to the size in bytes of the type in indexType" + "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, and with geometry.triangles.indexType not equal to VK_INDEX_TYPE_NONE_KHR, geometry.triangles.indexData.deviceAddress must be aligned to the size in bytes of the type in indexType", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03808", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if geometry.triangles.transformData.deviceAddress is not 0, it must be a valid device address obtained from vkGetBufferDeviceAddress" + "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if geometry.triangles.transformData.deviceAddress is not 0, it must be a valid device address obtained from vkGetBufferDeviceAddress", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03809", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if geometry.triangles.transformData.deviceAddress is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if geometry.triangles.transformData.deviceAddress is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03810", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if geometry.triangles.transformData.deviceAddress is not 0, it must be aligned to 16 bytes" + "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if geometry.triangles.transformData.deviceAddress is not 0, it must be aligned to 16 bytes", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03811", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_AABBS_KHR, geometry.aabbs.data.deviceAddress must be a valid device address obtained from vkGetBufferDeviceAddress" + "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_AABBS_KHR, geometry.aabbs.data.deviceAddress must be a valid device address obtained from vkGetBufferDeviceAddress", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03812", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_AABBS_KHR, if geometry.aabbs.data.deviceAddress is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_AABBS_KHR, if geometry.aabbs.data.deviceAddress is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03714", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_AABBS_KHR, geometry.aabbs.data.deviceAddress must be aligned to 8 bytes" + "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_AABBS_KHR, geometry.aabbs.data.deviceAddress must be aligned to 8 bytes", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03715", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, if geometry.arrayOfPointers is VK_FALSE, geometry.instances.data.deviceAddress must be aligned to 16 bytes" + "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, if geometry.arrayOfPointers is VK_FALSE, geometry.instances.data.deviceAddress must be aligned to 16 bytes", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03716", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, if geometry.arrayOfPointers is VK_TRUE, geometry.instances.data.deviceAddress must be aligned to 8 bytes" + "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, if geometry.arrayOfPointers is VK_TRUE, geometry.instances.data.deviceAddress must be aligned to 8 bytes", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03717", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, if geometry.arrayOfPointers is VK_TRUE, each element of geometry.instances.data.deviceAddress in device memory must be aligned to 16 bytes" + "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, if geometry.arrayOfPointers is VK_TRUE, each element of geometry.instances.data.deviceAddress in device memory must be aligned to 16 bytes", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03813", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, geometry.instances.data.deviceAddress must be a valid device address obtained from vkGetBufferDeviceAddress" + "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, geometry.instances.data.deviceAddress must be a valid device address obtained from vkGetBufferDeviceAddress", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03814", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, if geometry.instances.data.deviceAddress is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, if geometry.instances.data.deviceAddress is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-06707", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, each VkAccelerationStructureInstanceKHR::accelerationStructureReference value in geometry.instances.data.deviceAddress must be a valid device address containing a value obtained from vkGetAccelerationStructureDeviceAddressKHR or 0" + "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, each VkAccelerationStructureInstanceKHR::accelerationStructureReference value in geometry.instances.data.deviceAddress must be a valid device address containing a value obtained from vkGetAccelerationStructureDeviceAddressKHR or 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03675", - "text": " For each pInfos[i], dstAccelerationStructure must have been created with a value of VkAccelerationStructureCreateInfoKHR::size greater than or equal to the memory size required by the build operation, as returned by vkGetAccelerationStructureBuildSizesKHR with pBuildInfo = pInfos[i] and with each element of the pMaxPrimitiveCounts array greater than or equal to the equivalent ppBuildRangeInfos[i][j].primitiveCount values for j in [0,pInfos[i].geometryCount)" + "text": "For each pInfos[i], dstAccelerationStructure must have been created with a value of VkAccelerationStructureCreateInfoKHR::size greater than or equal to the memory size required by the build operation, as returned by vkGetAccelerationStructureBuildSizesKHR with pBuildInfo = pInfos[i] and with each element of the pMaxPrimitiveCounts array greater than or equal to the equivalent ppBuildRangeInfos[i][j].primitiveCount values for j in [0,pInfos[i].geometryCount)", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-ppBuildRangeInfos-03676", - "text": " Each element of ppBuildRangeInfos[i] must be a valid pointer to an array of pInfos[i].geometryCount VkAccelerationStructureBuildRangeInfoKHR structures" + "text": "Each element of ppBuildRangeInfos[i] must be a valid pointer to an array of pInfos[i].geometryCount VkAccelerationStructureBuildRangeInfoKHR structures", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-parameter", - "text": " pInfos must be a valid pointer to an array of infoCount valid VkAccelerationStructureBuildGeometryInfoKHR structures" + "text": "pInfos must be a valid pointer to an array of infoCount valid VkAccelerationStructureBuildGeometryInfoKHR structures", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-ppBuildRangeInfos-parameter", - "text": " ppBuildRangeInfos must be a valid pointer to an array of infoCount VkAccelerationStructureBuildRangeInfoKHR structures" + "text": "ppBuildRangeInfos must be a valid pointer to an array of infoCount VkAccelerationStructureBuildRangeInfoKHR structures", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support compute operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-renderpass", - "text": " This command must only be called outside of a render pass instance" + "text": "This command must only be called outside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-infoCount-arraylength", - "text": " infoCount must be greater than 0" + "text": "infoCount must be greater than 0", + "page": "vkspec" } ] }, @@ -64830,327 +83793,408 @@ "core": [ { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-accelerationStructureIndirectBuild-03650", - "text": " The VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructureIndirectBuild feature must be enabled" + "text": "The VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructureIndirectBuild feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-mode-04628", - "text": " The mode member of each element of pInfos must be a valid VkBuildAccelerationStructureModeKHR value" + "text": "The mode member of each element of pInfos must be a valid VkBuildAccelerationStructureModeKHR value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-srcAccelerationStructure-04629", - "text": " If the srcAccelerationStructure member of any element of pInfos is not VK_NULL_HANDLE, the srcAccelerationStructure member must be a valid VkAccelerationStructureKHR handle" + "text": "If the srcAccelerationStructure member of any element of pInfos is not VK_NULL_HANDLE, the srcAccelerationStructure member must be a valid VkAccelerationStructureKHR handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-04630", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its srcAccelerationStructure member must not be VK_NULL_HANDLE" + "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its srcAccelerationStructure member must not be VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03403", - "text": " The srcAccelerationStructure member of any element of pInfos must not be the same acceleration structure as the dstAccelerationStructure member of any other element of pInfos" + "text": "The srcAccelerationStructure member of any element of pInfos must not be the same acceleration structure as the dstAccelerationStructure member of any other element of pInfos", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-dstAccelerationStructure-03698", - "text": " The dstAccelerationStructure member of any element of pInfos must not be the same acceleration structure as the dstAccelerationStructure member of any other element of pInfos" + "text": "The dstAccelerationStructure member of any element of pInfos must not be the same acceleration structure as the dstAccelerationStructure member of any other element of pInfos", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-dstAccelerationStructure-03800", - "text": " The dstAccelerationStructure member of any element of pInfos must be a valid VkAccelerationStructureKHR handle" + "text": "The dstAccelerationStructure member of any element of pInfos must be a valid VkAccelerationStructureKHR handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03699", - "text": " For each element of pInfos, if its type member is VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR, its dstAccelerationStructure member must have been created with a value of VkAccelerationStructureCreateInfoKHR::type equal to either VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR or VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR" + "text": "For each element of pInfos, if its type member is VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR, its dstAccelerationStructure member must have been created with a value of VkAccelerationStructureCreateInfoKHR::type equal to either VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR or VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03700", - "text": " For each element of pInfos, if its type member is VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR, its dstAccelerationStructure member must have been created with a value of VkAccelerationStructureCreateInfoKHR::type equal to either VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR or VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR" + "text": "For each element of pInfos, if its type member is VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR, its dstAccelerationStructure member must have been created with a value of VkAccelerationStructureCreateInfoKHR::type equal to either VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR or VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03663", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, inactive primitives in its srcAccelerationStructure member must not be made active" + "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, inactive primitives in its srcAccelerationStructure member must not be made active", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03664", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, active primitives in its srcAccelerationStructure member must not be made inactive" + "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, active primitives in its srcAccelerationStructure member must not be made inactive", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-None-03407", - "text": " The dstAccelerationStructure member of any element of pInfos must not be referenced by the geometry.instances.data member of any element of pGeometries or ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR in any other element of pInfos" + "text": "The dstAccelerationStructure member of any element of pInfos must not be referenced by the geometry.instances.data member of any element of pGeometries or ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR in any other element of pInfos", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-dstAccelerationStructure-03701", - "text": " The range of memory backing the dstAccelerationStructure member of any element of pInfos that is accessed by this command must not overlap the memory backing the srcAccelerationStructure member of any other element of pInfos with a mode equal to VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, which is accessed by this command" + "text": "The range of memory backing the dstAccelerationStructure member of any element of pInfos that is accessed by this command must not overlap the memory backing the srcAccelerationStructure member of any other element of pInfos with a mode equal to VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, which is accessed by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-dstAccelerationStructure-03702", - "text": " The range of memory backing the dstAccelerationStructure member of any element of pInfos that is accessed by this command must not overlap the memory backing the dstAccelerationStructure member of any other element of pInfos, which is accessed by this command" + "text": "The range of memory backing the dstAccelerationStructure member of any element of pInfos that is accessed by this command must not overlap the memory backing the dstAccelerationStructure member of any other element of pInfos, which is accessed by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-dstAccelerationStructure-03703", - "text": " The range of memory backing the dstAccelerationStructure member of any element of pInfos that is accessed by this command must not overlap the memory backing the scratchData member of any element of pInfos (including the same element), which is accessed by this command" + "text": "The range of memory backing the dstAccelerationStructure member of any element of pInfos that is accessed by this command must not overlap the memory backing the scratchData member of any element of pInfos (including the same element), which is accessed by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-scratchData-03704", - "text": " The range of memory backing the scratchData member of any element of pInfos that is accessed by this command must not overlap the memory backing the scratchData member of any other element of pInfos, which is accessed by this command" + "text": "The range of memory backing the scratchData member of any element of pInfos that is accessed by this command must not overlap the memory backing the scratchData member of any other element of pInfos, which is accessed by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-scratchData-03705", - "text": " The range of memory backing the scratchData member of any element of pInfos that is accessed by this command must not overlap the memory backing the srcAccelerationStructure member of any element of pInfos with a mode equal to VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR (including the same element), which is accessed by this command" + "text": "The range of memory backing the scratchData member of any element of pInfos that is accessed by this command must not overlap the memory backing the srcAccelerationStructure member of any element of pInfos with a mode equal to VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR (including the same element), which is accessed by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-dstAccelerationStructure-03706", - "text": " The range of memory backing the dstAccelerationStructure member of any element of pInfos that is accessed by this command must not overlap the memory backing any acceleration structure referenced by the geometry.instances.data member of any element of pGeometries or ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR in any other element of pInfos, which is accessed by this command" + "text": "The range of memory backing the dstAccelerationStructure member of any element of pInfos that is accessed by this command must not overlap the memory backing any acceleration structure referenced by the geometry.instances.data member of any element of pGeometries or ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR in any other element of pInfos, which is accessed by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03667", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its srcAccelerationStructure member must have previously been constructed with VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR set in VkAccelerationStructureBuildGeometryInfoKHR::flags in the build" + "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its srcAccelerationStructure member must have previously been constructed with VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR set in VkAccelerationStructureBuildGeometryInfoKHR::flags in the build", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03668", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its srcAccelerationStructure and dstAccelerationStructure members must either be the same VkAccelerationStructureKHR, or not have any memory aliasing" + "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its srcAccelerationStructure and dstAccelerationStructure members must either be the same VkAccelerationStructureKHR, or not have any memory aliasing", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03758", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its geometryCount member must have the same value which was specified when srcAccelerationStructure was last built" + "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its geometryCount member must have the same value which was specified when srcAccelerationStructure was last built", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03759", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its flags member must have the same value which was specified when srcAccelerationStructure was last built" + "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its flags member must have the same value which was specified when srcAccelerationStructure was last built", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03760", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its type member must have the same value which was specified when srcAccelerationStructure was last built" + "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its type member must have the same value which was specified when srcAccelerationStructure was last built", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03761", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, its geometryType member must have the same value which was specified when srcAccelerationStructure was last built" + "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, its geometryType member must have the same value which was specified when srcAccelerationStructure was last built", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03762", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, its flags member must have the same value which was specified when srcAccelerationStructure was last built" + "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, its flags member must have the same value which was specified when srcAccelerationStructure was last built", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03763", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, its geometry.triangles.vertexFormat member must have the same value which was specified when srcAccelerationStructure was last built" + "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, its geometry.triangles.vertexFormat member must have the same value which was specified when srcAccelerationStructure was last built", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03764", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, its geometry.triangles.maxVertex member must have the same value which was specified when srcAccelerationStructure was last built" + "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, its geometry.triangles.maxVertex member must have the same value which was specified when srcAccelerationStructure was last built", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03765", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, its geometry.triangles.indexType member must have the same value which was specified when srcAccelerationStructure was last built" + "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, its geometry.triangles.indexType member must have the same value which was specified when srcAccelerationStructure was last built", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03766", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, if its geometry.triangles.transformData address was NULL when srcAccelerationStructure was last built, then it must be NULL" + "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, if its geometry.triangles.transformData address was NULL when srcAccelerationStructure was last built, then it must be NULL", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03767", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, if its geometry.triangles.transformData address was not NULL when srcAccelerationStructure was last built, then it must not be NULL" + "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, if its geometry.triangles.transformData address was not NULL when srcAccelerationStructure was last built, then it must not be NULL", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03768", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, and geometry.triangles.indexType is not VK_INDEX_TYPE_NONE_KHR, then the value of each index referenced must be the same as the corresponding index value when srcAccelerationStructure was last built" + "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, and geometry.triangles.indexType is not VK_INDEX_TYPE_NONE_KHR, then the value of each index referenced must be the same as the corresponding index value when srcAccelerationStructure was last built", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-primitiveCount-03769", - "text": " For each VkAccelerationStructureBuildRangeInfoKHR referenced by this command, its primitiveCount member must have the same value which was specified when srcAccelerationStructure was last built" + "text": "For each VkAccelerationStructureBuildRangeInfoKHR referenced by this command, its primitiveCount member must have the same value which was specified when srcAccelerationStructure was last built", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-firstVertex-03770", - "text": " For each VkAccelerationStructureBuildRangeInfoKHR referenced by this command, if the corresponding geometry uses indices, its firstVertex member must have the same value which was specified when srcAccelerationStructure was last built" + "text": "For each VkAccelerationStructureBuildRangeInfoKHR referenced by this command, if the corresponding geometry uses indices, its firstVertex member must have the same value which was specified when srcAccelerationStructure was last built", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03801", - "text": " For each element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, the corresponding pname:ppMaxPrimitiveCounts[i][j] must be less than or equal to VkPhysicalDeviceAccelerationStructurePropertiesKHR::maxInstanceCount" + "text": "For each element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, the corresponding ppMaxPrimitiveCounts[i][j] must be less than or equal to VkPhysicalDeviceAccelerationStructurePropertiesKHR::maxInstanceCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03707", - "text": " For each element of pInfos, the buffer used to create its dstAccelerationStructure member must be bound to device memory" + "text": "For each element of pInfos, the buffer used to create its dstAccelerationStructure member must be bound to device memory", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03708", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR the buffer used to create its srcAccelerationStructure member must be bound to device memory" + "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR the buffer used to create its srcAccelerationStructure member must be bound to device memory", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03709", - "text": " For each element of pInfos, the buffer used to create each acceleration structure referenced by the geometry.instances.data member of any element of pGeometries or ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR must be bound to device memory" + "text": "For each element of pInfos, the buffer used to create each acceleration structure referenced by the geometry.instances.data member of any element of pGeometries or ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR must be bound to device memory", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03671", - "text": " If pInfos[i].mode is VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR, all addresses between pInfos[i].scratchData.deviceAddress and pInfos[i].scratchData.deviceAddress + N - 1 must be in the buffer device address range of the same buffer, where N is given by the buildScratchSize member of the VkAccelerationStructureBuildSizesInfoKHR structure returned from a call to vkGetAccelerationStructureBuildSizesKHR with an identical VkAccelerationStructureBuildGeometryInfoKHR structure and primitive count" + "text": "If pInfos[i].mode is VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR, all addresses between pInfos[i].scratchData.deviceAddress and pInfos[i].scratchData.deviceAddress + N - 1 must be in the buffer device address range of the same buffer, where N is given by the buildScratchSize member of the VkAccelerationStructureBuildSizesInfoKHR structure returned from a call to vkGetAccelerationStructureBuildSizesKHR with an identical VkAccelerationStructureBuildGeometryInfoKHR structure and primitive count", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03672", - "text": " If pInfos[i].mode is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, all addresses between pInfos[i].scratchData.deviceAddress and pInfos[i].scratchData.deviceAddress + N - 1 must be in the buffer device address range of the same buffer, where N is given by the updateScratchSize member of the VkAccelerationStructureBuildSizesInfoKHR structure returned from a call to vkGetAccelerationStructureBuildSizesKHR with an identical VkAccelerationStructureBuildGeometryInfoKHR structure and primitive count" + "text": "If pInfos[i].mode is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, all addresses between pInfos[i].scratchData.deviceAddress and pInfos[i].scratchData.deviceAddress + N - 1 must be in the buffer device address range of the same buffer, where N is given by the updateScratchSize member of the VkAccelerationStructureBuildSizesInfoKHR structure returned from a call to vkGetAccelerationStructureBuildSizesKHR with an identical VkAccelerationStructureBuildGeometryInfoKHR structure and primitive count", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-geometry-03673", - "text": " The buffers from which the buffer device addresses for all of the geometry.triangles.vertexData, geometry.triangles.indexData, geometry.triangles.transformData, geometry.aabbs.data, and geometry.instances.data members of all pInfos[i].pGeometries and pInfos[i].ppGeometries are queried must have been created with the VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR usage flag" + "text": "The buffers from which the buffer device addresses for all of the geometry.triangles.vertexData, geometry.triangles.indexData, geometry.triangles.transformData, geometry.aabbs.data, and geometry.instances.data members of all pInfos[i].pGeometries and pInfos[i].ppGeometries are queried must have been created with the VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR usage flag", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03674", - "text": " The buffer from which the buffer device address pInfos[i].scratchData.deviceAddress is queried must have been created with VK_BUFFER_USAGE_STORAGE_BUFFER_BIT usage flag" + "text": "The buffer from which the buffer device address pInfos[i].scratchData.deviceAddress is queried must have been created with VK_BUFFER_USAGE_STORAGE_BUFFER_BIT usage flag", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03802", - "text": " For each element of pInfos, its scratchData.deviceAddress member must be a valid device address obtained from vkGetBufferDeviceAddress" + "text": "For each element of pInfos, its scratchData.deviceAddress member must be a valid device address obtained from vkGetBufferDeviceAddress", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03803", - "text": " For each element of pInfos, if scratchData.deviceAddress is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "For each element of pInfos, if scratchData.deviceAddress is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03710", - "text": " For each element of pInfos, its scratchData.deviceAddress member must be a multiple of VkPhysicalDeviceAccelerationStructurePropertiesKHR::minAccelerationStructureScratchOffsetAlignment" + "text": "For each element of pInfos, its scratchData.deviceAddress member must be a multiple of VkPhysicalDeviceAccelerationStructurePropertiesKHR::minAccelerationStructureScratchOffsetAlignment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03804", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, geometry.triangles.vertexData.deviceAddress must be a valid device address obtained from vkGetBufferDeviceAddress" + "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, geometry.triangles.vertexData.deviceAddress must be a valid device address obtained from vkGetBufferDeviceAddress", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03805", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if geometry.triangles.vertexData.deviceAddress is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if geometry.triangles.vertexData.deviceAddress is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03711", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, geometry.triangles.vertexData.deviceAddress must be aligned to the size in bytes of the smallest component of the format in vertexFormat" + "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, geometry.triangles.vertexData.deviceAddress must be aligned to the size in bytes of the smallest component of the format in vertexFormat", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03806", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if geometry.triangles.indexType is not VK_INDEX_TYPE_NONE_KHR, geometry.triangles.indexData.deviceAddress must be a valid device address obtained from vkGetBufferDeviceAddress" + "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if geometry.triangles.indexType is not VK_INDEX_TYPE_NONE_KHR, geometry.triangles.indexData.deviceAddress must be a valid device address obtained from vkGetBufferDeviceAddress", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03807", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if geometry.triangles.indexType is not VK_INDEX_TYPE_NONE_KHR, if geometry.triangles.indexData.deviceAddress is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if geometry.triangles.indexType is not VK_INDEX_TYPE_NONE_KHR, if geometry.triangles.indexData.deviceAddress is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03712", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, and with geometry.triangles.indexType not equal to VK_INDEX_TYPE_NONE_KHR, geometry.triangles.indexData.deviceAddress must be aligned to the size in bytes of the type in indexType" + "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, and with geometry.triangles.indexType not equal to VK_INDEX_TYPE_NONE_KHR, geometry.triangles.indexData.deviceAddress must be aligned to the size in bytes of the type in indexType", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03808", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if geometry.triangles.transformData.deviceAddress is not 0, it must be a valid device address obtained from vkGetBufferDeviceAddress" + "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if geometry.triangles.transformData.deviceAddress is not 0, it must be a valid device address obtained from vkGetBufferDeviceAddress", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03809", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if geometry.triangles.transformData.deviceAddress is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if geometry.triangles.transformData.deviceAddress is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03810", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if geometry.triangles.transformData.deviceAddress is not 0, it must be aligned to 16 bytes" + "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if geometry.triangles.transformData.deviceAddress is not 0, it must be aligned to 16 bytes", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03811", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_AABBS_KHR, geometry.aabbs.data.deviceAddress must be a valid device address obtained from vkGetBufferDeviceAddress" + "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_AABBS_KHR, geometry.aabbs.data.deviceAddress must be a valid device address obtained from vkGetBufferDeviceAddress", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03812", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_AABBS_KHR, if geometry.aabbs.data.deviceAddress is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_AABBS_KHR, if geometry.aabbs.data.deviceAddress is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03714", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_AABBS_KHR, geometry.aabbs.data.deviceAddress must be aligned to 8 bytes" + "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_AABBS_KHR, geometry.aabbs.data.deviceAddress must be aligned to 8 bytes", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03715", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, if geometry.arrayOfPointers is VK_FALSE, geometry.instances.data.deviceAddress must be aligned to 16 bytes" + "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, if geometry.arrayOfPointers is VK_FALSE, geometry.instances.data.deviceAddress must be aligned to 16 bytes", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03716", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, if geometry.arrayOfPointers is VK_TRUE, geometry.instances.data.deviceAddress must be aligned to 8 bytes" + "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, if geometry.arrayOfPointers is VK_TRUE, geometry.instances.data.deviceAddress must be aligned to 8 bytes", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03717", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, if geometry.arrayOfPointers is VK_TRUE, each element of geometry.instances.data.deviceAddress in device memory must be aligned to 16 bytes" + "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, if geometry.arrayOfPointers is VK_TRUE, each element of geometry.instances.data.deviceAddress in device memory must be aligned to 16 bytes", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03813", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, geometry.instances.data.deviceAddress must be a valid device address obtained from vkGetBufferDeviceAddress" + "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, geometry.instances.data.deviceAddress must be a valid device address obtained from vkGetBufferDeviceAddress", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03814", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, if geometry.instances.data.deviceAddress is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, if geometry.instances.data.deviceAddress is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-06707", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, each VkAccelerationStructureInstanceKHR::accelerationStructureReference value in geometry.instances.data.deviceAddress must be a valid device address containing a value obtained from vkGetAccelerationStructureDeviceAddressKHR or 0" + "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, each VkAccelerationStructureInstanceKHR::accelerationStructureReference value in geometry.instances.data.deviceAddress must be a valid device address containing a value obtained from vkGetAccelerationStructureDeviceAddressKHR or 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pIndirectDeviceAddresses-03645", - "text": " For any element of pIndirectDeviceAddresses, if the buffer from which it was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "For any element of pIndirectDeviceAddresses, if the buffer from which it was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pIndirectDeviceAddresses-03646", - "text": " For any element of pIndirectDeviceAddresses[i], all device addresses between pIndirectDeviceAddresses[i] and pIndirectDeviceAddresses[i] + (pInfos[i].geometryCount {times} pIndirectStrides[i]) - 1 must be in the buffer device address range of the same buffer" + "text": "For any element of pIndirectDeviceAddresses[i], all device addresses between pIndirectDeviceAddresses[i] and pIndirectDeviceAddresses[i] + (pInfos[i].geometryCount × pIndirectStrides[i]) - 1 must be in the buffer device address range of the same buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pIndirectDeviceAddresses-03647", - "text": " For any element of pIndirectDeviceAddresses, the buffer from which it was queried must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set" + "text": "For any element of pIndirectDeviceAddresses, the buffer from which it was queried must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pIndirectDeviceAddresses-03648", - "text": " Each element of pIndirectDeviceAddresses must be a multiple of 4" + "text": "Each element of pIndirectDeviceAddresses must be a multiple of 4", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pIndirectStrides-03787", - "text": " Each element of pIndirectStrides must be a multiple of 4" + "text": "Each element of pIndirectStrides must be a multiple of 4", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-commandBuffer-03649", - "text": " commandBuffer must not be a protected command buffer" + "text": "commandBuffer must not be a protected command buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pIndirectDeviceAddresses-03651", - "text": " Each VkAccelerationStructureBuildRangeInfoKHR structure referenced by any element of pIndirectDeviceAddresses must be a valid VkAccelerationStructureBuildRangeInfoKHR structure" + "text": "Each VkAccelerationStructureBuildRangeInfoKHR structure referenced by any element of pIndirectDeviceAddresses must be a valid VkAccelerationStructureBuildRangeInfoKHR structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03652", - "text": " pInfos[i].dstAccelerationStructure must have been created with a value of VkAccelerationStructureCreateInfoKHR::size greater than or equal to the memory size required by the build operation, as returned by vkGetAccelerationStructureBuildSizesKHR with pBuildInfo = pInfos[i] and pMaxPrimitiveCounts = ppMaxPrimitiveCounts[i]" + "text": "pInfos[i].dstAccelerationStructure must have been created with a value of VkAccelerationStructureCreateInfoKHR::size greater than or equal to the memory size required by the build operation, as returned by vkGetAccelerationStructureBuildSizesKHR with pBuildInfo = pInfos[i] and pMaxPrimitiveCounts = ppMaxPrimitiveCounts[i]", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-ppMaxPrimitiveCounts-03653", - "text": " Each ppMaxPrimitiveCounts[i][j] must be greater than or equal to the primitiveCount value specified by the VkAccelerationStructureBuildRangeInfoKHR structure located at pIndirectDeviceAddresses[i] + (j {times} pIndirectStrides[i])" + "text": "Each ppMaxPrimitiveCounts[i][j] must be greater than or equal to the primitiveCount value specified by the VkAccelerationStructureBuildRangeInfoKHR structure located at pIndirectDeviceAddresses[i] + (j × pIndirectStrides[i])", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-parameter", - "text": " pInfos must be a valid pointer to an array of infoCount valid VkAccelerationStructureBuildGeometryInfoKHR structures" + "text": "pInfos must be a valid pointer to an array of infoCount valid VkAccelerationStructureBuildGeometryInfoKHR structures", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pIndirectDeviceAddresses-parameter", - "text": " pIndirectDeviceAddresses must be a valid pointer to an array of infoCount VkDeviceAddress values" + "text": "pIndirectDeviceAddresses must be a valid pointer to an array of infoCount VkDeviceAddress values", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pIndirectStrides-parameter", - "text": " pIndirectStrides must be a valid pointer to an array of infoCount uint32_t values" + "text": "pIndirectStrides must be a valid pointer to an array of infoCount uint32_t values", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-ppMaxPrimitiveCounts-parameter", - "text": " ppMaxPrimitiveCounts must be a valid pointer to an array of infoCount uint32_t values" + "text": "ppMaxPrimitiveCounts must be a valid pointer to an array of infoCount uint32_t values", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support compute operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-renderpass", - "text": " This command must only be called outside of a render pass instance" + "text": "This command must only be called outside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-infoCount-arraylength", - "text": " infoCount must be greater than 0" + "text": "infoCount must be greater than 0", + "page": "vkspec" } ] }, @@ -65158,87 +84202,108 @@ "core": [ { "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-type-03654", - "text": " type must not be VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR" + "text": "type must not be VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-pGeometries-03788", - "text": " Only one of pGeometries or ppGeometries can be a valid pointer, the other must be NULL" + "text": "Only one of pGeometries or ppGeometries can be a valid pointer, the other must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-type-03789", - "text": " If type is VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR, the geometryType member of elements of either pGeometries or ppGeometries must be VK_GEOMETRY_TYPE_INSTANCES_KHR" + "text": "If type is VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR, the geometryType member of elements of either pGeometries or ppGeometries must be VK_GEOMETRY_TYPE_INSTANCES_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-type-03790", - "text": " If type is VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR, geometryCount must be 1" + "text": "If type is VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR, geometryCount must be 1", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-type-03791", - "text": " If type is VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR the geometryType member of elements of either pGeometries or ppGeometries must not be VK_GEOMETRY_TYPE_INSTANCES_KHR" + "text": "If type is VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR the geometryType member of elements of either pGeometries or ppGeometries must not be VK_GEOMETRY_TYPE_INSTANCES_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-type-03792", - "text": " If type is VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR then the geometryType member of each geometry in either pGeometries or ppGeometries must be the same" + "text": "If type is VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR then the geometryType member of each geometry in either pGeometries or ppGeometries must be the same", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-type-03793", - "text": " If type is VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR then geometryCount must be less than or equal to VkPhysicalDeviceAccelerationStructurePropertiesKHR::maxGeometryCount" + "text": "If type is VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR then geometryCount must be less than or equal to VkPhysicalDeviceAccelerationStructurePropertiesKHR::maxGeometryCount", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-type-03794", - "text": " If type is VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR and the geometryType member of either pGeometries or ppGeometries is VK_GEOMETRY_TYPE_AABBS_KHR, the total number of AABBs in all geometries must be less than or equal to VkPhysicalDeviceAccelerationStructurePropertiesKHR::maxPrimitiveCount" + "text": "If type is VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR and the geometryType member of either pGeometries or ppGeometries is VK_GEOMETRY_TYPE_AABBS_KHR, the total number of AABBs in all geometries must be less than or equal to VkPhysicalDeviceAccelerationStructurePropertiesKHR::maxPrimitiveCount", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-type-03795", - "text": " If type is VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR and the geometryType member of either pGeometries or ppGeometries is VK_GEOMETRY_TYPE_TRIANGLES_KHR, the total number of triangles in all geometries must be less than or equal to VkPhysicalDeviceAccelerationStructurePropertiesKHR::maxPrimitiveCount" + "text": "If type is VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR and the geometryType member of either pGeometries or ppGeometries is VK_GEOMETRY_TYPE_TRIANGLES_KHR, the total number of triangles in all geometries must be less than or equal to VkPhysicalDeviceAccelerationStructurePropertiesKHR::maxPrimitiveCount", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-flags-03796", - "text": " If flags has the VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR bit set, then it must not have the VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR bit set" + "text": "If flags has the VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR bit set, then it must not have the VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR bit set", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-dstAccelerationStructure-04927", - "text": " If dstAccelerationStructure was created with VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV set in VkAccelerationStructureCreateInfoKHR::flags, VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV must be set in flags" + "text": "If dstAccelerationStructure was created with VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV set in VkAccelerationStructureCreateInfoKHR::flags, VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV must be set in flags", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-flags-04928", - "text": " If VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV is set in flags, dstAccelerationStructure must have been created with VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV set in VkAccelerationStructureCreateInfoKHR::flags" + "text": "If VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV is set in flags, dstAccelerationStructure must have been created with VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV set in VkAccelerationStructureCreateInfoKHR::flags", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-flags-04929", - "text": " If VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV is set in flags, type must not be VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR" + "text": "If VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV is set in flags, type must not be VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR", + "page": "vkspec" }, { "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_EXT bit set then it must not have the VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT bit set", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-type-parameter", - "text": " type must be a valid VkAccelerationStructureTypeKHR value" + "text": "type must be a valid VkAccelerationStructureTypeKHR value", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-flags-parameter", - "text": " flags must be a valid combination of VkBuildAccelerationStructureFlagBitsKHR values" + "text": "flags must be a valid combination of VkBuildAccelerationStructureFlagBitsKHR values", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-pGeometries-parameter", - "text": " If geometryCount is not 0, and pGeometries is not NULL, pGeometries must be a valid pointer to an array of geometryCount valid VkAccelerationStructureGeometryKHR structures" + "text": "If geometryCount is not 0, and pGeometries is not NULL, pGeometries must be a valid pointer to an array of geometryCount valid VkAccelerationStructureGeometryKHR structures", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-ppGeometries-parameter", - "text": " If geometryCount is not 0, and ppGeometries is not NULL, ppGeometries must be a valid pointer to an array of geometryCount valid pointers to valid VkAccelerationStructureGeometryKHR structures" + "text": "If geometryCount is not 0, and ppGeometries is not NULL, ppGeometries must be a valid pointer to an array of geometryCount valid pointers to valid VkAccelerationStructureGeometryKHR structures", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-commonparent", - "text": " Both of dstAccelerationStructure, and srcAccelerationStructure that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of dstAccelerationStructure, and srcAccelerationStructure that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -65246,31 +84311,38 @@ "core": [ { "vuid": "VUID-VkAccelerationStructureGeometryKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureGeometryKHR-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureGeometryKHR-geometryType-parameter", - "text": " geometryType must be a valid VkGeometryTypeKHR value" + "text": "geometryType must be a valid VkGeometryTypeKHR value", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureGeometryKHR-triangles-parameter", - "text": " If geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, the triangles member of geometry must be a valid VkAccelerationStructureGeometryTrianglesDataKHR structure" + "text": "If geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, the triangles member of geometry must be a valid VkAccelerationStructureGeometryTrianglesDataKHR structure", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureGeometryKHR-aabbs-parameter", - "text": " If geometryType is VK_GEOMETRY_TYPE_AABBS_KHR, the aabbs member of geometry must be a valid VkAccelerationStructureGeometryAabbsDataKHR structure" + "text": "If geometryType is VK_GEOMETRY_TYPE_AABBS_KHR, the aabbs member of geometry must be a valid VkAccelerationStructureGeometryAabbsDataKHR structure", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureGeometryKHR-instances-parameter", - "text": " If geometryType is VK_GEOMETRY_TYPE_INSTANCES_KHR, the instances member of geometry must be a valid VkAccelerationStructureGeometryInstancesDataKHR structure" + "text": "If geometryType is VK_GEOMETRY_TYPE_INSTANCES_KHR, the instances member of geometry must be a valid VkAccelerationStructureGeometryInstancesDataKHR structure", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureGeometryKHR-flags-parameter", - "text": " flags must be a valid combination of VkGeometryFlagBitsKHR values" + "text": "flags must be a valid combination of VkGeometryFlagBitsKHR values", + "page": "vkspec" } ] }, @@ -65278,39 +84350,48 @@ "core": [ { "vuid": "VUID-VkAccelerationStructureGeometryTrianglesDataKHR-vertexStride-03735", - "text": " vertexStride must be a multiple of the size in bytes of the smallest component of vertexFormat" + "text": "vertexStride must be a multiple of the size in bytes of the smallest component of vertexFormat", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureGeometryTrianglesDataKHR-vertexStride-03819", - "text": " vertexStride must be less than or equal to 232-1" + "text": "vertexStride must be less than or equal to 232-1", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureGeometryTrianglesDataKHR-vertexFormat-03797", - "text": " The format features of vertexFormat must contain VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR" + "text": "The format features of vertexFormat must contain VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureGeometryTrianglesDataKHR-indexType-03798", - "text": " indexType must be VK_INDEX_TYPE_UINT16, VK_INDEX_TYPE_UINT32, or VK_INDEX_TYPE_NONE_KHR" + "text": "indexType must be VK_INDEX_TYPE_UINT16, VK_INDEX_TYPE_UINT32, or VK_INDEX_TYPE_NONE_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureGeometryTrianglesDataKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureGeometryTrianglesDataKHR-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 VkAccelerationStructureGeometryMotionTrianglesDataNV, VkAccelerationStructureTrianglesDisplacementMicromapNV, or VkAccelerationStructureTrianglesOpacityMicromapEXT" + "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 VkAccelerationStructureGeometryMotionTrianglesDataNV, VkAccelerationStructureTrianglesDisplacementMicromapNV, or VkAccelerationStructureTrianglesOpacityMicromapEXT", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureGeometryTrianglesDataKHR-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureGeometryTrianglesDataKHR-vertexFormat-parameter", - "text": " vertexFormat must be a valid VkFormat value" + "text": "vertexFormat must be a valid VkFormat value", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureGeometryTrianglesDataKHR-indexType-parameter", - "text": " indexType must be a valid VkIndexType value" + "text": "indexType must be a valid VkIndexType value", + "page": "vkspec" } ] }, @@ -65318,7 +84399,8 @@ "core": [ { "vuid": "VUID-VkAccelerationStructureGeometryMotionTrianglesDataNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV" + "text": "sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV", + "page": "vkspec" } ] }, @@ -65326,27 +84408,33 @@ "core": [ { "vuid": "VUID-VkAccelerationStructureTrianglesOpacityMicromapEXT-pUsageCounts-07335", - "text": " Only one of pUsageCounts or ppUsageCounts can be a valid pointer, the other must be NULL" + "text": "Only one of pUsageCounts or ppUsageCounts can be a valid pointer, the other must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureTrianglesOpacityMicromapEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureTrianglesOpacityMicromapEXT-indexType-parameter", - "text": " indexType must be a valid VkIndexType value" + "text": "indexType must be a valid VkIndexType value", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureTrianglesOpacityMicromapEXT-pUsageCounts-parameter", - "text": " If usageCountsCount is not 0, and pUsageCounts is not NULL, pUsageCounts must be a valid pointer to an array of usageCountsCount VkMicromapUsageEXT structures" + "text": "If usageCountsCount is not 0, and pUsageCounts is not NULL, pUsageCounts must be a valid pointer to an array of usageCountsCount VkMicromapUsageEXT structures", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureTrianglesOpacityMicromapEXT-ppUsageCounts-parameter", - "text": " If usageCountsCount is not 0, and ppUsageCounts is not NULL, ppUsageCounts must be a valid pointer to an array of usageCountsCount valid pointers to VkMicromapUsageEXT structures" + "text": "If usageCountsCount is not 0, and ppUsageCounts is not NULL, ppUsageCounts must be a valid pointer to an array of usageCountsCount valid pointers to VkMicromapUsageEXT structures", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureTrianglesOpacityMicromapEXT-micromap-parameter", - "text": " If micromap is not VK_NULL_HANDLE, micromap must be a valid VkMicromapEXT handle" + "text": "If micromap is not VK_NULL_HANDLE, micromap must be a valid VkMicromapEXT handle", + "page": "vkspec" } ] }, @@ -65354,35 +84442,43 @@ "core": [ { "vuid": "VUID-VkAccelerationStructureTrianglesDisplacementMicromapNV-pUsageCounts-07992", - "text": " Only one of pUsageCounts or ppUsageCounts can be a valid pointer, the other must be NULL" + "text": "Only one of pUsageCounts or ppUsageCounts can be a valid pointer, the other must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureTrianglesDisplacementMicromapNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV" + "text": "sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureTrianglesDisplacementMicromapNV-displacementBiasAndScaleFormat-parameter", - "text": " displacementBiasAndScaleFormat must be a valid VkFormat value" + "text": "displacementBiasAndScaleFormat must be a valid VkFormat value", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureTrianglesDisplacementMicromapNV-displacementVectorFormat-parameter", - "text": " displacementVectorFormat must be a valid VkFormat value" + "text": "displacementVectorFormat must be a valid VkFormat value", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureTrianglesDisplacementMicromapNV-indexType-parameter", - "text": " indexType must be a valid VkIndexType value" + "text": "indexType must be a valid VkIndexType value", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureTrianglesDisplacementMicromapNV-pUsageCounts-parameter", - "text": " If usageCountsCount is not 0, and pUsageCounts is not NULL, pUsageCounts must be a valid pointer to an array of usageCountsCount VkMicromapUsageEXT structures" + "text": "If usageCountsCount is not 0, and pUsageCounts is not NULL, pUsageCounts must be a valid pointer to an array of usageCountsCount VkMicromapUsageEXT structures", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureTrianglesDisplacementMicromapNV-ppUsageCounts-parameter", - "text": " If usageCountsCount is not 0, and ppUsageCounts is not NULL, ppUsageCounts must be a valid pointer to an array of usageCountsCount valid pointers to VkMicromapUsageEXT structures" + "text": "If usageCountsCount is not 0, and ppUsageCounts is not NULL, ppUsageCounts must be a valid pointer to an array of usageCountsCount valid pointers to VkMicromapUsageEXT structures", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureTrianglesDisplacementMicromapNV-micromap-parameter", - "text": " If micromap is not VK_NULL_HANDLE, micromap must be a valid VkMicromapEXT handle" + "text": "If micromap is not VK_NULL_HANDLE, micromap must be a valid VkMicromapEXT handle", + "page": "vkspec" } ] }, @@ -65390,7 +84486,8 @@ "core": [ { "vuid": "VUID-VkTransformMatrixKHR-matrix-03799", - "text": " The first three columns of matrix must define an invertible 3x3 matrix" + "text": "The first three columns of matrix must define an invertible 3x3 matrix", + "page": "vkspec" } ] }, @@ -65398,19 +84495,23 @@ "core": [ { "vuid": "VUID-VkAccelerationStructureGeometryAabbsDataKHR-stride-03545", - "text": " stride must be a multiple of 8" + "text": "stride must be a multiple of 8", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureGeometryAabbsDataKHR-stride-03820", - "text": " stride must be less than or equal to 232-1" + "text": "stride must be less than or equal to 232-1", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureGeometryAabbsDataKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureGeometryAabbsDataKHR-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" } ] }, @@ -65418,15 +84519,18 @@ "core": [ { "vuid": "VUID-VkAabbPositionsKHR-minX-03546", - "text": " minX must be less than or equal to maxX" + "text": "minX must be less than or equal to maxX", + "page": "vkspec" }, { "vuid": "VUID-VkAabbPositionsKHR-minY-03547", - "text": " minY must be less than or equal to maxY" + "text": "minY must be less than or equal to maxY", + "page": "vkspec" }, { "vuid": "VUID-VkAabbPositionsKHR-minZ-03548", - "text": " minZ must be less than or equal to maxZ" + "text": "minZ must be less than or equal to maxZ", + "page": "vkspec" } ] }, @@ -65434,11 +84538,13 @@ "core": [ { "vuid": "VUID-VkAccelerationStructureGeometryInstancesDataKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureGeometryInstancesDataKHR-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" } ] }, @@ -65446,7 +84552,8 @@ "core": [ { "vuid": "VUID-VkAccelerationStructureInstanceKHR-flags-parameter", - "text": " flags must be a valid combination of VkGeometryInstanceFlagBitsKHR values" + "text": "flags must be a valid combination of VkGeometryInstanceFlagBitsKHR values", + "page": "vkspec" } ] }, @@ -65454,23 +84561,28 @@ "core": [ { "vuid": "VUID-VkAccelerationStructureMotionInstanceNV-type-parameter", - "text": " type must be a valid VkAccelerationStructureMotionInstanceTypeNV value" + "text": "type must be a valid VkAccelerationStructureMotionInstanceTypeNV value", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureMotionInstanceNV-flags-zerobitmask", - "text": " flags must be 0" + "text": "flags must be 0", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureMotionInstanceNV-staticInstance-parameter", - "text": " If type is VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV, the staticInstance member of data must be a valid VkAccelerationStructureInstanceKHR structure" + "text": "If type is VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV, the staticInstance member of data must be a valid VkAccelerationStructureInstanceKHR structure", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureMotionInstanceNV-matrixMotionInstance-parameter", - "text": " If type is VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV, the matrixMotionInstance member of data must be a valid VkAccelerationStructureMatrixMotionInstanceNV structure" + "text": "If type is VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV, the matrixMotionInstance member of data must be a valid VkAccelerationStructureMatrixMotionInstanceNV structure", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureMotionInstanceNV-srtMotionInstance-parameter", - "text": " If type is VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV, the srtMotionInstance member of data must be a valid VkAccelerationStructureSRTMotionInstanceNV structure" + "text": "If type is VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV, the srtMotionInstance member of data must be a valid VkAccelerationStructureSRTMotionInstanceNV structure", + "page": "vkspec" } ] }, @@ -65478,7 +84590,8 @@ "core": [ { "vuid": "VUID-VkAccelerationStructureMatrixMotionInstanceNV-flags-parameter", - "text": " flags must be a valid combination of VkGeometryInstanceFlagBitsKHR values" + "text": "flags must be a valid combination of VkGeometryInstanceFlagBitsKHR values", + "page": "vkspec" } ] }, @@ -65486,7 +84599,8 @@ "core": [ { "vuid": "VUID-VkAccelerationStructureSRTMotionInstanceNV-flags-parameter", - "text": " flags must be a valid combination of VkGeometryInstanceFlagBitsKHR values" + "text": "flags must be a valid combination of VkGeometryInstanceFlagBitsKHR values", + "page": "vkspec" } ] }, @@ -65494,23 +84608,28 @@ "core": [ { "vuid": "VUID-VkAccelerationStructureBuildRangeInfoKHR-primitiveOffset-03656", - "text": " For geometries of type VK_GEOMETRY_TYPE_TRIANGLES_KHR, if the geometry uses indices, the offset primitiveOffset from VkAccelerationStructureGeometryTrianglesDataKHR::indexData must be a multiple of the element size of VkAccelerationStructureGeometryTrianglesDataKHR::indexType" + "text": "For geometries of type VK_GEOMETRY_TYPE_TRIANGLES_KHR, if the geometry uses indices, the offset primitiveOffset from VkAccelerationStructureGeometryTrianglesDataKHR::indexData must be a multiple of the element size of VkAccelerationStructureGeometryTrianglesDataKHR::indexType", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureBuildRangeInfoKHR-primitiveOffset-03657", - "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 the component size of VkAccelerationStructureGeometryTrianglesDataKHR::vertexFormat" + "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 the component size of VkAccelerationStructureGeometryTrianglesDataKHR::vertexFormat", + "page": "vkspec" }, { "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" + "text": "For geometries of type VK_GEOMETRY_TYPE_TRIANGLES_KHR, the offset transformOffset from VkAccelerationStructureGeometryTrianglesDataKHR::transformData must be a multiple of 16", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureBuildRangeInfoKHR-primitiveOffset-03659", - "text": " For geometries of type VK_GEOMETRY_TYPE_AABBS_KHR, the offset primitiveOffset from VkAccelerationStructureGeometryAabbsDataKHR::data must be a multiple of 8" + "text": "For geometries of type VK_GEOMETRY_TYPE_AABBS_KHR, the offset primitiveOffset from VkAccelerationStructureGeometryAabbsDataKHR::data must be a multiple of 8", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureBuildRangeInfoKHR-primitiveOffset-03660", - "text": " For geometries of type VK_GEOMETRY_TYPE_INSTANCES_KHR, the offset primitiveOffset from VkAccelerationStructureGeometryInstancesDataKHR::data must be a multiple of 16" + "text": "For geometries of type VK_GEOMETRY_TYPE_INSTANCES_KHR, the offset primitiveOffset from VkAccelerationStructureGeometryInstancesDataKHR::data must be a multiple of 16", + "page": "vkspec" } ] }, @@ -65518,75 +84637,93 @@ "core": [ { "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-accelerationStructure-08924", - "text": " The VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructure feature must be enabled" + "text": "The VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructure feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-queryPool-02493", - "text": " queryPool must have been created with a queryType matching queryType" + "text": "queryPool must have been created with a queryType matching queryType", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-queryPool-02494", - "text": " The queries identified by queryPool and firstQuery must be unavailable" + "text": "The queries identified by queryPool and firstQuery must be unavailable", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-buffer-03736", - "text": " The buffer used to create each acceleration structure in pAccelerationStructures must be bound to device memory" + "text": "The buffer used to create each acceleration structure in pAccelerationStructures must be bound to device memory", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-query-04880", - "text": " The sum of query plus accelerationStructureCount must be less than or equal to the number of queries in queryPool" + "text": "The sum of query plus accelerationStructureCount must be less than or equal to the number of queries in queryPool", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-pAccelerationStructures-04964", - "text": " All acceleration structures in pAccelerationStructures must have been built prior to the execution of this command" + "text": "All acceleration structures in pAccelerationStructures must have been built prior to the execution of this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-accelerationStructures-03431", - "text": " All acceleration structures in pAccelerationStructures must have been built with VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR if queryType is VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR" + "text": "All acceleration structures in pAccelerationStructures must have been built with VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR if queryType is VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-queryType-06742", - "text": " queryType must be VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR, VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR, VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR or VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR" + "text": "queryType must be VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR, VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR, VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR or VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-pAccelerationStructures-parameter", - "text": " pAccelerationStructures must be a valid pointer to an array of accelerationStructureCount valid VkAccelerationStructureKHR handles" + "text": "pAccelerationStructures must be a valid pointer to an array of accelerationStructureCount valid VkAccelerationStructureKHR handles", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-queryType-parameter", - "text": " queryType must be a valid VkQueryType value" + "text": "queryType must be a valid VkQueryType value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-queryPool-parameter", - "text": " queryPool must be a valid VkQueryPool handle" + "text": "queryPool must be a valid VkQueryPool handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support compute operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-renderpass", - "text": " This command must only be called outside of a render pass instance" + "text": "This command must only be called outside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-accelerationStructureCount-arraylength", - "text": " accelerationStructureCount must be greater than 0" + "text": "accelerationStructureCount must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-commonparent", - "text": " Each of commandBuffer, queryPool, and the elements of pAccelerationStructures must have been created, allocated, or retrieved from the same VkDevice" + "text": "Each of commandBuffer, queryPool, and the elements of pAccelerationStructures must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -65594,67 +84731,83 @@ "core": [ { "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-queryPool-03755", - "text": " queryPool must have been created with a queryType matching queryType" + "text": "queryPool must have been created with a queryType matching queryType", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-queryPool-03756", - "text": " The queries identified by queryPool and firstQuery must be unavailable" + "text": "The queries identified by queryPool and firstQuery must be unavailable", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-accelerationStructure-03757", - "text": " accelerationStructure must be bound completely and contiguously to a single VkDeviceMemory object via vkBindAccelerationStructureMemoryNV" + "text": "accelerationStructure must be bound completely and contiguously to a single VkDeviceMemory object via vkBindAccelerationStructureMemoryNV", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-pAccelerationStructures-04958", - "text": " All acceleration structures in pAccelerationStructures must have been built prior to the execution of this command" + "text": "All acceleration structures in pAccelerationStructures must have been built prior to the execution of this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-pAccelerationStructures-06215", - "text": " All acceleration structures in pAccelerationStructures must have been built with VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR if queryType is VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV" + "text": "All acceleration structures in pAccelerationStructures must have been built with VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR if queryType is VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-queryType-06216", - "text": " queryType must be VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV" + "text": "queryType must be VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-pAccelerationStructures-parameter", - "text": " pAccelerationStructures must be a valid pointer to an array of accelerationStructureCount valid VkAccelerationStructureNV handles" + "text": "pAccelerationStructures must be a valid pointer to an array of accelerationStructureCount valid VkAccelerationStructureNV handles", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-queryType-parameter", - "text": " queryType must be a valid VkQueryType value" + "text": "queryType must be a valid VkQueryType value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-queryPool-parameter", - "text": " queryPool must be a valid VkQueryPool handle" + "text": "queryPool must be a valid VkQueryPool handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support compute operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-renderpass", - "text": " This command must only be called outside of a render pass instance" + "text": "This command must only be called outside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-accelerationStructureCount-arraylength", - "text": " accelerationStructureCount must be greater than 0" + "text": "accelerationStructureCount must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-commonparent", - "text": " Each of commandBuffer, queryPool, and the elements of pAccelerationStructures must have been created, allocated, or retrieved from the same VkDevice" + "text": "Each of commandBuffer, queryPool, and the elements of pAccelerationStructures must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -65662,67 +84815,83 @@ "core": [ { "vuid": "VUID-vkCmdCopyAccelerationStructureNV-mode-03410", - "text": " mode must be VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR or VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR" + "text": "mode must be VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR or VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyAccelerationStructureNV-src-04963", - "text": " The source acceleration structure src must have been constructed prior to the execution of this command" + "text": "The source acceleration structure src must have been constructed prior to the execution of this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyAccelerationStructureNV-src-03411", - "text": " If mode is VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR, src must have been constructed with VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR in the build" + "text": "If mode is VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR, src must have been constructed with VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR in the build", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyAccelerationStructureNV-buffer-03718", - "text": " The buffer used to create src must be bound to device memory" + "text": "The buffer used to create src must be bound to device memory", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyAccelerationStructureNV-buffer-03719", - "text": " The buffer used to create dst must be bound to device memory" + "text": "The buffer used to create dst must be bound to device memory", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyAccelerationStructureNV-dst-07791", - "text": " The range of memory backing dst that is accessed by this command must not overlap the memory backing src that is accessed by this command" + "text": "The range of memory backing dst that is accessed by this command must not overlap the memory backing src that is accessed by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyAccelerationStructureNV-dst-07792", - "text": " dst must be bound completely and contiguously to a single VkDeviceMemory object via vkBindAccelerationStructureMemoryNV" + "text": "dst must be bound completely and contiguously to a single VkDeviceMemory object via vkBindAccelerationStructureMemoryNV", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyAccelerationStructureNV-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyAccelerationStructureNV-dst-parameter", - "text": " dst must be a valid VkAccelerationStructureNV handle" + "text": "dst must be a valid VkAccelerationStructureNV handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyAccelerationStructureNV-src-parameter", - "text": " src must be a valid VkAccelerationStructureNV handle" + "text": "src must be a valid VkAccelerationStructureNV handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyAccelerationStructureNV-mode-parameter", - "text": " mode must be a valid VkCopyAccelerationStructureModeKHR value" + "text": "mode must be a valid VkCopyAccelerationStructureModeKHR value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyAccelerationStructureNV-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyAccelerationStructureNV-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support compute operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyAccelerationStructureNV-renderpass", - "text": " This command must only be called outside of a render pass instance" + "text": "This command must only be called outside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyAccelerationStructureNV-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyAccelerationStructureNV-commonparent", - "text": " Each of commandBuffer, dst, and src must have been created, allocated, or retrieved from the same VkDevice" + "text": "Each of commandBuffer, dst, and src must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -65730,39 +84899,48 @@ "core": [ { "vuid": "VUID-vkCmdCopyAccelerationStructureKHR-accelerationStructure-08925", - "text": " The VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructure feature must be enabled" + "text": "The VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructure feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyAccelerationStructureKHR-buffer-03737", - "text": " The buffer used to create pInfo->src must be bound to device memory" + "text": "The buffer used to create pInfo->src must be bound to device memory", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyAccelerationStructureKHR-buffer-03738", - "text": " The buffer used to create pInfo->dst must be bound to device memory" + "text": "The buffer used to create pInfo->dst must be bound to device memory", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyAccelerationStructureKHR-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyAccelerationStructureKHR-pInfo-parameter", - "text": " pInfo must be a valid pointer to a valid VkCopyAccelerationStructureInfoKHR structure" + "text": "pInfo must be a valid pointer to a valid VkCopyAccelerationStructureInfoKHR structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyAccelerationStructureKHR-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyAccelerationStructureKHR-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support compute operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyAccelerationStructureKHR-renderpass", - "text": " This command must only be called outside of a render pass instance" + "text": "This command must only be called outside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyAccelerationStructureKHR-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -65770,55 +84948,68 @@ "core": [ { "vuid": "VUID-VkCopyAccelerationStructureInfoKHR-mode-03410", - "text": " mode must be VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR or VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR" + "text": "mode must be VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR or VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkCopyAccelerationStructureInfoKHR-src-04963", - "text": " The source acceleration structure src must have been constructed prior to the execution of this command" + "text": "The source acceleration structure src must have been constructed prior to the execution of this command", + "page": "vkspec" }, { "vuid": "VUID-VkCopyAccelerationStructureInfoKHR-src-03411", - "text": " If mode is VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR, src must have been constructed with VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR in the build" + "text": "If mode is VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR, src must have been constructed with VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR in the build", + "page": "vkspec" }, { "vuid": "VUID-VkCopyAccelerationStructureInfoKHR-buffer-03718", - "text": " The buffer used to create src must be bound to device memory" + "text": "The buffer used to create src must be bound to device memory", + "page": "vkspec" }, { "vuid": "VUID-VkCopyAccelerationStructureInfoKHR-buffer-03719", - "text": " The buffer used to create dst must be bound to device memory" + "text": "The buffer used to create dst must be bound to device memory", + "page": "vkspec" }, { "vuid": "VUID-VkCopyAccelerationStructureInfoKHR-dst-07791", - "text": " The range of memory backing dst that is accessed by this command must not overlap the memory backing src that is accessed by this command" + "text": "The range of memory backing dst that is accessed by this command must not overlap the memory backing src that is accessed by this command", + "page": "vkspec" }, { "vuid": "VUID-VkCopyAccelerationStructureInfoKHR-dst-07792", - "text": " dst must be bound completely and contiguously to a single VkDeviceMemory object via vkBindAccelerationStructureMemoryNV" + "text": "dst must be bound completely and contiguously to a single VkDeviceMemory object via vkBindAccelerationStructureMemoryNV", + "page": "vkspec" }, { "vuid": "VUID-VkCopyAccelerationStructureInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkCopyAccelerationStructureInfoKHR-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkCopyAccelerationStructureInfoKHR-src-parameter", - "text": " src must be a valid VkAccelerationStructureKHR handle" + "text": "src must be a valid VkAccelerationStructureKHR handle", + "page": "vkspec" }, { "vuid": "VUID-VkCopyAccelerationStructureInfoKHR-dst-parameter", - "text": " dst must be a valid VkAccelerationStructureKHR handle" + "text": "dst must be a valid VkAccelerationStructureKHR handle", + "page": "vkspec" }, { "vuid": "VUID-VkCopyAccelerationStructureInfoKHR-mode-parameter", - "text": " mode must be a valid VkCopyAccelerationStructureModeKHR value" + "text": "mode must be a valid VkCopyAccelerationStructureModeKHR value", + "page": "vkspec" }, { "vuid": "VUID-VkCopyAccelerationStructureInfoKHR-commonparent", - "text": " Both of dst, and src must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of dst, and src must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -65826,47 +85017,58 @@ "core": [ { "vuid": "VUID-vkCmdCopyAccelerationStructureToMemoryKHR-accelerationStructure-08926", - "text": " The VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructure feature must be enabled" + "text": "The VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructure feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyAccelerationStructureToMemoryKHR-pInfo-03739", - "text": " pInfo->dst.deviceAddress must be a valid device address for a buffer bound to device memory" + "text": "pInfo->dst.deviceAddress must be a valid device address for a buffer bound to device memory", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyAccelerationStructureToMemoryKHR-pInfo-03740", - "text": " pInfo->dst.deviceAddress must be aligned to 256 bytes" + "text": "pInfo->dst.deviceAddress must be aligned to 256 bytes", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyAccelerationStructureToMemoryKHR-pInfo-03741", - "text": " If the buffer pointed to by pInfo->dst.deviceAddress is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If the buffer pointed to by pInfo->dst.deviceAddress is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyAccelerationStructureToMemoryKHR-None-03559", - "text": " The buffer used to create pInfo->src must be bound to device memory" + "text": "The buffer used to create pInfo->src must be bound to device memory", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyAccelerationStructureToMemoryKHR-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyAccelerationStructureToMemoryKHR-pInfo-parameter", - "text": " pInfo must be a valid pointer to a valid VkCopyAccelerationStructureToMemoryInfoKHR structure" + "text": "pInfo must be a valid pointer to a valid VkCopyAccelerationStructureToMemoryInfoKHR structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyAccelerationStructureToMemoryKHR-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyAccelerationStructureToMemoryKHR-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support compute operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyAccelerationStructureToMemoryKHR-renderpass", - "text": " This command must only be called outside of a render pass instance" + "text": "This command must only be called outside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyAccelerationStructureToMemoryKHR-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -65874,31 +85076,38 @@ "core": [ { "vuid": "VUID-VkCopyAccelerationStructureToMemoryInfoKHR-src-04959", - "text": " The source acceleration structure src must have been constructed prior to the execution of this command" + "text": "The source acceleration structure src must have been constructed prior to the execution of this command", + "page": "vkspec" }, { "vuid": "VUID-VkCopyAccelerationStructureToMemoryInfoKHR-dst-03561", - "text": " The memory pointed to by dst must be at least as large as the serialization size of src, as reported by vkWriteAccelerationStructuresPropertiesKHR or vkCmdWriteAccelerationStructuresPropertiesKHR with a query type of VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR" + "text": "The memory pointed to by dst must be at least as large as the serialization size of src, as reported by vkWriteAccelerationStructuresPropertiesKHR or vkCmdWriteAccelerationStructuresPropertiesKHR with a query type of VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkCopyAccelerationStructureToMemoryInfoKHR-mode-03412", - "text": " mode must be VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR" + "text": "mode must be VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkCopyAccelerationStructureToMemoryInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkCopyAccelerationStructureToMemoryInfoKHR-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkCopyAccelerationStructureToMemoryInfoKHR-src-parameter", - "text": " src must be a valid VkAccelerationStructureKHR handle" + "text": "src must be a valid VkAccelerationStructureKHR handle", + "page": "vkspec" }, { "vuid": "VUID-VkCopyAccelerationStructureToMemoryInfoKHR-mode-parameter", - "text": " mode must be a valid VkCopyAccelerationStructureModeKHR value" + "text": "mode must be a valid VkCopyAccelerationStructureModeKHR value", + "page": "vkspec" } ] }, @@ -65906,47 +85115,58 @@ "core": [ { "vuid": "VUID-vkCmdCopyMemoryToAccelerationStructureKHR-accelerationStructure-08927", - "text": " The VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructure feature must be enabled" + "text": "The VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructure feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyMemoryToAccelerationStructureKHR-pInfo-03742", - "text": " pInfo->src.deviceAddress must be a valid device address for a buffer bound to device memory" + "text": "pInfo->src.deviceAddress must be a valid device address for a buffer bound to device memory", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyMemoryToAccelerationStructureKHR-pInfo-03743", - "text": " pInfo->src.deviceAddress must be aligned to 256 bytes" + "text": "pInfo->src.deviceAddress must be aligned to 256 bytes", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyMemoryToAccelerationStructureKHR-pInfo-03744", - "text": " If the buffer pointed to by pInfo->src.deviceAddress is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If the buffer pointed to by pInfo->src.deviceAddress is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyMemoryToAccelerationStructureKHR-buffer-03745", - "text": " The buffer used to create pInfo->dst must be bound to device memory" + "text": "The buffer used to create pInfo->dst must be bound to device memory", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyMemoryToAccelerationStructureKHR-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyMemoryToAccelerationStructureKHR-pInfo-parameter", - "text": " pInfo must be a valid pointer to a valid VkCopyMemoryToAccelerationStructureInfoKHR structure" + "text": "pInfo must be a valid pointer to a valid VkCopyMemoryToAccelerationStructureInfoKHR structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyMemoryToAccelerationStructureKHR-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyMemoryToAccelerationStructureKHR-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support compute operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyMemoryToAccelerationStructureKHR-renderpass", - "text": " This command must only be called outside of a render pass instance" + "text": "This command must only be called outside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyMemoryToAccelerationStructureKHR-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -65954,35 +85174,43 @@ "core": [ { "vuid": "VUID-VkCopyMemoryToAccelerationStructureInfoKHR-src-04960", - "text": " The source memory pointed to by src must contain data previously serialized using vkCmdCopyAccelerationStructureToMemoryKHR, potentially modified to relocate acceleration structure references as described in that command" + "text": "The source memory pointed to by src must contain data previously serialized using vkCmdCopyAccelerationStructureToMemoryKHR, potentially modified to relocate acceleration structure references as described in that command", + "page": "vkspec" }, { "vuid": "VUID-VkCopyMemoryToAccelerationStructureInfoKHR-mode-03413", - "text": " mode must be VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR" + "text": "mode must be VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkCopyMemoryToAccelerationStructureInfoKHR-pInfo-03414", - "text": " The data in src must have a format compatible with the destination physical device as returned by vkGetDeviceAccelerationStructureCompatibilityKHR" + "text": "The data in src must have a format compatible with the destination physical device as returned by vkGetDeviceAccelerationStructureCompatibilityKHR", + "page": "vkspec" }, { "vuid": "VUID-VkCopyMemoryToAccelerationStructureInfoKHR-dst-03746", - "text": " dst must have been created with a size greater than or equal to that used to serialize the data in src" + "text": "dst must have been created with a size greater than or equal to that used to serialize the data in src", + "page": "vkspec" }, { "vuid": "VUID-VkCopyMemoryToAccelerationStructureInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkCopyMemoryToAccelerationStructureInfoKHR-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkCopyMemoryToAccelerationStructureInfoKHR-dst-parameter", - "text": " dst must be a valid VkAccelerationStructureKHR handle" + "text": "dst must be a valid VkAccelerationStructureKHR handle", + "page": "vkspec" }, { "vuid": "VUID-VkCopyMemoryToAccelerationStructureInfoKHR-mode-parameter", - "text": " mode must be a valid VkCopyAccelerationStructureModeKHR value" + "text": "mode must be a valid VkCopyAccelerationStructureModeKHR value", + "page": "vkspec" } ] }, @@ -65990,19 +85218,23 @@ "core": [ { "vuid": "VUID-vkGetDeviceAccelerationStructureCompatibilityKHR-accelerationStructure-08928", - "text": " The VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructure feature must be enabled" + "text": "The VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructure feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkGetDeviceAccelerationStructureCompatibilityKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetDeviceAccelerationStructureCompatibilityKHR-pVersionInfo-parameter", - "text": " pVersionInfo must be a valid pointer to a valid VkAccelerationStructureVersionInfoKHR structure" + "text": "pVersionInfo must be a valid pointer to a valid VkAccelerationStructureVersionInfoKHR structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetDeviceAccelerationStructureCompatibilityKHR-pCompatibility-parameter", - "text": " pCompatibility must be a valid pointer to a VkAccelerationStructureCompatibilityKHR value" + "text": "pCompatibility must be a valid pointer to a VkAccelerationStructureCompatibilityKHR value", + "page": "vkspec" } ] }, @@ -66010,15 +85242,18 @@ "core": [ { "vuid": "VUID-VkAccelerationStructureVersionInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureVersionInfoKHR-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkAccelerationStructureVersionInfoKHR-pVersionData-parameter", - "text": " pVersionData must be a valid pointer to an array of \\(2 \\times \\mathtt{VK\\_UUID\\_SIZE}\\) uint8_t values" + "text": "pVersionData must be a valid pointer to an array of \\(2 \\times \\mathtt{VK\\_UUID\\_SIZE}\\) uint8_t values", + "page": "vkspec" } ] }, @@ -66026,239 +85261,298 @@ "core": [ { "vuid": "VUID-vkBuildAccelerationStructuresKHR-accelerationStructureHostCommands-03581", - "text": " The VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructureHostCommands feature must be enabled" + "text": "The VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructureHostCommands feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkBuildAccelerationStructuresKHR-mode-04628", - "text": " The mode member of each element of pInfos must be a valid VkBuildAccelerationStructureModeKHR value" + "text": "The mode member of each element of pInfos must be a valid VkBuildAccelerationStructureModeKHR value", + "page": "vkspec" }, { "vuid": "VUID-vkBuildAccelerationStructuresKHR-srcAccelerationStructure-04629", - "text": " If the srcAccelerationStructure member of any element of pInfos is not VK_NULL_HANDLE, the srcAccelerationStructure member must be a valid VkAccelerationStructureKHR handle" + "text": "If the srcAccelerationStructure member of any element of pInfos is not VK_NULL_HANDLE, the srcAccelerationStructure member must be a valid VkAccelerationStructureKHR handle", + "page": "vkspec" }, { "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-04630", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its srcAccelerationStructure member must not be VK_NULL_HANDLE" + "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its srcAccelerationStructure member must not be VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03403", - "text": " The srcAccelerationStructure member of any element of pInfos must not be the same acceleration structure as the dstAccelerationStructure member of any other element of pInfos" + "text": "The srcAccelerationStructure member of any element of pInfos must not be the same acceleration structure as the dstAccelerationStructure member of any other element of pInfos", + "page": "vkspec" }, { "vuid": "VUID-vkBuildAccelerationStructuresKHR-dstAccelerationStructure-03698", - "text": " The dstAccelerationStructure member of any element of pInfos must not be the same acceleration structure as the dstAccelerationStructure member of any other element of pInfos" + "text": "The dstAccelerationStructure member of any element of pInfos must not be the same acceleration structure as the dstAccelerationStructure member of any other element of pInfos", + "page": "vkspec" }, { "vuid": "VUID-vkBuildAccelerationStructuresKHR-dstAccelerationStructure-03800", - "text": " The dstAccelerationStructure member of any element of pInfos must be a valid VkAccelerationStructureKHR handle" + "text": "The dstAccelerationStructure member of any element of pInfos must be a valid VkAccelerationStructureKHR handle", + "page": "vkspec" }, { "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03699", - "text": " For each element of pInfos, if its type member is VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR, its dstAccelerationStructure member must have been created with a value of VkAccelerationStructureCreateInfoKHR::type equal to either VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR or VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR" + "text": "For each element of pInfos, if its type member is VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR, its dstAccelerationStructure member must have been created with a value of VkAccelerationStructureCreateInfoKHR::type equal to either VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR or VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03700", - "text": " For each element of pInfos, if its type member is VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR, its dstAccelerationStructure member must have been created with a value of VkAccelerationStructureCreateInfoKHR::type equal to either VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR or VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR" + "text": "For each element of pInfos, if its type member is VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR, its dstAccelerationStructure member must have been created with a value of VkAccelerationStructureCreateInfoKHR::type equal to either VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR or VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03663", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, inactive primitives in its srcAccelerationStructure member must not be made active" + "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, inactive primitives in its srcAccelerationStructure member must not be made active", + "page": "vkspec" }, { "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03664", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, active primitives in its srcAccelerationStructure member must not be made inactive" + "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, active primitives in its srcAccelerationStructure member must not be made inactive", + "page": "vkspec" }, { "vuid": "VUID-vkBuildAccelerationStructuresKHR-None-03407", - "text": " The dstAccelerationStructure member of any element of pInfos must not be referenced by the geometry.instances.data member of any element of pGeometries or ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR in any other element of pInfos" + "text": "The dstAccelerationStructure member of any element of pInfos must not be referenced by the geometry.instances.data member of any element of pGeometries or ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR in any other element of pInfos", + "page": "vkspec" }, { "vuid": "VUID-vkBuildAccelerationStructuresKHR-dstAccelerationStructure-03701", - "text": " The range of memory backing the dstAccelerationStructure member of any element of pInfos that is accessed by this command must not overlap the memory backing the srcAccelerationStructure member of any other element of pInfos with a mode equal to VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, which is accessed by this command" + "text": "The range of memory backing the dstAccelerationStructure member of any element of pInfos that is accessed by this command must not overlap the memory backing the srcAccelerationStructure member of any other element of pInfos with a mode equal to VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, which is accessed by this command", + "page": "vkspec" }, { "vuid": "VUID-vkBuildAccelerationStructuresKHR-dstAccelerationStructure-03702", - "text": " The range of memory backing the dstAccelerationStructure member of any element of pInfos that is accessed by this command must not overlap the memory backing the dstAccelerationStructure member of any other element of pInfos, which is accessed by this command" + "text": "The range of memory backing the dstAccelerationStructure member of any element of pInfos that is accessed by this command must not overlap the memory backing the dstAccelerationStructure member of any other element of pInfos, which is accessed by this command", + "page": "vkspec" }, { "vuid": "VUID-vkBuildAccelerationStructuresKHR-dstAccelerationStructure-03703", - "text": " The range of memory backing the dstAccelerationStructure member of any element of pInfos that is accessed by this command must not overlap the memory backing the scratchData member of any element of pInfos (including the same element), which is accessed by this command" + "text": "The range of memory backing the dstAccelerationStructure member of any element of pInfos that is accessed by this command must not overlap the memory backing the scratchData member of any element of pInfos (including the same element), which is accessed by this command", + "page": "vkspec" }, { "vuid": "VUID-vkBuildAccelerationStructuresKHR-scratchData-03704", - "text": " The range of memory backing the scratchData member of any element of pInfos that is accessed by this command must not overlap the memory backing the scratchData member of any other element of pInfos, which is accessed by this command" + "text": "The range of memory backing the scratchData member of any element of pInfos that is accessed by this command must not overlap the memory backing the scratchData member of any other element of pInfos, which is accessed by this command", + "page": "vkspec" }, { "vuid": "VUID-vkBuildAccelerationStructuresKHR-scratchData-03705", - "text": " The range of memory backing the scratchData member of any element of pInfos that is accessed by this command must not overlap the memory backing the srcAccelerationStructure member of any element of pInfos with a mode equal to VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR (including the same element), which is accessed by this command" + "text": "The range of memory backing the scratchData member of any element of pInfos that is accessed by this command must not overlap the memory backing the srcAccelerationStructure member of any element of pInfos with a mode equal to VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR (including the same element), which is accessed by this command", + "page": "vkspec" }, { "vuid": "VUID-vkBuildAccelerationStructuresKHR-dstAccelerationStructure-03706", - "text": " The range of memory backing the dstAccelerationStructure member of any element of pInfos that is accessed by this command must not overlap the memory backing any acceleration structure referenced by the geometry.instances.data member of any element of pGeometries or ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR in any other element of pInfos, which is accessed by this command" + "text": "The range of memory backing the dstAccelerationStructure member of any element of pInfos that is accessed by this command must not overlap the memory backing any acceleration structure referenced by the geometry.instances.data member of any element of pGeometries or ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR in any other element of pInfos, which is accessed by this command", + "page": "vkspec" }, { "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03667", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its srcAccelerationStructure member must have previously been constructed with VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR set in VkAccelerationStructureBuildGeometryInfoKHR::flags in the build" + "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its srcAccelerationStructure member must have previously been constructed with VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR set in VkAccelerationStructureBuildGeometryInfoKHR::flags in the build", + "page": "vkspec" }, { "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03668", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its srcAccelerationStructure and dstAccelerationStructure members must either be the same VkAccelerationStructureKHR, or not have any memory aliasing" + "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its srcAccelerationStructure and dstAccelerationStructure members must either be the same VkAccelerationStructureKHR, or not have any memory aliasing", + "page": "vkspec" }, { "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03758", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its geometryCount member must have the same value which was specified when srcAccelerationStructure was last built" + "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its geometryCount member must have the same value which was specified when srcAccelerationStructure was last built", + "page": "vkspec" }, { "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03759", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its flags member must have the same value which was specified when srcAccelerationStructure was last built" + "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its flags member must have the same value which was specified when srcAccelerationStructure was last built", + "page": "vkspec" }, { "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03760", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its type member must have the same value which was specified when srcAccelerationStructure was last built" + "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its type member must have the same value which was specified when srcAccelerationStructure was last built", + "page": "vkspec" }, { "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03761", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, its geometryType member must have the same value which was specified when srcAccelerationStructure was last built" + "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, its geometryType member must have the same value which was specified when srcAccelerationStructure was last built", + "page": "vkspec" }, { "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03762", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, its flags member must have the same value which was specified when srcAccelerationStructure was last built" + "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, its flags member must have the same value which was specified when srcAccelerationStructure was last built", + "page": "vkspec" }, { "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03763", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, its geometry.triangles.vertexFormat member must have the same value which was specified when srcAccelerationStructure was last built" + "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, its geometry.triangles.vertexFormat member must have the same value which was specified when srcAccelerationStructure was last built", + "page": "vkspec" }, { "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03764", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, its geometry.triangles.maxVertex member must have the same value which was specified when srcAccelerationStructure was last built" + "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, its geometry.triangles.maxVertex member must have the same value which was specified when srcAccelerationStructure was last built", + "page": "vkspec" }, { "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03765", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, its geometry.triangles.indexType member must have the same value which was specified when srcAccelerationStructure was last built" + "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, its geometry.triangles.indexType member must have the same value which was specified when srcAccelerationStructure was last built", + "page": "vkspec" }, { "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03766", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, if its geometry.triangles.transformData address was NULL when srcAccelerationStructure was last built, then it must be NULL" + "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, if its geometry.triangles.transformData address was NULL when srcAccelerationStructure was last built, then it must be NULL", + "page": "vkspec" }, { "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03767", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, if its geometry.triangles.transformData address was not NULL when srcAccelerationStructure was last built, then it must not be NULL" + "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, if its geometry.triangles.transformData address was not NULL when srcAccelerationStructure was last built, then it must not be NULL", + "page": "vkspec" }, { "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03768", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, and geometry.triangles.indexType is not VK_INDEX_TYPE_NONE_KHR, then the value of each index referenced must be the same as the corresponding index value when srcAccelerationStructure was last built" + "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, and geometry.triangles.indexType is not VK_INDEX_TYPE_NONE_KHR, then the value of each index referenced must be the same as the corresponding index value when srcAccelerationStructure was last built", + "page": "vkspec" }, { "vuid": "VUID-vkBuildAccelerationStructuresKHR-primitiveCount-03769", - "text": " For each VkAccelerationStructureBuildRangeInfoKHR referenced by this command, its primitiveCount member must have the same value which was specified when srcAccelerationStructure was last built" + "text": "For each VkAccelerationStructureBuildRangeInfoKHR referenced by this command, its primitiveCount member must have the same value which was specified when srcAccelerationStructure was last built", + "page": "vkspec" }, { "vuid": "VUID-vkBuildAccelerationStructuresKHR-firstVertex-03770", - "text": " For each VkAccelerationStructureBuildRangeInfoKHR referenced by this command, if the corresponding geometry uses indices, its firstVertex member must have the same value which was specified when srcAccelerationStructure was last built" + "text": "For each VkAccelerationStructureBuildRangeInfoKHR referenced by this command, if the corresponding geometry uses indices, its firstVertex member must have the same value which was specified when srcAccelerationStructure was last built", + "page": "vkspec" }, { "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03801", - "text": " For each element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, the corresponding pname:ppBuildRangeInfos[i][j].pname:primitiveCount must be less than or equal to VkPhysicalDeviceAccelerationStructurePropertiesKHR::maxInstanceCount" + "text": "For each element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, the corresponding ppBuildRangeInfos[i][j].primitiveCount must be less than or equal to VkPhysicalDeviceAccelerationStructurePropertiesKHR::maxInstanceCount", + "page": "vkspec" }, { "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03675", - "text": " For each pInfos[i], dstAccelerationStructure must have been created with a value of VkAccelerationStructureCreateInfoKHR::size greater than or equal to the memory size required by the build operation, as returned by vkGetAccelerationStructureBuildSizesKHR with pBuildInfo = pInfos[i] and with each element of the pMaxPrimitiveCounts array greater than or equal to the equivalent ppBuildRangeInfos[i][j].primitiveCount values for j in [0,pInfos[i].geometryCount)" + "text": "For each pInfos[i], dstAccelerationStructure must have been created with a value of VkAccelerationStructureCreateInfoKHR::size greater than or equal to the memory size required by the build operation, as returned by vkGetAccelerationStructureBuildSizesKHR with pBuildInfo = pInfos[i] and with each element of the pMaxPrimitiveCounts array greater than or equal to the equivalent ppBuildRangeInfos[i][j].primitiveCount values for j in [0,pInfos[i].geometryCount)", + "page": "vkspec" }, { "vuid": "VUID-vkBuildAccelerationStructuresKHR-ppBuildRangeInfos-03676", - "text": " Each element of ppBuildRangeInfos[i] must be a valid pointer to an array of pInfos[i].geometryCount VkAccelerationStructureBuildRangeInfoKHR structures" + "text": "Each element of ppBuildRangeInfos[i] must be a valid pointer to an array of pInfos[i].geometryCount VkAccelerationStructureBuildRangeInfoKHR structures", + "page": "vkspec" }, { "vuid": "VUID-vkBuildAccelerationStructuresKHR-deferredOperation-03677", - "text": " If deferredOperation is not VK_NULL_HANDLE, it must be a valid VkDeferredOperationKHR object" + "text": "If deferredOperation is not VK_NULL_HANDLE, it must be a valid VkDeferredOperationKHR object", + "page": "vkspec" }, { "vuid": "VUID-vkBuildAccelerationStructuresKHR-deferredOperation-03678", - "text": " Any previous deferred operation that was associated with deferredOperation must be complete" + "text": "Any previous deferred operation that was associated with deferredOperation must be complete", + "page": "vkspec" }, { "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03722", - "text": " For each element of pInfos, the buffer used to create its dstAccelerationStructure member must be bound to host-visible device memory" + "text": "For each element of pInfos, the buffer used to create its dstAccelerationStructure member must be bound to host-visible device memory", + "page": "vkspec" }, { "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03723", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR the buffer used to create its srcAccelerationStructure member must be bound to host-visible device memory" + "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR the buffer used to create its srcAccelerationStructure member must be bound to host-visible device memory", + "page": "vkspec" }, { "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03724", - "text": " For each element of pInfos, the buffer used to create each acceleration structure referenced by the geometry.instances.data member of any element of pGeometries or ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR must be bound to host-visible device memory" + "text": "For each element of pInfos, the buffer used to create each acceleration structure referenced by the geometry.instances.data member of any element of pGeometries or ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR must be bound to host-visible device memory", + "page": "vkspec" }, { "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03725", - "text": " If pInfos[i].mode is VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR, all addresses between pInfos[i].scratchData.hostAddress and pInfos[i].scratchData.hostAddress + N - 1 must be valid host memory, where N is given by the buildScratchSize member of the VkAccelerationStructureBuildSizesInfoKHR structure returned from a call to vkGetAccelerationStructureBuildSizesKHR with an identical VkAccelerationStructureBuildGeometryInfoKHR structure and primitive count" + "text": "If pInfos[i].mode is VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR, all addresses between pInfos[i].scratchData.hostAddress and pInfos[i].scratchData.hostAddress + N - 1 must be valid host memory, where N is given by the buildScratchSize member of the VkAccelerationStructureBuildSizesInfoKHR structure returned from a call to vkGetAccelerationStructureBuildSizesKHR with an identical VkAccelerationStructureBuildGeometryInfoKHR structure and primitive count", + "page": "vkspec" }, { "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03726", - "text": " If pInfos[i].mode is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, all addresses between pInfos[i].scratchData.hostAddress and pInfos[i].scratchData.hostAddress + N - 1 must be valid host memory, where N is given by the updateScratchSize member of the VkAccelerationStructureBuildSizesInfoKHR structure returned from a call to vkGetAccelerationStructureBuildSizesKHR with an identical VkAccelerationStructureBuildGeometryInfoKHR structure and primitive count" + "text": "If pInfos[i].mode is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, all addresses between pInfos[i].scratchData.hostAddress and pInfos[i].scratchData.hostAddress + N - 1 must be valid host memory, where N is given by the updateScratchSize member of the VkAccelerationStructureBuildSizesInfoKHR structure returned from a call to vkGetAccelerationStructureBuildSizesKHR with an identical VkAccelerationStructureBuildGeometryInfoKHR structure and primitive count", + "page": "vkspec" }, { "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03771", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, geometry.triangles.vertexData.hostAddress must be a valid host address" + "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, geometry.triangles.vertexData.hostAddress must be a valid host address", + "page": "vkspec" }, { "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03772", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if geometry.triangles.indexType is not VK_INDEX_TYPE_NONE_KHR, geometry.triangles.indexData.hostAddress must be a valid host address" + "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if geometry.triangles.indexType is not VK_INDEX_TYPE_NONE_KHR, geometry.triangles.indexData.hostAddress must be a valid host address", + "page": "vkspec" }, { "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03773", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if geometry.triangles.transformData.hostAddress is not 0, it must be a valid host address" + "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if geometry.triangles.transformData.hostAddress is not 0, it must be a valid host address", + "page": "vkspec" }, { "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03774", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_AABBS_KHR, geometry.aabbs.data.hostAddress must be a valid host address" + "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_AABBS_KHR, geometry.aabbs.data.hostAddress must be a valid host address", + "page": "vkspec" }, { "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03775", - "text": " For each element of pInfos, the buffer used to create its dstAccelerationStructure member must be bound to memory that was not allocated with multiple instances" + "text": "For each element of pInfos, the buffer used to create its dstAccelerationStructure member must be bound to memory that was not allocated with multiple instances", + "page": "vkspec" }, { "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03776", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR the buffer used to create its srcAccelerationStructure member must be bound to memory that was not allocated with multiple instances" + "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR the buffer used to create its srcAccelerationStructure member must be bound to memory that was not allocated with multiple instances", + "page": "vkspec" }, { "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03777", - "text": " For each element of pInfos, the buffer used to create each acceleration structure referenced by the geometry.instances.data member of any element of pGeometries or ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR must be bound to memory that was not allocated with multiple instances" + "text": "For each element of pInfos, the buffer used to create each acceleration structure referenced by the geometry.instances.data member of any element of pGeometries or ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR must be bound to memory that was not allocated with multiple instances", + "page": "vkspec" }, { "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03778", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, geometry.instances.data.hostAddress must be a valid host address" + "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, geometry.instances.data.hostAddress must be a valid host address", + "page": "vkspec" }, { "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03779", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, each VkAccelerationStructureInstanceKHR::accelerationStructureReference value in geometry.instances.data.hostAddress must be a valid VkAccelerationStructureKHR object" + "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, each VkAccelerationStructureInstanceKHR::accelerationStructureReference value in geometry.instances.data.hostAddress must be a valid VkAccelerationStructureKHR object", + "page": "vkspec" }, { "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-04930", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR with VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV set, each accelerationStructureReference in any structure in VkAccelerationStructureMotionInstanceNV value in geometry.instances.data.hostAddress must be a valid VkAccelerationStructureKHR object" + "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR with VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV set, each accelerationStructureReference in any structure in VkAccelerationStructureMotionInstanceNV value in geometry.instances.data.hostAddress must be a valid VkAccelerationStructureKHR object", + "page": "vkspec" }, { "vuid": "VUID-vkBuildAccelerationStructuresKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkBuildAccelerationStructuresKHR-deferredOperation-parameter", - "text": " If deferredOperation is not VK_NULL_HANDLE, deferredOperation must be a valid VkDeferredOperationKHR handle" + "text": "If deferredOperation is not VK_NULL_HANDLE, deferredOperation must be a valid VkDeferredOperationKHR handle", + "page": "vkspec" }, { "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-parameter", - "text": " pInfos must be a valid pointer to an array of infoCount valid VkAccelerationStructureBuildGeometryInfoKHR structures" + "text": "pInfos must be a valid pointer to an array of infoCount valid VkAccelerationStructureBuildGeometryInfoKHR structures", + "page": "vkspec" }, { "vuid": "VUID-vkBuildAccelerationStructuresKHR-ppBuildRangeInfos-parameter", - "text": " ppBuildRangeInfos must be a valid pointer to an array of infoCount VkAccelerationStructureBuildRangeInfoKHR structures" + "text": "ppBuildRangeInfos must be a valid pointer to an array of infoCount VkAccelerationStructureBuildRangeInfoKHR structures", + "page": "vkspec" }, { "vuid": "VUID-vkBuildAccelerationStructuresKHR-infoCount-arraylength", - "text": " infoCount must be greater than 0" + "text": "infoCount must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-vkBuildAccelerationStructuresKHR-deferredOperation-parent", - "text": " If deferredOperation is a valid handle, it must have been created, allocated, or retrieved from device" + "text": "If deferredOperation is a valid handle, it must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -66266,47 +85560,58 @@ "core": [ { "vuid": "VUID-vkCopyAccelerationStructureKHR-accelerationStructureHostCommands-03582", - "text": " The VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructureHostCommands" + "text": "The VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructureHostCommands", + "page": "vkspec" }, { "vuid": "VUID-vkCopyAccelerationStructureKHR-deferredOperation-03677", - "text": " If deferredOperation is not VK_NULL_HANDLE, it must be a valid VkDeferredOperationKHR object" + "text": "If deferredOperation is not VK_NULL_HANDLE, it must be a valid VkDeferredOperationKHR object", + "page": "vkspec" }, { "vuid": "VUID-vkCopyAccelerationStructureKHR-deferredOperation-03678", - "text": " Any previous deferred operation that was associated with deferredOperation must be complete" + "text": "Any previous deferred operation that was associated with deferredOperation must be complete", + "page": "vkspec" }, { "vuid": "VUID-vkCopyAccelerationStructureKHR-buffer-03727", - "text": " The buffer used to create pInfo->src must be bound to host-visible device memory" + "text": "The buffer used to create pInfo->src must be bound to host-visible device memory", + "page": "vkspec" }, { "vuid": "VUID-vkCopyAccelerationStructureKHR-buffer-03728", - "text": " The buffer used to create pInfo->dst must be bound to host-visible device memory feature must be enabled" + "text": "The buffer used to create pInfo->dst must be bound to host-visible device memory feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCopyAccelerationStructureKHR-buffer-03780", - "text": " The buffer used to create pInfo->src must be bound to memory that was not allocated with multiple instances" + "text": "The buffer used to create pInfo->src must be bound to memory that was not allocated with multiple instances", + "page": "vkspec" }, { "vuid": "VUID-vkCopyAccelerationStructureKHR-buffer-03781", - "text": " The buffer used to create pInfo->dst must be bound to memory that was not allocated with multiple instances" + "text": "The buffer used to create pInfo->dst must be bound to memory that was not allocated with multiple instances", + "page": "vkspec" }, { "vuid": "VUID-vkCopyAccelerationStructureKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkCopyAccelerationStructureKHR-deferredOperation-parameter", - "text": " If deferredOperation is not VK_NULL_HANDLE, deferredOperation must be a valid VkDeferredOperationKHR handle" + "text": "If deferredOperation is not VK_NULL_HANDLE, deferredOperation must be a valid VkDeferredOperationKHR handle", + "page": "vkspec" }, { "vuid": "VUID-vkCopyAccelerationStructureKHR-pInfo-parameter", - "text": " pInfo must be a valid pointer to a valid VkCopyAccelerationStructureInfoKHR structure" + "text": "pInfo must be a valid pointer to a valid VkCopyAccelerationStructureInfoKHR structure", + "page": "vkspec" }, { "vuid": "VUID-vkCopyAccelerationStructureKHR-deferredOperation-parent", - "text": " If deferredOperation is a valid handle, it must have been created, allocated, or retrieved from device" + "text": "If deferredOperation is a valid handle, it must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -66314,47 +85619,58 @@ "core": [ { "vuid": "VUID-vkCopyMemoryToAccelerationStructureKHR-accelerationStructureHostCommands-03583", - "text": " The VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructureHostCommands feature must be enabled" + "text": "The VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructureHostCommands feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCopyMemoryToAccelerationStructureKHR-deferredOperation-03677", - "text": " If deferredOperation is not VK_NULL_HANDLE, it must be a valid VkDeferredOperationKHR object" + "text": "If deferredOperation is not VK_NULL_HANDLE, it must be a valid VkDeferredOperationKHR object", + "page": "vkspec" }, { "vuid": "VUID-vkCopyMemoryToAccelerationStructureKHR-deferredOperation-03678", - "text": " Any previous deferred operation that was associated with deferredOperation must be complete" + "text": "Any previous deferred operation that was associated with deferredOperation must be complete", + "page": "vkspec" }, { "vuid": "VUID-vkCopyMemoryToAccelerationStructureKHR-pInfo-03729", - "text": " pInfo->src.hostAddress must be a valid host pointer" + "text": "pInfo->src.hostAddress must be a valid host pointer", + "page": "vkspec" }, { "vuid": "VUID-vkCopyMemoryToAccelerationStructureKHR-pInfo-03750", - "text": " pInfo->src.hostAddress must be aligned to 16 bytes" + "text": "pInfo->src.hostAddress must be aligned to 16 bytes", + "page": "vkspec" }, { "vuid": "VUID-vkCopyMemoryToAccelerationStructureKHR-buffer-03730", - "text": " The buffer used to create pInfo->dst must be bound to host-visible device memory" + "text": "The buffer used to create pInfo->dst must be bound to host-visible device memory", + "page": "vkspec" }, { "vuid": "VUID-vkCopyMemoryToAccelerationStructureKHR-buffer-03782", - "text": " The buffer used to create pInfo->dst must be bound to memory that was not allocated with multiple instances" + "text": "The buffer used to create pInfo->dst must be bound to memory that was not allocated with multiple instances", + "page": "vkspec" }, { "vuid": "VUID-vkCopyMemoryToAccelerationStructureKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkCopyMemoryToAccelerationStructureKHR-deferredOperation-parameter", - "text": " If deferredOperation is not VK_NULL_HANDLE, deferredOperation must be a valid VkDeferredOperationKHR handle" + "text": "If deferredOperation is not VK_NULL_HANDLE, deferredOperation must be a valid VkDeferredOperationKHR handle", + "page": "vkspec" }, { "vuid": "VUID-vkCopyMemoryToAccelerationStructureKHR-pInfo-parameter", - "text": " pInfo must be a valid pointer to a valid VkCopyMemoryToAccelerationStructureInfoKHR structure" + "text": "pInfo must be a valid pointer to a valid VkCopyMemoryToAccelerationStructureInfoKHR structure", + "page": "vkspec" }, { "vuid": "VUID-vkCopyMemoryToAccelerationStructureKHR-deferredOperation-parent", - "text": " If deferredOperation is a valid handle, it must have been created, allocated, or retrieved from device" + "text": "If deferredOperation is a valid handle, it must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -66362,47 +85678,58 @@ "core": [ { "vuid": "VUID-vkCopyAccelerationStructureToMemoryKHR-accelerationStructureHostCommands-03584", - "text": " The VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructureHostCommands feature must be enabled" + "text": "The VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructureHostCommands feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCopyAccelerationStructureToMemoryKHR-deferredOperation-03677", - "text": " If deferredOperation is not VK_NULL_HANDLE, it must be a valid VkDeferredOperationKHR object" + "text": "If deferredOperation is not VK_NULL_HANDLE, it must be a valid VkDeferredOperationKHR object", + "page": "vkspec" }, { "vuid": "VUID-vkCopyAccelerationStructureToMemoryKHR-deferredOperation-03678", - "text": " Any previous deferred operation that was associated with deferredOperation must be complete" + "text": "Any previous deferred operation that was associated with deferredOperation must be complete", + "page": "vkspec" }, { "vuid": "VUID-vkCopyAccelerationStructureToMemoryKHR-buffer-03731", - "text": " The buffer used to create pInfo->src must be bound to host-visible device memory" + "text": "The buffer used to create pInfo->src must be bound to host-visible device memory", + "page": "vkspec" }, { "vuid": "VUID-vkCopyAccelerationStructureToMemoryKHR-pInfo-03732", - "text": " pInfo->dst.hostAddress must be a valid host pointer" + "text": "pInfo->dst.hostAddress must be a valid host pointer", + "page": "vkspec" }, { "vuid": "VUID-vkCopyAccelerationStructureToMemoryKHR-pInfo-03751", - "text": " pInfo->dst.hostAddress must be aligned to 16 bytes" + "text": "pInfo->dst.hostAddress must be aligned to 16 bytes", + "page": "vkspec" }, { "vuid": "VUID-vkCopyAccelerationStructureToMemoryKHR-buffer-03783", - "text": " The buffer used to create pInfo->src must be bound to memory that was not allocated with multiple instances" + "text": "The buffer used to create pInfo->src must be bound to memory that was not allocated with multiple instances", + "page": "vkspec" }, { "vuid": "VUID-vkCopyAccelerationStructureToMemoryKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkCopyAccelerationStructureToMemoryKHR-deferredOperation-parameter", - "text": " If deferredOperation is not VK_NULL_HANDLE, deferredOperation must be a valid VkDeferredOperationKHR handle" + "text": "If deferredOperation is not VK_NULL_HANDLE, deferredOperation must be a valid VkDeferredOperationKHR handle", + "page": "vkspec" }, { "vuid": "VUID-vkCopyAccelerationStructureToMemoryKHR-pInfo-parameter", - "text": " pInfo must be a valid pointer to a valid VkCopyAccelerationStructureToMemoryInfoKHR structure" + "text": "pInfo must be a valid pointer to a valid VkCopyAccelerationStructureToMemoryInfoKHR structure", + "page": "vkspec" }, { "vuid": "VUID-vkCopyAccelerationStructureToMemoryKHR-deferredOperation-parent", - "text": " If deferredOperation is a valid handle, it must have been created, allocated, or retrieved from device" + "text": "If deferredOperation is a valid handle, it must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -66410,91 +85737,113 @@ "core": [ { "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-accelerationStructureHostCommands-03585", - "text": " The VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructureHostCommands feature must be enabled" + "text": "The VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructureHostCommands feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-pAccelerationStructures-04964", - "text": " All acceleration structures in pAccelerationStructures must have been built prior to the execution of this command" + "text": "All acceleration structures in pAccelerationStructures must have been built prior to the execution of this command", + "page": "vkspec" }, { "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-accelerationStructures-03431", - "text": " All acceleration structures in pAccelerationStructures must have been built with VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR if queryType is VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR" + "text": "All acceleration structures in pAccelerationStructures must have been built with VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR if queryType is VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-06742", - "text": " queryType must be VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR, VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR, VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR or VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR" + "text": "queryType must be VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR, VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR, VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR or VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-03448", - "text": " If queryType is VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR, then stride must be a multiple of the size of VkDeviceSize" + "text": "If queryType is VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR, then stride must be a multiple of the size of VkDeviceSize", + "page": "vkspec" }, { "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-03449", - "text": " If queryType is VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR, then pData must point to a VkDeviceSize" + "text": "If queryType is VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR, then pData must point to a VkDeviceSize", + "page": "vkspec" }, { "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-03450", - "text": " If queryType is VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR, then stride must be a multiple of the size of VkDeviceSize" + "text": "If queryType is VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR, then stride must be a multiple of the size of VkDeviceSize", + "page": "vkspec" }, { "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-03451", - "text": " If queryType is VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR, then pData must point to a VkDeviceSize" + "text": "If queryType is VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR, then pData must point to a VkDeviceSize", + "page": "vkspec" }, { "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-06731", - "text": " If queryType is VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR, then stride must be a multiple of the size of VkDeviceSize" + "text": "If queryType is VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR, then stride must be a multiple of the size of VkDeviceSize", + "page": "vkspec" }, { "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-06732", - "text": " If queryType is VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR, then pData must point to a VkDeviceSize" + "text": "If queryType is VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR, then pData must point to a VkDeviceSize", + "page": "vkspec" }, { "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-06733", - "text": " If queryType is VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR, then stride must be a multiple of the size of VkDeviceSize" + "text": "If queryType is VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR, then stride must be a multiple of the size of VkDeviceSize", + "page": "vkspec" }, { "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-06734", - "text": " If queryType is VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR, then pData must point to a VkDeviceSize" + "text": "If queryType is VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR, then pData must point to a VkDeviceSize", + "page": "vkspec" }, { "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-dataSize-03452", - "text": " dataSize must be greater than or equal to accelerationStructureCount*stride" + "text": "dataSize must be greater than or equal to accelerationStructureCount*stride", + "page": "vkspec" }, { "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-buffer-03733", - "text": " The buffer used to create each acceleration structure in pAccelerationStructures must be bound to host-visible device memory" + "text": "The buffer used to create each acceleration structure in pAccelerationStructures must be bound to host-visible device memory", + "page": "vkspec" }, { "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-buffer-03784", - "text": " The buffer used to create each acceleration structure in pAccelerationStructures must be bound to memory that was not allocated with multiple instances" + "text": "The buffer used to create each acceleration structure in pAccelerationStructures must be bound to memory that was not allocated with multiple instances", + "page": "vkspec" }, { "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-pAccelerationStructures-parameter", - "text": " pAccelerationStructures must be a valid pointer to an array of accelerationStructureCount valid VkAccelerationStructureKHR handles" + "text": "pAccelerationStructures must be a valid pointer to an array of accelerationStructureCount valid VkAccelerationStructureKHR handles", + "page": "vkspec" }, { "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-parameter", - "text": " queryType must be a valid VkQueryType value" + "text": "queryType must be a valid VkQueryType value", + "page": "vkspec" }, { "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-pData-parameter", - "text": " pData must be a valid pointer to an array of dataSize bytes" + "text": "pData must be a valid pointer to an array of dataSize bytes", + "page": "vkspec" }, { "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-accelerationStructureCount-arraylength", - "text": " accelerationStructureCount must be greater than 0" + "text": "accelerationStructureCount must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-dataSize-arraylength", - "text": " dataSize must be greater than 0" + "text": "dataSize must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-pAccelerationStructures-parent", - "text": " Each element of pAccelerationStructures must have been created, allocated, or retrieved from device" + "text": "Each element of pAccelerationStructures must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -66502,91 +85851,113 @@ "core": [ { "vuid": "VUID-vkCmdBuildMicromapsEXT-pInfos-07461", - "text": " For each pInfos[i], dstMicromap must have been created with a value of VkMicromapCreateInfoEXT::size greater than or equal to the memory size required by the build operation, as returned by vkGetMicromapBuildSizesEXT with pBuildInfo = pInfos[i]" + "text": "For each pInfos[i], dstMicromap must have been created with a value of VkMicromapCreateInfoEXT::size greater than or equal to the memory size required by the build operation, as returned by vkGetMicromapBuildSizesEXT with pBuildInfo = pInfos[i]", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildMicromapsEXT-mode-07462", - "text": " The mode member of each element of pInfos must be a valid VkBuildMicromapModeEXT value" + "text": "The mode member of each element of pInfos must be a valid VkBuildMicromapModeEXT value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildMicromapsEXT-dstMicromap-07463", - "text": " The dstMicromap member of any element of pInfos must be a valid VkMicromapEXT handle" + "text": "The dstMicromap member of any element of pInfos must be a valid VkMicromapEXT handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildMicromapsEXT-pInfos-07464", - "text": " For each element of pInfos its type member must match the value of VkMicromapCreateInfoEXT::type when its dstMicromap was created" + "text": "For each element of pInfos its type member must match the value of VkMicromapCreateInfoEXT::type when its dstMicromap was created", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildMicromapsEXT-dstMicromap-07465", - "text": " The range of memory backing the dstMicromap member of any element of pInfos that is accessed by this command must not overlap the memory backing the dstMicromap member of any other element of pInfos, which is accessed by this command" + "text": "The range of memory backing the dstMicromap member of any element of pInfos that is accessed by this command must not overlap the memory backing the dstMicromap member of any other element of pInfos, which is accessed by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildMicromapsEXT-dstMicromap-07466", - "text": " The range of memory backing the dstMicromap member of any element of pInfos that is accessed by this command must not overlap the memory backing the scratchData member of any element of pInfos (including the same element), which is accessed by this command" + "text": "The range of memory backing the dstMicromap member of any element of pInfos that is accessed by this command must not overlap the memory backing the scratchData member of any element of pInfos (including the same element), which is accessed by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildMicromapsEXT-scratchData-07467", - "text": " The range of memory backing the scratchData member of any element of pInfos that is accessed by this command must not overlap the memory backing the scratchData member of any other element of pInfos, which is accessed by this command" + "text": "The range of memory backing the scratchData member of any element of pInfos that is accessed by this command must not overlap the memory backing the scratchData member of any other element of pInfos, which is accessed by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildMicromapsEXT-pInfos-07508", - "text": " For each element of pInfos, the buffer used to create its dstMicromap member must be bound to device memory" + "text": "For each element of pInfos, the buffer used to create its dstMicromap member must be bound to device memory", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildMicromapsEXT-pInfos-07509", - "text": " If pInfos[i].mode is VK_BUILD_MICROMAP_MODE_BUILD_EXT, all addresses between pInfos[i].scratchData.deviceAddress and pInfos[i].scratchData.deviceAddress + N - 1 must be in the buffer device address range of the same buffer, where N is given by the buildScratchSize member of the VkMicromapBuildSizesInfoEXT structure returned from a call to vkGetMicromapBuildSizesEXT with an identical VkMicromapBuildInfoEXT structure and primitive count" + "text": "If pInfos[i].mode is VK_BUILD_MICROMAP_MODE_BUILD_EXT, all addresses between pInfos[i].scratchData.deviceAddress and pInfos[i].scratchData.deviceAddress + N - 1 must be in the buffer device address range of the same buffer, where N is given by the buildScratchSize member of the VkMicromapBuildSizesInfoEXT structure returned from a call to vkGetMicromapBuildSizesEXT with an identical VkMicromapBuildInfoEXT structure and primitive count", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildMicromapsEXT-data-07510", - "text": " The buffers from which the buffer device addresses for all of the data and triangleArray members of all pInfos[i] are queried must have been created with the VK_BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT usage flag" + "text": "The buffers from which the buffer device addresses for all of the data and triangleArray members of all pInfos[i] are queried must have been created with the VK_BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT usage flag", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildMicromapsEXT-pInfos-07511", - "text": " For each element of pInfos[i] the buffer from which the buffer device address pInfos[i].scratchData.deviceAddress is queried must have been created with VK_BUFFER_USAGE_STORAGE_BUFFER_BIT usage flag" + "text": "For each element of pInfos[i] the buffer from which the buffer device address pInfos[i].scratchData.deviceAddress is queried must have been created with VK_BUFFER_USAGE_STORAGE_BUFFER_BIT usage flag", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildMicromapsEXT-pInfos-07512", - "text": " For each element of pInfos, its scratchData.deviceAddress, data.deviceAddress, and triangleArray.deviceAddress members must be valid device addresses obtained from vkGetBufferDeviceAddress" + "text": "For each element of pInfos, its scratchData.deviceAddress, data.deviceAddress, and triangleArray.deviceAddress members must be valid device addresses obtained from vkGetBufferDeviceAddress", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildMicromapsEXT-pInfos-07513", - "text": " For each element of pInfos, if scratchData.deviceAddress, data.deviceAddress, or triangleArray.deviceAddress is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "For each element of pInfos, if scratchData.deviceAddress, data.deviceAddress, or triangleArray.deviceAddress is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildMicromapsEXT-pInfos-07514", - "text": " For each element of pInfos, its scratchData.deviceAddress member must be a multiple of VkPhysicalDeviceAccelerationStructurePropertiesKHR::minAccelerationStructureScratchOffsetAlignment" + "text": "For each element of pInfos, its scratchData.deviceAddress member must be a multiple of VkPhysicalDeviceAccelerationStructurePropertiesKHR::minAccelerationStructureScratchOffsetAlignment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildMicromapsEXT-pInfos-07515", - "text": " For each element of pInfos, its triangleArray.deviceAddress and data.deviceAddress members must be a multiple of 256" + "text": "For each element of pInfos, its triangleArray.deviceAddress and data.deviceAddress members must be a multiple of 256", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildMicromapsEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildMicromapsEXT-pInfos-parameter", - "text": " pInfos must be a valid pointer to an array of infoCount valid VkMicromapBuildInfoEXT structures" + "text": "pInfos must be a valid pointer to an array of infoCount valid VkMicromapBuildInfoEXT structures", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildMicromapsEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildMicromapsEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support compute operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildMicromapsEXT-renderpass", - "text": " This command must only be called outside of a render pass instance" + "text": "This command must only be called outside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildMicromapsEXT-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBuildMicromapsEXT-infoCount-arraylength", - "text": " infoCount must be greater than 0" + "text": "infoCount must be greater than 0", + "page": "vkspec" } ] }, @@ -66594,47 +85965,58 @@ "core": [ { "vuid": "VUID-VkMicromapBuildInfoEXT-pUsageCounts-07516", - "text": " Only one of pUsageCounts or ppUsageCounts can be a valid pointer, the other must be NULL" + "text": "Only one of pUsageCounts or ppUsageCounts can be a valid pointer, the other must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkMicromapBuildInfoEXT-type-07517", - "text": " If type is VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT the format member of VkMicromapUsageEXT must be a valid value from VkOpacityMicromapFormatEXT" + "text": "If type is VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT the format member of VkMicromapUsageEXT must be a valid value from VkOpacityMicromapFormatEXT", + "page": "vkspec" }, { "vuid": "VUID-VkMicromapBuildInfoEXT-type-07518", - "text": " If type is VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT the format member of VkMicromapTriangleEXT must be a valid value from VkOpacityMicromapFormatEXT" + "text": "If type is VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT the format member of VkMicromapTriangleEXT must be a valid value from VkOpacityMicromapFormatEXT", + "page": "vkspec" }, { "vuid": "VUID-VkMicromapBuildInfoEXT-type-08704", - "text": " If type is VK_MICROMAP_TYPE_DISPLACEMENT_MICROMAP_NV the format member of VkMicromapUsageEXT must be a valid value from VkDisplacementMicromapFormatNV" + "text": "If type is VK_MICROMAP_TYPE_DISPLACEMENT_MICROMAP_NV the format member of VkMicromapUsageEXT must be a valid value from VkDisplacementMicromapFormatNV", + "page": "vkspec" }, { "vuid": "VUID-VkMicromapBuildInfoEXT-type-08705", - "text": " If type is VK_MICROMAP_TYPE_DISPLACEMENT_MICROMAP_NV the format member of VkMicromapTriangleEXT must be a valid value from VkDisplacementMicromapFormatNV" + "text": "If type is VK_MICROMAP_TYPE_DISPLACEMENT_MICROMAP_NV the format member of VkMicromapTriangleEXT must be a valid value from VkDisplacementMicromapFormatNV", + "page": "vkspec" }, { "vuid": "VUID-VkMicromapBuildInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkMicromapBuildInfoEXT-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkMicromapBuildInfoEXT-type-parameter", - "text": " type must be a valid VkMicromapTypeEXT value" + "text": "type must be a valid VkMicromapTypeEXT value", + "page": "vkspec" }, { "vuid": "VUID-VkMicromapBuildInfoEXT-flags-parameter", - "text": " flags must be a valid combination of VkBuildMicromapFlagBitsEXT values" + "text": "flags must be a valid combination of VkBuildMicromapFlagBitsEXT values", + "page": "vkspec" }, { "vuid": "VUID-VkMicromapBuildInfoEXT-pUsageCounts-parameter", - "text": " If usageCountsCount is not 0, and pUsageCounts is not NULL, pUsageCounts must be a valid pointer to an array of usageCountsCount VkMicromapUsageEXT structures" + "text": "If usageCountsCount is not 0, and pUsageCounts is not NULL, pUsageCounts must be a valid pointer to an array of usageCountsCount VkMicromapUsageEXT structures", + "page": "vkspec" }, { "vuid": "VUID-VkMicromapBuildInfoEXT-ppUsageCounts-parameter", - "text": " If usageCountsCount is not 0, and ppUsageCounts is not NULL, ppUsageCounts must be a valid pointer to an array of usageCountsCount valid pointers to VkMicromapUsageEXT structures" + "text": "If usageCountsCount is not 0, and ppUsageCounts is not NULL, ppUsageCounts must be a valid pointer to an array of usageCountsCount valid pointers to VkMicromapUsageEXT structures", + "page": "vkspec" } ] }, @@ -66642,23 +86024,28 @@ "core": [ { "vuid": "VUID-VkMicromapUsageEXT-format-07519", - "text": " If the VkMicromapTypeEXT of the micromap is VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT then format must be VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT or VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT" + "text": "If the VkMicromapTypeEXT of the micromap is VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT then format must be VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT or VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkMicromapUsageEXT-format-07520", - "text": " If the VkMicromapTypeEXT of the micromap is VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT and format is VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT then subdivisionLevel must be less than or equal to VkPhysicalDeviceOpacityMicromapPropertiesEXT::maxOpacity2StateSubdivisionLevel" + "text": "If the VkMicromapTypeEXT of the micromap is VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT and format is VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT then subdivisionLevel must be less than or equal to VkPhysicalDeviceOpacityMicromapPropertiesEXT::maxOpacity2StateSubdivisionLevel", + "page": "vkspec" }, { "vuid": "VUID-VkMicromapUsageEXT-format-07521", - "text": " If the VkMicromapTypeEXT of the micromap is VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT and format is VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT then subdivisionLevel must be less than or equal to VkPhysicalDeviceOpacityMicromapPropertiesEXT::maxOpacity4StateSubdivisionLevel" + "text": "If the VkMicromapTypeEXT of the micromap is VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT and format is VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT then subdivisionLevel must be less than or equal to VkPhysicalDeviceOpacityMicromapPropertiesEXT::maxOpacity4StateSubdivisionLevel", + "page": "vkspec" }, { "vuid": "VUID-VkMicromapUsageEXT-format-08706", - "text": " If the VkMicromapTypeEXT of the micromap is VK_MICROMAP_TYPE_DISPLACEMENT_MICROMAP_NV then format must be VK_DISPLACEMENT_MICROMAP_FORMAT_64_TRIANGLES_64_BYTES_NV, VK_DISPLACEMENT_MICROMAP_FORMAT_256_TRIANGLES_128_BYTES_NV or VK_DISPLACEMENT_MICROMAP_FORMAT_1024_TRIANGLES_128_BYTES_NV" + "text": "If the VkMicromapTypeEXT of the micromap is VK_MICROMAP_TYPE_DISPLACEMENT_MICROMAP_NV then format must be VK_DISPLACEMENT_MICROMAP_FORMAT_64_TRIANGLES_64_BYTES_NV, VK_DISPLACEMENT_MICROMAP_FORMAT_256_TRIANGLES_128_BYTES_NV or VK_DISPLACEMENT_MICROMAP_FORMAT_1024_TRIANGLES_128_BYTES_NV", + "page": "vkspec" }, { "vuid": "VUID-VkMicromapUsageEXT-subdivisionLevel-08707", - "text": " If the VkMicromapTypeEXT of the micromap is VK_MICROMAP_TYPE_DISPLACEMENT_MICROMAP_NV then subdivisionLevel must be less than or equal to VkPhysicalDeviceDisplacementMicromapPropertiesNV::maxDisplacementMicromapSubdivisionLevel" + "text": "If the VkMicromapTypeEXT of the micromap is VK_MICROMAP_TYPE_DISPLACEMENT_MICROMAP_NV then subdivisionLevel must be less than or equal to VkPhysicalDeviceDisplacementMicromapPropertiesNV::maxDisplacementMicromapSubdivisionLevel", + "page": "vkspec" } ] }, @@ -66666,23 +86053,28 @@ "core": [ { "vuid": "VUID-VkMicromapTriangleEXT-format-07522", - "text": " If the VkMicromapTypeEXT of the micromap is VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT then format must be VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT or VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT" + "text": "If the VkMicromapTypeEXT of the micromap is VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT then format must be VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT or VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkMicromapTriangleEXT-format-07523", - "text": " If the VkMicromapTypeEXT of the micromap is VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT and format is VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT then subdivisionLevel must be less than or equal to VkPhysicalDeviceOpacityMicromapPropertiesEXT::maxOpacity2StateSubdivisionLevel" + "text": "If the VkMicromapTypeEXT of the micromap is VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT and format is VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT then subdivisionLevel must be less than or equal to VkPhysicalDeviceOpacityMicromapPropertiesEXT::maxOpacity2StateSubdivisionLevel", + "page": "vkspec" }, { "vuid": "VUID-VkMicromapTriangleEXT-format-07524", - "text": " If the VkMicromapTypeEXT of the micromap is VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT and format is VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT then subdivisionLevel must be less than or equal to VkPhysicalDeviceOpacityMicromapPropertiesEXT::maxOpacity4StateSubdivisionLevel" + "text": "If the VkMicromapTypeEXT of the micromap is VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT and format is VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT then subdivisionLevel must be less than or equal to VkPhysicalDeviceOpacityMicromapPropertiesEXT::maxOpacity4StateSubdivisionLevel", + "page": "vkspec" }, { "vuid": "VUID-VkMicromapTriangleEXT-format-08708", - "text": " If the VkMicromapTypeEXT of the micromap is VK_MICROMAP_TYPE_DISPLACEMENT_MICROMAP_NV then format must be VK_DISPLACEMENT_MICROMAP_FORMAT_64_TRIANGLES_64_BYTES_NV, VK_DISPLACEMENT_MICROMAP_FORMAT_256_TRIANGLES_128_BYTES_NV or VK_DISPLACEMENT_MICROMAP_FORMAT_1024_TRIANGLES_128_BYTES_NV" + "text": "If the VkMicromapTypeEXT of the micromap is VK_MICROMAP_TYPE_DISPLACEMENT_MICROMAP_NV then format must be VK_DISPLACEMENT_MICROMAP_FORMAT_64_TRIANGLES_64_BYTES_NV, VK_DISPLACEMENT_MICROMAP_FORMAT_256_TRIANGLES_128_BYTES_NV or VK_DISPLACEMENT_MICROMAP_FORMAT_1024_TRIANGLES_128_BYTES_NV", + "page": "vkspec" }, { "vuid": "VUID-VkMicromapTriangleEXT-subdivisionLevel-08709", - "text": " If the VkMicromapTypeEXT of the micromap is VK_MICROMAP_TYPE_DISPLACEMENT_MICROMAP_NV then subdivisionLevel must be less than or equal to VkPhysicalDeviceDisplacementMicromapPropertiesNV::maxDisplacementMicromapSubdivisionLevel" + "text": "If the VkMicromapTypeEXT of the micromap is VK_MICROMAP_TYPE_DISPLACEMENT_MICROMAP_NV then subdivisionLevel must be less than or equal to VkPhysicalDeviceDisplacementMicromapPropertiesNV::maxDisplacementMicromapSubdivisionLevel", + "page": "vkspec" } ] }, @@ -66690,71 +86082,88 @@ "core": [ { "vuid": "VUID-vkCmdWriteMicromapsPropertiesEXT-queryPool-07525", - "text": " queryPool must have been created with a queryType matching queryType" + "text": "queryPool must have been created with a queryType matching queryType", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteMicromapsPropertiesEXT-queryPool-07526", - "text": " The queries identified by queryPool and firstQuery must be unavailable" + "text": "The queries identified by queryPool and firstQuery must be unavailable", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteMicromapsPropertiesEXT-buffer-07527", - "text": " The buffer used to create each micromap in pMicrmaps must be bound to device memory" + "text": "The buffer used to create each micromap in pMicrmaps must be bound to device memory", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteMicromapsPropertiesEXT-query-07528", - "text": " The sum of query plus micromapCount must be less than or equal to the number of queries in queryPool" + "text": "The sum of query plus micromapCount must be less than or equal to the number of queries in queryPool", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteMicromapsPropertiesEXT-pMicromaps-07501", - "text": " All micromaps in pMicromaps must have been constructed prior to the execution of this command" + "text": "All micromaps in pMicromaps must have been constructed prior to the execution of this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteMicromapsPropertiesEXT-pMicromaps-07502", - "text": " All micromaps in pMicromaps must have been constructed with VK_BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT if queryType is VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT" + "text": "All micromaps in pMicromaps must have been constructed with VK_BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT if queryType is VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteMicromapsPropertiesEXT-queryType-07503", - "text": " queryType must be VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT or VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT" + "text": "queryType must be VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT or VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteMicromapsPropertiesEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteMicromapsPropertiesEXT-pMicromaps-parameter", - "text": " pMicromaps must be a valid pointer to an array of micromapCount valid VkMicromapEXT handles" + "text": "pMicromaps must be a valid pointer to an array of micromapCount valid VkMicromapEXT handles", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteMicromapsPropertiesEXT-queryType-parameter", - "text": " queryType must be a valid VkQueryType value" + "text": "queryType must be a valid VkQueryType value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteMicromapsPropertiesEXT-queryPool-parameter", - "text": " queryPool must be a valid VkQueryPool handle" + "text": "queryPool must be a valid VkQueryPool handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteMicromapsPropertiesEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteMicromapsPropertiesEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support compute operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteMicromapsPropertiesEXT-renderpass", - "text": " This command must only be called outside of a render pass instance" + "text": "This command must only be called outside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteMicromapsPropertiesEXT-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteMicromapsPropertiesEXT-micromapCount-arraylength", - "text": " micromapCount must be greater than 0" + "text": "micromapCount must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-vkCmdWriteMicromapsPropertiesEXT-commonparent", - "text": " Each of commandBuffer, queryPool, and the elements of pMicromaps must have been created, allocated, or retrieved from the same VkDevice" + "text": "Each of commandBuffer, queryPool, and the elements of pMicromaps must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -66762,35 +86171,43 @@ "core": [ { "vuid": "VUID-vkCmdCopyMicromapEXT-buffer-07529", - "text": " The buffer used to create pInfo->src must be bound to device memory" + "text": "The buffer used to create pInfo->src must be bound to device memory", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyMicromapEXT-buffer-07530", - "text": " The buffer used to create pInfo->dst must be bound to device memory" + "text": "The buffer used to create pInfo->dst must be bound to device memory", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyMicromapEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyMicromapEXT-pInfo-parameter", - "text": " pInfo must be a valid pointer to a valid VkCopyMicromapInfoEXT structure" + "text": "pInfo must be a valid pointer to a valid VkCopyMicromapInfoEXT structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyMicromapEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyMicromapEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support compute operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyMicromapEXT-renderpass", - "text": " This command must only be called outside of a render pass instance" + "text": "This command must only be called outside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyMicromapEXT-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -66798,47 +86215,58 @@ "core": [ { "vuid": "VUID-VkCopyMicromapInfoEXT-mode-07531", - "text": " mode must be VK_COPY_MICROMAP_MODE_COMPACT_EXT or VK_COPY_MICROMAP_MODE_CLONE_EXT" + "text": "mode must be VK_COPY_MICROMAP_MODE_COMPACT_EXT or VK_COPY_MICROMAP_MODE_CLONE_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkCopyMicromapInfoEXT-src-07532", - "text": " The source acceleration structure src must have been constructed prior to the execution of this command" + "text": "The source acceleration structure src must have been constructed prior to the execution of this command", + "page": "vkspec" }, { "vuid": "VUID-VkCopyMicromapInfoEXT-mode-07533", - "text": " If mode is VK_COPY_MICROMAP_MODE_COMPACT_EXT, src must have been constructed with VK_BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT in the build" + "text": "If mode is VK_COPY_MICROMAP_MODE_COMPACT_EXT, src must have been constructed with VK_BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT in the build", + "page": "vkspec" }, { "vuid": "VUID-VkCopyMicromapInfoEXT-buffer-07534", - "text": " The buffer used to create src must be bound to device memory" + "text": "The buffer used to create src must be bound to device memory", + "page": "vkspec" }, { "vuid": "VUID-VkCopyMicromapInfoEXT-buffer-07535", - "text": " The buffer used to create dst must be bound to device memory" + "text": "The buffer used to create dst must be bound to device memory", + "page": "vkspec" }, { "vuid": "VUID-VkCopyMicromapInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkCopyMicromapInfoEXT-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkCopyMicromapInfoEXT-src-parameter", - "text": " src must be a valid VkMicromapEXT handle" + "text": "src must be a valid VkMicromapEXT handle", + "page": "vkspec" }, { "vuid": "VUID-VkCopyMicromapInfoEXT-dst-parameter", - "text": " dst must be a valid VkMicromapEXT handle" + "text": "dst must be a valid VkMicromapEXT handle", + "page": "vkspec" }, { "vuid": "VUID-VkCopyMicromapInfoEXT-mode-parameter", - "text": " mode must be a valid VkCopyMicromapModeEXT value" + "text": "mode must be a valid VkCopyMicromapModeEXT value", + "page": "vkspec" }, { "vuid": "VUID-VkCopyMicromapInfoEXT-commonparent", - "text": " Both of dst, and src must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of dst, and src must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -66846,43 +86274,53 @@ "core": [ { "vuid": "VUID-vkCmdCopyMicromapToMemoryEXT-pInfo-07536", - "text": " pInfo->dst.deviceAddress must be a valid device address for a buffer bound to device memory" + "text": "pInfo->dst.deviceAddress must be a valid device address for a buffer bound to device memory", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyMicromapToMemoryEXT-pInfo-07537", - "text": " pInfo->dst.deviceAddress must be aligned to 256 bytes" + "text": "pInfo->dst.deviceAddress must be aligned to 256 bytes", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyMicromapToMemoryEXT-pInfo-07538", - "text": " If the buffer pointed to by pInfo->dst.deviceAddress is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If the buffer pointed to by pInfo->dst.deviceAddress is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyMicromapToMemoryEXT-buffer-07539", - "text": " The buffer used to create pInfo->src must be bound to device memory" + "text": "The buffer used to create pInfo->src must be bound to device memory", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyMicromapToMemoryEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyMicromapToMemoryEXT-pInfo-parameter", - "text": " pInfo must be a valid pointer to a valid VkCopyMicromapToMemoryInfoEXT structure" + "text": "pInfo must be a valid pointer to a valid VkCopyMicromapToMemoryInfoEXT structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyMicromapToMemoryEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyMicromapToMemoryEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support compute operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyMicromapToMemoryEXT-renderpass", - "text": " This command must only be called outside of a render pass instance" + "text": "This command must only be called outside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyMicromapToMemoryEXT-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -66890,31 +86328,38 @@ "core": [ { "vuid": "VUID-VkCopyMicromapToMemoryInfoEXT-src-07540", - "text": " The source micromap src must have been constructed prior to the execution of this command" + "text": "The source micromap src must have been constructed prior to the execution of this command", + "page": "vkspec" }, { "vuid": "VUID-VkCopyMicromapToMemoryInfoEXT-dst-07541", - "text": " The memory pointed to by dst must be at least as large as the serialization size of src, as reported by vkWriteMicromapsPropertiesEXT or vkCmdWriteMicromapsPropertiesEXT with a query type of VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT" + "text": "The memory pointed to by dst must be at least as large as the serialization size of src, as reported by vkWriteMicromapsPropertiesEXT or vkCmdWriteMicromapsPropertiesEXT with a query type of VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkCopyMicromapToMemoryInfoEXT-mode-07542", - "text": " mode must be VK_COPY_MICROMAP_MODE_SERIALIZE_EXT" + "text": "mode must be VK_COPY_MICROMAP_MODE_SERIALIZE_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkCopyMicromapToMemoryInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkCopyMicromapToMemoryInfoEXT-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkCopyMicromapToMemoryInfoEXT-src-parameter", - "text": " src must be a valid VkMicromapEXT handle" + "text": "src must be a valid VkMicromapEXT handle", + "page": "vkspec" }, { "vuid": "VUID-VkCopyMicromapToMemoryInfoEXT-mode-parameter", - "text": " mode must be a valid VkCopyMicromapModeEXT value" + "text": "mode must be a valid VkCopyMicromapModeEXT value", + "page": "vkspec" } ] }, @@ -66922,43 +86367,53 @@ "core": [ { "vuid": "VUID-vkCmdCopyMemoryToMicromapEXT-pInfo-07543", - "text": " pInfo->src.deviceAddress must be a valid device address for a buffer bound to device memory" + "text": "pInfo->src.deviceAddress must be a valid device address for a buffer bound to device memory", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyMemoryToMicromapEXT-pInfo-07544", - "text": " pInfo->src.deviceAddress must be aligned to 256 bytes" + "text": "pInfo->src.deviceAddress must be aligned to 256 bytes", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyMemoryToMicromapEXT-pInfo-07545", - "text": " If the buffer pointed to by pInfo->src.deviceAddress is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If the buffer pointed to by pInfo->src.deviceAddress is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyMemoryToMicromapEXT-buffer-07546", - "text": " The buffer used to create pInfo->dst must be bound to device memory" + "text": "The buffer used to create pInfo->dst must be bound to device memory", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyMemoryToMicromapEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyMemoryToMicromapEXT-pInfo-parameter", - "text": " pInfo must be a valid pointer to a valid VkCopyMemoryToMicromapInfoEXT structure" + "text": "pInfo must be a valid pointer to a valid VkCopyMemoryToMicromapInfoEXT structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyMemoryToMicromapEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyMemoryToMicromapEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support compute operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyMemoryToMicromapEXT-renderpass", - "text": " This command must only be called outside of a render pass instance" + "text": "This command must only be called outside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCopyMemoryToMicromapEXT-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -66966,35 +86421,43 @@ "core": [ { "vuid": "VUID-VkCopyMemoryToMicromapInfoEXT-src-07547", - "text": " The source memory pointed to by src must contain data previously serialized using vkCmdCopyMicromapToMemoryEXT" + "text": "The source memory pointed to by src must contain data previously serialized using vkCmdCopyMicromapToMemoryEXT", + "page": "vkspec" }, { "vuid": "VUID-VkCopyMemoryToMicromapInfoEXT-mode-07548", - "text": " mode must be VK_COPY_MICROMAP_MODE_DESERIALIZE_EXT" + "text": "mode must be VK_COPY_MICROMAP_MODE_DESERIALIZE_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkCopyMemoryToMicromapInfoEXT-src-07549", - "text": " The data in src must have a format compatible with the destination physical device as returned by vkGetDeviceMicromapCompatibilityEXT" + "text": "The data in src must have a format compatible with the destination physical device as returned by vkGetDeviceMicromapCompatibilityEXT", + "page": "vkspec" }, { "vuid": "VUID-VkCopyMemoryToMicromapInfoEXT-dst-07550", - "text": " dst must have been created with a size greater than or equal to that used to serialize the data in src" + "text": "dst must have been created with a size greater than or equal to that used to serialize the data in src", + "page": "vkspec" }, { "vuid": "VUID-VkCopyMemoryToMicromapInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkCopyMemoryToMicromapInfoEXT-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkCopyMemoryToMicromapInfoEXT-dst-parameter", - "text": " dst must be a valid VkMicromapEXT handle" + "text": "dst must be a valid VkMicromapEXT handle", + "page": "vkspec" }, { "vuid": "VUID-VkCopyMemoryToMicromapInfoEXT-mode-parameter", - "text": " mode must be a valid VkCopyMicromapModeEXT value" + "text": "mode must be a valid VkCopyMicromapModeEXT value", + "page": "vkspec" } ] }, @@ -67002,19 +86465,23 @@ "core": [ { "vuid": "VUID-vkGetDeviceMicromapCompatibilityEXT-micromap-07551", - "text": " The micromap feature must be enabled" + "text": "The micromap feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkGetDeviceMicromapCompatibilityEXT-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetDeviceMicromapCompatibilityEXT-pVersionInfo-parameter", - "text": " pVersionInfo must be a valid pointer to a valid VkMicromapVersionInfoEXT structure" + "text": "pVersionInfo must be a valid pointer to a valid VkMicromapVersionInfoEXT structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetDeviceMicromapCompatibilityEXT-pCompatibility-parameter", - "text": " pCompatibility must be a valid pointer to a VkAccelerationStructureCompatibilityKHR value" + "text": "pCompatibility must be a valid pointer to a VkAccelerationStructureCompatibilityKHR value", + "page": "vkspec" } ] }, @@ -67022,15 +86489,18 @@ "core": [ { "vuid": "VUID-VkMicromapVersionInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkMicromapVersionInfoEXT-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkMicromapVersionInfoEXT-pVersionData-parameter", - "text": " pVersionData must be a valid pointer to an array of \\(2 \\times \\mathtt{VK\\_UUID\\_SIZE}\\) uint8_t values" + "text": "pVersionData must be a valid pointer to an array of \\(2 \\times \\mathtt{VK\\_UUID\\_SIZE}\\) uint8_t values", + "page": "vkspec" } ] }, @@ -67038,75 +86508,93 @@ "core": [ { "vuid": "VUID-vkBuildMicromapsEXT-pInfos-07461", - "text": " For each pInfos[i], dstMicromap must have been created with a value of VkMicromapCreateInfoEXT::size greater than or equal to the memory size required by the build operation, as returned by vkGetMicromapBuildSizesEXT with pBuildInfo = pInfos[i]" + "text": "For each pInfos[i], dstMicromap must have been created with a value of VkMicromapCreateInfoEXT::size greater than or equal to the memory size required by the build operation, as returned by vkGetMicromapBuildSizesEXT with pBuildInfo = pInfos[i]", + "page": "vkspec" }, { "vuid": "VUID-vkBuildMicromapsEXT-mode-07462", - "text": " The mode member of each element of pInfos must be a valid VkBuildMicromapModeEXT value" + "text": "The mode member of each element of pInfos must be a valid VkBuildMicromapModeEXT value", + "page": "vkspec" }, { "vuid": "VUID-vkBuildMicromapsEXT-dstMicromap-07463", - "text": " The dstMicromap member of any element of pInfos must be a valid VkMicromapEXT handle" + "text": "The dstMicromap member of any element of pInfos must be a valid VkMicromapEXT handle", + "page": "vkspec" }, { "vuid": "VUID-vkBuildMicromapsEXT-pInfos-07464", - "text": " For each element of pInfos its type member must match the value of VkMicromapCreateInfoEXT::type when its dstMicromap was created" + "text": "For each element of pInfos its type member must match the value of VkMicromapCreateInfoEXT::type when its dstMicromap was created", + "page": "vkspec" }, { "vuid": "VUID-vkBuildMicromapsEXT-dstMicromap-07465", - "text": " The range of memory backing the dstMicromap member of any element of pInfos that is accessed by this command must not overlap the memory backing the dstMicromap member of any other element of pInfos, which is accessed by this command" + "text": "The range of memory backing the dstMicromap member of any element of pInfos that is accessed by this command must not overlap the memory backing the dstMicromap member of any other element of pInfos, which is accessed by this command", + "page": "vkspec" }, { "vuid": "VUID-vkBuildMicromapsEXT-dstMicromap-07466", - "text": " The range of memory backing the dstMicromap member of any element of pInfos that is accessed by this command must not overlap the memory backing the scratchData member of any element of pInfos (including the same element), which is accessed by this command" + "text": "The range of memory backing the dstMicromap member of any element of pInfos that is accessed by this command must not overlap the memory backing the scratchData member of any element of pInfos (including the same element), which is accessed by this command", + "page": "vkspec" }, { "vuid": "VUID-vkBuildMicromapsEXT-scratchData-07467", - "text": " The range of memory backing the scratchData member of any element of pInfos that is accessed by this command must not overlap the memory backing the scratchData member of any other element of pInfos, which is accessed by this command" + "text": "The range of memory backing the scratchData member of any element of pInfos that is accessed by this command must not overlap the memory backing the scratchData member of any other element of pInfos, which is accessed by this command", + "page": "vkspec" }, { "vuid": "VUID-vkBuildMicromapsEXT-pInfos-07552", - "text": " For each element of pInfos, the buffer used to create its dstMicromap member must be bound to host-visible device memory" + "text": "For each element of pInfos, the buffer used to create its dstMicromap member must be bound to host-visible device memory", + "page": "vkspec" }, { "vuid": "VUID-vkBuildMicromapsEXT-pInfos-07553", - "text": " For each element of pInfos, all referenced addresses of pInfos[i].data.hostAddress must be valid host memory" + "text": "For each element of pInfos, all referenced addresses of pInfos[i].data.hostAddress must be valid host memory", + "page": "vkspec" }, { "vuid": "VUID-vkBuildMicromapsEXT-pInfos-07554", - "text": " For each element of pInfos, all referenced addresses of pInfos[i].triangleArray.hostAddress must be valid host memory" + "text": "For each element of pInfos, all referenced addresses of pInfos[i].triangleArray.hostAddress must be valid host memory", + "page": "vkspec" }, { "vuid": "VUID-vkBuildMicromapsEXT-micromapHostCommands-07555", - "text": " The VkPhysicalDeviceOpacityMicromapFeaturesEXT::micromapHostCommands feature must be enabled" + "text": "The VkPhysicalDeviceOpacityMicromapFeaturesEXT::micromapHostCommands feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkBuildMicromapsEXT-pInfos-07556", - "text": " If pInfos[i].mode is VK_BUILD_MICROMAP_MODE_BUILD_EXT, all addresses between pInfos[i].scratchData.hostAddress and pInfos[i].scratchData.hostAddress + N - 1 must be valid host memory, where N is given by the buildScratchSize member of the VkMicromapBuildSizesInfoEXT structure returned from a call to vkGetMicromapBuildSizesEXT with an identical VkMicromapBuildInfoEXT structure and primitive count" + "text": "If pInfos[i].mode is VK_BUILD_MICROMAP_MODE_BUILD_EXT, all addresses between pInfos[i].scratchData.hostAddress and pInfos[i].scratchData.hostAddress + N - 1 must be valid host memory, where N is given by the buildScratchSize member of the VkMicromapBuildSizesInfoEXT structure returned from a call to vkGetMicromapBuildSizesEXT with an identical VkMicromapBuildInfoEXT structure and primitive count", + "page": "vkspec" }, { "vuid": "VUID-vkBuildMicromapsEXT-pInfos-07557", - "text": " For each element of pInfos, the buffer used to create its dstMicromap member must be bound to memory that was not allocated with multiple instances" + "text": "For each element of pInfos, the buffer used to create its dstMicromap member must be bound to memory that was not allocated with multiple instances", + "page": "vkspec" }, { "vuid": "VUID-vkBuildMicromapsEXT-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkBuildMicromapsEXT-deferredOperation-parameter", - "text": " If deferredOperation is not VK_NULL_HANDLE, deferredOperation must be a valid VkDeferredOperationKHR handle" + "text": "If deferredOperation is not VK_NULL_HANDLE, deferredOperation must be a valid VkDeferredOperationKHR handle", + "page": "vkspec" }, { "vuid": "VUID-vkBuildMicromapsEXT-pInfos-parameter", - "text": " pInfos must be a valid pointer to an array of infoCount valid VkMicromapBuildInfoEXT structures" + "text": "pInfos must be a valid pointer to an array of infoCount valid VkMicromapBuildInfoEXT structures", + "page": "vkspec" }, { "vuid": "VUID-vkBuildMicromapsEXT-infoCount-arraylength", - "text": " infoCount must be greater than 0" + "text": "infoCount must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-vkBuildMicromapsEXT-deferredOperation-parent", - "text": " If deferredOperation is a valid handle, it must have been created, allocated, or retrieved from device" + "text": "If deferredOperation is a valid handle, it must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -67114,47 +86602,58 @@ "core": [ { "vuid": "VUID-vkCopyMicromapEXT-deferredOperation-03677", - "text": " If deferredOperation is not VK_NULL_HANDLE, it must be a valid VkDeferredOperationKHR object" + "text": "If deferredOperation is not VK_NULL_HANDLE, it must be a valid VkDeferredOperationKHR object", + "page": "vkspec" }, { "vuid": "VUID-vkCopyMicromapEXT-deferredOperation-03678", - "text": " Any previous deferred operation that was associated with deferredOperation must be complete" + "text": "Any previous deferred operation that was associated with deferredOperation must be complete", + "page": "vkspec" }, { "vuid": "VUID-vkCopyMicromapEXT-buffer-07558", - "text": " The buffer used to create pInfo->src must be bound to host-visible device memory" + "text": "The buffer used to create pInfo->src must be bound to host-visible device memory", + "page": "vkspec" }, { "vuid": "VUID-vkCopyMicromapEXT-buffer-07559", - "text": " The buffer used to create pInfo->dst must be bound to host-visible device memory" + "text": "The buffer used to create pInfo->dst must be bound to host-visible device memory", + "page": "vkspec" }, { "vuid": "VUID-vkCopyMicromapEXT-micromapHostCommands-07560", - "text": " The VkPhysicalDeviceOpacityMicromapFeaturesEXT::micromapHostCommands feature must be enabled" + "text": "The VkPhysicalDeviceOpacityMicromapFeaturesEXT::micromapHostCommands feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCopyMicromapEXT-buffer-07561", - "text": " The buffer used to create pInfo->src must be bound to memory that was not allocated with multiple instances" + "text": "The buffer used to create pInfo->src must be bound to memory that was not allocated with multiple instances", + "page": "vkspec" }, { "vuid": "VUID-vkCopyMicromapEXT-buffer-07562", - "text": " The buffer used to create pInfo->dst must be bound to memory that was not allocated with multiple instances" + "text": "The buffer used to create pInfo->dst must be bound to memory that was not allocated with multiple instances", + "page": "vkspec" }, { "vuid": "VUID-vkCopyMicromapEXT-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkCopyMicromapEXT-deferredOperation-parameter", - "text": " If deferredOperation is not VK_NULL_HANDLE, deferredOperation must be a valid VkDeferredOperationKHR handle" + "text": "If deferredOperation is not VK_NULL_HANDLE, deferredOperation must be a valid VkDeferredOperationKHR handle", + "page": "vkspec" }, { "vuid": "VUID-vkCopyMicromapEXT-pInfo-parameter", - "text": " pInfo must be a valid pointer to a valid VkCopyMicromapInfoEXT structure" + "text": "pInfo must be a valid pointer to a valid VkCopyMicromapInfoEXT structure", + "page": "vkspec" }, { "vuid": "VUID-vkCopyMicromapEXT-deferredOperation-parent", - "text": " If deferredOperation is a valid handle, it must have been created, allocated, or retrieved from device" + "text": "If deferredOperation is a valid handle, it must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -67162,47 +86661,58 @@ "core": [ { "vuid": "VUID-vkCopyMemoryToMicromapEXT-deferredOperation-03677", - "text": " If deferredOperation is not VK_NULL_HANDLE, it must be a valid VkDeferredOperationKHR object" + "text": "If deferredOperation is not VK_NULL_HANDLE, it must be a valid VkDeferredOperationKHR object", + "page": "vkspec" }, { "vuid": "VUID-vkCopyMemoryToMicromapEXT-deferredOperation-03678", - "text": " Any previous deferred operation that was associated with deferredOperation must be complete" + "text": "Any previous deferred operation that was associated with deferredOperation must be complete", + "page": "vkspec" }, { "vuid": "VUID-vkCopyMemoryToMicromapEXT-pInfo-07563", - "text": " pInfo->src.hostAddress must be a valid host pointer" + "text": "pInfo->src.hostAddress must be a valid host pointer", + "page": "vkspec" }, { "vuid": "VUID-vkCopyMemoryToMicromapEXT-pInfo-07564", - "text": " pInfo->src.hostAddress must be aligned to 16 bytes" + "text": "pInfo->src.hostAddress must be aligned to 16 bytes", + "page": "vkspec" }, { "vuid": "VUID-vkCopyMemoryToMicromapEXT-buffer-07565", - "text": " The buffer used to create pInfo->dst must be bound to host-visible device memory" + "text": "The buffer used to create pInfo->dst must be bound to host-visible device memory", + "page": "vkspec" }, { "vuid": "VUID-vkCopyMemoryToMicromapEXT-micromapHostCommands-07566", - "text": " The VkPhysicalDeviceOpacityMicromapFeaturesEXT::micromapHostCommands feature must be enabled" + "text": "The VkPhysicalDeviceOpacityMicromapFeaturesEXT::micromapHostCommands feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCopyMemoryToMicromapEXT-buffer-07567", - "text": " The buffer used to create pInfo->dst must be bound to memory that was not allocated with multiple instances" + "text": "The buffer used to create pInfo->dst must be bound to memory that was not allocated with multiple instances", + "page": "vkspec" }, { "vuid": "VUID-vkCopyMemoryToMicromapEXT-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkCopyMemoryToMicromapEXT-deferredOperation-parameter", - "text": " If deferredOperation is not VK_NULL_HANDLE, deferredOperation must be a valid VkDeferredOperationKHR handle" + "text": "If deferredOperation is not VK_NULL_HANDLE, deferredOperation must be a valid VkDeferredOperationKHR handle", + "page": "vkspec" }, { "vuid": "VUID-vkCopyMemoryToMicromapEXT-pInfo-parameter", - "text": " pInfo must be a valid pointer to a valid VkCopyMemoryToMicromapInfoEXT structure" + "text": "pInfo must be a valid pointer to a valid VkCopyMemoryToMicromapInfoEXT structure", + "page": "vkspec" }, { "vuid": "VUID-vkCopyMemoryToMicromapEXT-deferredOperation-parent", - "text": " If deferredOperation is a valid handle, it must have been created, allocated, or retrieved from device" + "text": "If deferredOperation is a valid handle, it must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -67210,47 +86720,58 @@ "core": [ { "vuid": "VUID-vkCopyMicromapToMemoryEXT-deferredOperation-03677", - "text": " If deferredOperation is not VK_NULL_HANDLE, it must be a valid VkDeferredOperationKHR object" + "text": "If deferredOperation is not VK_NULL_HANDLE, it must be a valid VkDeferredOperationKHR object", + "page": "vkspec" }, { "vuid": "VUID-vkCopyMicromapToMemoryEXT-deferredOperation-03678", - "text": " Any previous deferred operation that was associated with deferredOperation must be complete" + "text": "Any previous deferred operation that was associated with deferredOperation must be complete", + "page": "vkspec" }, { "vuid": "VUID-vkCopyMicromapToMemoryEXT-buffer-07568", - "text": " The buffer used to create pInfo->src must be bound to host-visible device memory" + "text": "The buffer used to create pInfo->src must be bound to host-visible device memory", + "page": "vkspec" }, { "vuid": "VUID-vkCopyMicromapToMemoryEXT-pInfo-07569", - "text": " pInfo->dst.hostAddress must be a valid host pointer" + "text": "pInfo->dst.hostAddress must be a valid host pointer", + "page": "vkspec" }, { "vuid": "VUID-vkCopyMicromapToMemoryEXT-pInfo-07570", - "text": " pInfo->dst.hostAddress must be aligned to 16 bytes" + "text": "pInfo->dst.hostAddress must be aligned to 16 bytes", + "page": "vkspec" }, { "vuid": "VUID-vkCopyMicromapToMemoryEXT-micromapHostCommands-07571", - "text": " The VkPhysicalDeviceOpacityMicromapFeaturesEXT::micromapHostCommands feature must be enabled" + "text": "The VkPhysicalDeviceOpacityMicromapFeaturesEXT::micromapHostCommands feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCopyMicromapToMemoryEXT-buffer-07572", - "text": " The buffer used to create pInfo->src must be bound to memory that was not allocated with multiple instances" + "text": "The buffer used to create pInfo->src must be bound to memory that was not allocated with multiple instances", + "page": "vkspec" }, { "vuid": "VUID-vkCopyMicromapToMemoryEXT-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkCopyMicromapToMemoryEXT-deferredOperation-parameter", - "text": " If deferredOperation is not VK_NULL_HANDLE, deferredOperation must be a valid VkDeferredOperationKHR handle" + "text": "If deferredOperation is not VK_NULL_HANDLE, deferredOperation must be a valid VkDeferredOperationKHR handle", + "page": "vkspec" }, { "vuid": "VUID-vkCopyMicromapToMemoryEXT-pInfo-parameter", - "text": " pInfo must be a valid pointer to a valid VkCopyMicromapToMemoryInfoEXT structure" + "text": "pInfo must be a valid pointer to a valid VkCopyMicromapToMemoryInfoEXT structure", + "page": "vkspec" }, { "vuid": "VUID-vkCopyMicromapToMemoryEXT-deferredOperation-parent", - "text": " If deferredOperation is a valid handle, it must have been created, allocated, or retrieved from device" + "text": "If deferredOperation is a valid handle, it must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -67258,71 +86779,88 @@ "core": [ { "vuid": "VUID-vkWriteMicromapsPropertiesEXT-pMicromaps-07501", - "text": " All micromaps in pMicromaps must have been constructed prior to the execution of this command" + "text": "All micromaps in pMicromaps must have been constructed prior to the execution of this command", + "page": "vkspec" }, { "vuid": "VUID-vkWriteMicromapsPropertiesEXT-pMicromaps-07502", - "text": " All micromaps in pMicromaps must have been constructed with VK_BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT if queryType is VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT" + "text": "All micromaps in pMicromaps must have been constructed with VK_BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT if queryType is VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkWriteMicromapsPropertiesEXT-queryType-07503", - "text": " queryType must be VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT or VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT" + "text": "queryType must be VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT or VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkWriteMicromapsPropertiesEXT-queryType-07573", - "text": " If queryType is VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT, then stride must be a multiple of the size of VkDeviceSize" + "text": "If queryType is VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT, then stride must be a multiple of the size of VkDeviceSize", + "page": "vkspec" }, { "vuid": "VUID-vkWriteMicromapsPropertiesEXT-queryType-07574", - "text": " If queryType is VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT, then pData must point to a VkDeviceSize" + "text": "If queryType is VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT, then pData must point to a VkDeviceSize", + "page": "vkspec" }, { "vuid": "VUID-vkWriteMicromapsPropertiesEXT-queryType-07575", - "text": " If queryType is" + "text": "If queryType is", + "page": "vkspec" }, { "vuid": "VUID-vkWriteMicromapsPropertiesEXT-dataSize-07576", - "text": " dataSize must be greater than or equal to micromapCount*stride" + "text": "dataSize must be greater than or equal to micromapCount*stride", + "page": "vkspec" }, { "vuid": "VUID-vkWriteMicromapsPropertiesEXT-buffer-07577", - "text": " The buffer used to create each micromap in pMicromaps must be bound to host-visible device memory" + "text": "The buffer used to create each micromap in pMicromaps must be bound to host-visible device memory", + "page": "vkspec" }, { "vuid": "VUID-vkWriteMicromapsPropertiesEXT-micromapHostCommands-07578", - "text": " The VkPhysicalDeviceOpacityMicromapFeaturesEXT::micromapHostCommands feature must be enabled" + "text": "The VkPhysicalDeviceOpacityMicromapFeaturesEXT::micromapHostCommands feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkWriteMicromapsPropertiesEXT-buffer-07579", - "text": " The buffer used to create each micromap in pMicromaps must be bound to memory that was not allocated with multiple instances" + "text": "The buffer used to create each micromap in pMicromaps must be bound to memory that was not allocated with multiple instances", + "page": "vkspec" }, { "vuid": "VUID-vkWriteMicromapsPropertiesEXT-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkWriteMicromapsPropertiesEXT-pMicromaps-parameter", - "text": " pMicromaps must be a valid pointer to an array of micromapCount valid VkMicromapEXT handles" + "text": "pMicromaps must be a valid pointer to an array of micromapCount valid VkMicromapEXT handles", + "page": "vkspec" }, { "vuid": "VUID-vkWriteMicromapsPropertiesEXT-queryType-parameter", - "text": " queryType must be a valid VkQueryType value" + "text": "queryType must be a valid VkQueryType value", + "page": "vkspec" }, { "vuid": "VUID-vkWriteMicromapsPropertiesEXT-pData-parameter", - "text": " pData must be a valid pointer to an array of dataSize bytes" + "text": "pData must be a valid pointer to an array of dataSize bytes", + "page": "vkspec" }, { "vuid": "VUID-vkWriteMicromapsPropertiesEXT-micromapCount-arraylength", - "text": " micromapCount must be greater than 0" + "text": "micromapCount must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-vkWriteMicromapsPropertiesEXT-dataSize-arraylength", - "text": " dataSize must be greater than 0" + "text": "dataSize must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-vkWriteMicromapsPropertiesEXT-pMicromaps-parent", - "text": " Each element of pMicromaps must have been created, allocated, or retrieved from device" + "text": "Each element of pMicromaps must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -67330,367 +86868,488 @@ "core": [ { "vuid": "VUID-vkCmdTraceRaysNV-magFilter-04553", - "text": " If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + "text": "If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-mipmapMode-04770", - "text": " If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + "text": "If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-None-06479", - "text": " If a VkImageView is sampled with depth comparison, the image view’s format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT" + "text": "If a VkImageView is sampled with depth comparison, the image view’s format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-None-02691", - "text": " If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT" + "text": "If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-None-07888", - "text": " If a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer’s format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT" + "text": "If a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer’s format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-None-02692", - "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" + "text": "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-None-02693", - "text": " If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" + "text": "If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-filterCubic-02694", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" + "text": "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-filterCubicMinmax-02695", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" + "text": "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-cubicRangeClamp-09212", + "text": "If the cubicRangeClamp feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command
\n
\n
must not have a VkSamplerReductionModeCreateInfo
\n
\n

reductionMode equal to\nVK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM

\n
\n
\n
", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-reductionMode-09213", + "text": "Any VkImageView being sampled with a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM as a result of this command must sample with VK_FILTER_CUBIC_EXT", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-selectableCubicWeights-09214", + "text": "If the selectableCubicWeights feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have VkSamplerCubicWeightsCreateInfoQCOM::cubicWeights equal to VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-flags-02696", - "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE" + "text": "Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-OpTypeImage-07027", - "text": " For any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT" + "text": "For any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-OpTypeImage-07028", - "text": " For any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT" + "text": "For any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-OpTypeImage-07029", - "text": " For any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT" + "text": "For any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-OpTypeImage-07030", - "text": " Any VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT" + "text": "Any VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-None-08600", - "text": " For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-None-08601", - "text": " For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-maintenance4-08602", - "text": " If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-None-08114", - "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-None-08115", - "text": " If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-None-08116", - "text": " Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-None-08604", - "text": " Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command" + "text": "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-None-08117", - "text": " If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-None-08119", - "text": " If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident" + "text": "If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-None-08605", - "text": " If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident" + "text": "If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-None-08606", - "text": " If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command" + "text": "If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-None-08607", - "text": " If the shaderObject is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command" + "text": "If the shaderObject is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-None-08608", - "text": " If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound" + "text": "If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-None-08609", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-None-08610", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-None-08611", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-uniformBuffers-06935", - "text": " If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-None-08612", - "text": " If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-storageBuffers-06936", - "text": " If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-None-08613", - "text": " If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-commandBuffer-02707", - "text": " If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource" + "text": "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-None-06550", - "text": " If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions" + "text": "If a bound shader accesses a VkSampler or VkImageView object that enables sampler Y′CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-ConstOffset-06551", - "text": " If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands" + "text": "If a bound shader accesses a VkSampler or VkImageView object that enables sampler Y′CBCR conversion, that object must not use the ConstOffset and Offset operands", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-viewType-07752", - "text": " If a VkImageView is accessed as a result of this command, then the image view’s viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation" + "text": "If a VkImageView is accessed as a result of this command, then the image view’s viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-format-07753", - "text": " If a VkImageView is accessed as a result of this command, then the numeric type of the image view’s format and the Sampled Type operand of the OpTypeImage must match" + "text": "If a VkImageView is accessed as a result of this command, then the numeric type of the image view’s format and the Sampled Type operand of the OpTypeImage must match", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-OpImageWrite-08795", - "text": " If a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format" + "text": "If a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-OpImageWrite-08796", - "text": " If a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components" + "text": "If a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-OpImageWrite-04469", - "text": " If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view’s format" + "text": "If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view’s format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-SampledType-04470", - "text": " If a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64" + "text": "If a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-SampledType-04471", - "text": " If a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32" + "text": "If a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-SampledType-04472", - "text": " If a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64" + "text": "If a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-SampledType-04473", - "text": " If a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32" + "text": "If a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-sparseImageInt64Atomics-04474", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command" + "text": "If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-sparseImageInt64Atomics-04475", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command" + "text": "If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-OpImageWeightedSampleQCOM-06971", - "text": " If OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-OpImageWeightedSampleQCOM-06972", - "text": " If OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-OpImageBoxFilterQCOM-06973", - "text": " If OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM" + "text": "If OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-OpImageBlockMatchSSDQCOM-06974", - "text": " If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM" + "text": "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-OpImageBlockMatchSADQCOM-06975", - "text": " If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM" + "text": "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-OpImageBlockMatchSADQCOM-06976", - "text": " If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation" + "text": "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-OpImageWeightedSampleQCOM-06977", - "text": " If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-OpImageWeightedSampleQCOM-06978", - "text": " If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM" + "text": "If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-OpImageBlockMatchWindow-09215", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-OpImageBlockMatchWindow-09216", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view’s format must be a single-component format.", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-OpImageBlockMatchWindow-09217", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-None-07288", - "text": " Any shader invocation executed by this command must terminate" + "text": "Any shader invocation executed by this command must terminate", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-None-03429", - "text": " Any shader group handle referenced by this call must have been queried from the currently bound ray tracing pipeline" + "text": "Any shader group handle referenced by this call must have been queried from the currently bound ray tracing pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-commandBuffer-04624", - "text": " commandBuffer must not be a protected command buffer" + "text": "commandBuffer must not be a protected command buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-maxRecursionDepth-03625", - "text": " This command must not cause a pipeline trace ray instruction to be executed from a shader invocation with a recursion depth greater than the value of maxRecursionDepth used to create the bound ray tracing pipeline" + "text": "This command must not cause a pipeline trace ray instruction to be executed from a shader invocation with a recursion depth greater than the value of maxRecursionDepth used to create the bound ray tracing pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-raygenShaderBindingTableBuffer-04042", - "text": " If raygenShaderBindingTableBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If raygenShaderBindingTableBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-raygenShaderBindingOffset-02455", - "text": " raygenShaderBindingOffset must be less than the size of raygenShaderBindingTableBuffer" + "text": "raygenShaderBindingOffset must be less than the size of raygenShaderBindingTableBuffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-raygenShaderBindingOffset-02456", - "text": " raygenShaderBindingOffset must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupBaseAlignment" + "text": "raygenShaderBindingOffset must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupBaseAlignment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-missShaderBindingTableBuffer-04043", - "text": " If missShaderBindingTableBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If missShaderBindingTableBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-missShaderBindingOffset-02457", - "text": " missShaderBindingOffset must be less than the size of missShaderBindingTableBuffer" + "text": "missShaderBindingOffset must be less than the size of missShaderBindingTableBuffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-missShaderBindingOffset-02458", - "text": " missShaderBindingOffset must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupBaseAlignment" + "text": "missShaderBindingOffset must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupBaseAlignment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-hitShaderBindingTableBuffer-04044", - "text": " If hitShaderBindingTableBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If hitShaderBindingTableBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-hitShaderBindingOffset-02459", - "text": " hitShaderBindingOffset must be less than the size of hitShaderBindingTableBuffer" + "text": "hitShaderBindingOffset must be less than the size of hitShaderBindingTableBuffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-hitShaderBindingOffset-02460", - "text": " hitShaderBindingOffset must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupBaseAlignment" + "text": "hitShaderBindingOffset must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupBaseAlignment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-callableShaderBindingTableBuffer-04045", - "text": " If callableShaderBindingTableBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If callableShaderBindingTableBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-callableShaderBindingOffset-02461", - "text": " callableShaderBindingOffset must be less than the size of callableShaderBindingTableBuffer" + "text": "callableShaderBindingOffset must be less than the size of callableShaderBindingTableBuffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-callableShaderBindingOffset-02462", - "text": " callableShaderBindingOffset must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupBaseAlignment" + "text": "callableShaderBindingOffset must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupBaseAlignment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-missShaderBindingStride-02463", - "text": " missShaderBindingStride must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupHandleSize" + "text": "missShaderBindingStride must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupHandleSize", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-hitShaderBindingStride-02464", - "text": " hitShaderBindingStride must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupHandleSize" + "text": "hitShaderBindingStride must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupHandleSize", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-callableShaderBindingStride-02465", - "text": " callableShaderBindingStride must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupHandleSize" + "text": "callableShaderBindingStride must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupHandleSize", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-missShaderBindingStride-02466", - "text": " missShaderBindingStride must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxShaderGroupStride" + "text": "missShaderBindingStride must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxShaderGroupStride", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-hitShaderBindingStride-02467", - "text": " hitShaderBindingStride must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxShaderGroupStride" + "text": "hitShaderBindingStride must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxShaderGroupStride", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-callableShaderBindingStride-02468", - "text": " callableShaderBindingStride must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxShaderGroupStride" + "text": "callableShaderBindingStride must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxShaderGroupStride", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-width-02469", - "text": " width must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[0]" + "text": "width must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[0]", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-height-02470", - "text": " height must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1]" + "text": "height must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1]", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-depth-02471", - "text": " depth must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[2]" + "text": "depth must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[2]", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-raygenShaderBindingTableBuffer-parameter", - "text": " raygenShaderBindingTableBuffer must be a valid VkBuffer handle" + "text": "raygenShaderBindingTableBuffer must be a valid VkBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-missShaderBindingTableBuffer-parameter", - "text": " If missShaderBindingTableBuffer is not VK_NULL_HANDLE, missShaderBindingTableBuffer must be a valid VkBuffer handle" + "text": "If missShaderBindingTableBuffer is not VK_NULL_HANDLE, missShaderBindingTableBuffer must be a valid VkBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-hitShaderBindingTableBuffer-parameter", - "text": " If hitShaderBindingTableBuffer is not VK_NULL_HANDLE, hitShaderBindingTableBuffer must be a valid VkBuffer handle" + "text": "If hitShaderBindingTableBuffer is not VK_NULL_HANDLE, hitShaderBindingTableBuffer must be a valid VkBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-callableShaderBindingTableBuffer-parameter", - "text": " If callableShaderBindingTableBuffer is not VK_NULL_HANDLE, callableShaderBindingTableBuffer must be a valid VkBuffer handle" + "text": "If callableShaderBindingTableBuffer is not VK_NULL_HANDLE, callableShaderBindingTableBuffer must be a valid VkBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support compute operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-renderpass", - "text": " This command must only be called outside of a render pass instance" + "text": "This command must only be called outside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysNV-commonparent", - "text": " Each of callableShaderBindingTableBuffer, commandBuffer, hitShaderBindingTableBuffer, missShaderBindingTableBuffer, and raygenShaderBindingTableBuffer that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" + "text": "Each of callableShaderBindingTableBuffer, commandBuffer, hitShaderBindingTableBuffer, missShaderBindingTableBuffer, and raygenShaderBindingTableBuffer that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -67698,403 +87357,533 @@ "core": [ { "vuid": "VUID-vkCmdTraceRaysKHR-magFilter-04553", - "text": " If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + "text": "If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-mipmapMode-04770", - "text": " If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + "text": "If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-None-06479", - "text": " If a VkImageView is sampled with depth comparison, the image view’s format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT" + "text": "If a VkImageView is sampled with depth comparison, the image view’s format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-None-02691", - "text": " If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT" + "text": "If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-None-07888", - "text": " If a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer’s format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT" + "text": "If a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer’s format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-None-02692", - "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" + "text": "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-None-02693", - "text": " If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" + "text": "If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-filterCubic-02694", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" + "text": "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-filterCubicMinmax-02695", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" + "text": "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdTraceRaysKHR-cubicRangeClamp-09212", + "text": "If the cubicRangeClamp feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command
\n
\n
must not have a VkSamplerReductionModeCreateInfo
\n
\n

reductionMode equal to\nVK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM

\n
\n
\n
", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdTraceRaysKHR-reductionMode-09213", + "text": "Any VkImageView being sampled with a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM as a result of this command must sample with VK_FILTER_CUBIC_EXT", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdTraceRaysKHR-selectableCubicWeights-09214", + "text": "If the selectableCubicWeights feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have VkSamplerCubicWeightsCreateInfoQCOM::cubicWeights equal to VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-flags-02696", - "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE" + "text": "Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-OpTypeImage-07027", - "text": " For any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT" + "text": "For any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-OpTypeImage-07028", - "text": " For any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT" + "text": "For any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-OpTypeImage-07029", - "text": " For any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT" + "text": "For any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-OpTypeImage-07030", - "text": " Any VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT" + "text": "Any VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-None-08600", - "text": " For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-None-08601", - "text": " For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-maintenance4-08602", - "text": " If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-None-08114", - "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-None-08115", - "text": " If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-None-08116", - "text": " Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-None-08604", - "text": " Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command" + "text": "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-None-08117", - "text": " If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-None-08119", - "text": " If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident" + "text": "If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-None-08605", - "text": " If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident" + "text": "If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-None-08606", - "text": " If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command" + "text": "If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-None-08607", - "text": " If the shaderObject is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command" + "text": "If the shaderObject is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-None-08608", - "text": " If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound" + "text": "If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-None-08609", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-None-08610", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-None-08611", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-uniformBuffers-06935", - "text": " If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-None-08612", - "text": " If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-storageBuffers-06936", - "text": " If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-None-08613", - "text": " If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-commandBuffer-02707", - "text": " If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource" + "text": "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-None-06550", - "text": " If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions" + "text": "If a bound shader accesses a VkSampler or VkImageView object that enables sampler Y′CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-ConstOffset-06551", - "text": " If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands" + "text": "If a bound shader accesses a VkSampler or VkImageView object that enables sampler Y′CBCR conversion, that object must not use the ConstOffset and Offset operands", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-viewType-07752", - "text": " If a VkImageView is accessed as a result of this command, then the image view’s viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation" + "text": "If a VkImageView is accessed as a result of this command, then the image view’s viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-format-07753", - "text": " If a VkImageView is accessed as a result of this command, then the numeric type of the image view’s format and the Sampled Type operand of the OpTypeImage must match" + "text": "If a VkImageView is accessed as a result of this command, then the numeric type of the image view’s format and the Sampled Type operand of the OpTypeImage must match", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-OpImageWrite-08795", - "text": " If a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format" + "text": "If a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-OpImageWrite-08796", - "text": " If a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components" + "text": "If a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-OpImageWrite-04469", - "text": " If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view’s format" + "text": "If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view’s format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-SampledType-04470", - "text": " If a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64" + "text": "If a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-SampledType-04471", - "text": " If a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32" + "text": "If a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-SampledType-04472", - "text": " If a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64" + "text": "If a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-SampledType-04473", - "text": " If a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32" + "text": "If a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-sparseImageInt64Atomics-04474", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command" + "text": "If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-sparseImageInt64Atomics-04475", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command" + "text": "If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-OpImageWeightedSampleQCOM-06971", - "text": " If OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-OpImageWeightedSampleQCOM-06972", - "text": " If OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-OpImageBoxFilterQCOM-06973", - "text": " If OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM" + "text": "If OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-OpImageBlockMatchSSDQCOM-06974", - "text": " If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM" + "text": "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-OpImageBlockMatchSADQCOM-06975", - "text": " If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM" + "text": "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-OpImageBlockMatchSADQCOM-06976", - "text": " If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation" + "text": "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-OpImageWeightedSampleQCOM-06977", - "text": " If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-OpImageWeightedSampleQCOM-06978", - "text": " If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM" + "text": "If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdTraceRaysKHR-OpImageBlockMatchWindow-09215", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdTraceRaysKHR-OpImageBlockMatchWindow-09216", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view’s format must be a single-component format.", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdTraceRaysKHR-OpImageBlockMatchWindow-09217", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-None-07288", - "text": " Any shader invocation executed by this command must terminate" + "text": "Any shader invocation executed by this command must terminate", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-None-03429", - "text": " Any shader group handle referenced by this call must have been queried from the currently bound ray tracing pipeline" + "text": "Any shader group handle referenced by this call must have been queried from the currently bound ray tracing pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-maxPipelineRayRecursionDepth-03679", - "text": " This command must not cause a shader call instruction to be executed from a shader invocation with a recursion depth greater than the value of maxPipelineRayRecursionDepth used to create the bound ray tracing pipeline" + "text": "This command must not cause a shader call instruction to be executed from a shader invocation with a recursion depth greater than the value of maxPipelineRayRecursionDepth used to create the bound ray tracing pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-commandBuffer-03635", - "text": " commandBuffer must not be a protected command buffer" + "text": "commandBuffer must not be a protected command buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-size-04023", - "text": " The size member of pRayGenShaderBindingTable must be equal to its stride member" + "text": "The size member of pRayGenShaderBindingTable must be equal to its stride member", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-pRayGenShaderBindingTable-03680", - "text": " If the buffer from which pname:pRayGenShaderBindingTable->deviceAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If the buffer from which pRayGenShaderBindingTable->deviceAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-pRayGenShaderBindingTable-03681", - "text": " The buffer from which the pname:pRayGenShaderBindingTable->deviceAddress is queried must have been created with the VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR usage flag" + "text": "The buffer from which the pRayGenShaderBindingTable->deviceAddress is queried must have been created with the VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR usage flag", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-pRayGenShaderBindingTable-03682", - "text": " pname:pRayGenShaderBindingTable->deviceAddress must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupBaseAlignment" + "text": "pRayGenShaderBindingTable->deviceAddress must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupBaseAlignment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-pMissShaderBindingTable-03683", - "text": " If the buffer from which pname:pMissShaderBindingTable->deviceAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If the buffer from which pMissShaderBindingTable->deviceAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-pMissShaderBindingTable-03684", - "text": " The buffer from which the pname:pMissShaderBindingTable->deviceAddress is queried must have been created with the VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR usage flag" + "text": "The buffer from which the pMissShaderBindingTable->deviceAddress is queried must have been created with the VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR usage flag", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-pMissShaderBindingTable-03685", - "text": " pname:pMissShaderBindingTable->deviceAddress must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupBaseAlignment" + "text": "pMissShaderBindingTable->deviceAddress must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupBaseAlignment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-stride-03686", - "text": " pname:pMissShaderBindingTable->stride must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupHandleAlignment" + "text": "pMissShaderBindingTable->stride must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupHandleAlignment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-stride-04029", - "text": " pname:pMissShaderBindingTable->stride must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxShaderGroupStride" + "text": "pMissShaderBindingTable->stride must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxShaderGroupStride", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-pHitShaderBindingTable-03687", - "text": " If the buffer from which pname:pHitShaderBindingTable->deviceAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If the buffer from which pHitShaderBindingTable->deviceAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-pHitShaderBindingTable-03688", - "text": " The buffer from which the pname:pHitShaderBindingTable->deviceAddress is queried must have been created with the VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR usage flag" + "text": "The buffer from which the pHitShaderBindingTable->deviceAddress is queried must have been created with the VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR usage flag", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-pHitShaderBindingTable-03689", - "text": " pname:pHitShaderBindingTable->deviceAddress must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupBaseAlignment" + "text": "pHitShaderBindingTable->deviceAddress must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupBaseAlignment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-stride-03690", - "text": " pname:pHitShaderBindingTable->stride must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupHandleAlignment" + "text": "pHitShaderBindingTable->stride must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupHandleAlignment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-stride-04035", - "text": " pname:pHitShaderBindingTable->stride must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxShaderGroupStride" + "text": "pHitShaderBindingTable->stride must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxShaderGroupStride", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-pCallableShaderBindingTable-03691", - "text": " If the buffer from which pname:pCallableShaderBindingTable->deviceAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If the buffer from which pCallableShaderBindingTable->deviceAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-pCallableShaderBindingTable-03692", - "text": " The buffer from which the pname:pCallableShaderBindingTable->deviceAddress is queried must have been created with the VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR usage flag" + "text": "The buffer from which the pCallableShaderBindingTable->deviceAddress is queried must have been created with the VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR usage flag", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-pCallableShaderBindingTable-03693", - "text": " pname:pCallableShaderBindingTable->deviceAddress must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupBaseAlignment" + "text": "pCallableShaderBindingTable->deviceAddress must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupBaseAlignment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-stride-03694", - "text": " pname:pCallableShaderBindingTable->stride must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupHandleAlignment" + "text": "pCallableShaderBindingTable->stride must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupHandleAlignment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-stride-04041", - "text": " pname:pCallableShaderBindingTable->stride must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxShaderGroupStride" + "text": "pCallableShaderBindingTable->stride must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxShaderGroupStride", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-flags-03696", - "text": " If the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, pname:pHitShaderBindingTable->deviceAddress must not be zero" + "text": "If the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, pHitShaderBindingTable->deviceAddress must not be zero", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-flags-03697", - "text": " If the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, pname:pHitShaderBindingTable->deviceAddress must not be zero" + "text": "If the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, pHitShaderBindingTable->deviceAddress must not be zero", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-flags-03511", - "text": " If the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR, the shader group handle identified by pname:pMissShaderBindingTable->deviceAddress must not be set to zero" + "text": "If the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR, the shader group handle identified by pMissShaderBindingTable->deviceAddress must not be set to zero", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-flags-03512", - "text": " If the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR, entries in the table identified by pname:pHitShaderBindingTable->deviceAddress accessed as a result of this command in order to execute an any-hit shader must not be set to zero" + "text": "If the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR, entries in the table identified by pHitShaderBindingTable->deviceAddress accessed as a result of this command in order to execute an any-hit shader must not be set to zero", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-flags-03513", - "text": " If the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, entries in the table identified by pname:pHitShaderBindingTable->deviceAddress accessed as a result of this command in order to execute a closest hit shader must not be set to zero" + "text": "If the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, entries in the table identified by pHitShaderBindingTable->deviceAddress accessed as a result of this command in order to execute a closest hit shader must not be set to zero", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-flags-03514", - "text": " If the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, entries in the table identified by pname:pHitShaderBindingTable->deviceAddress accessed as a result of this command in order to execute an intersection shader must not be set to zero" + "text": "If the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, entries in the table identified by pHitShaderBindingTable->deviceAddress accessed as a result of this command in order to execute an intersection shader must not be set to zero", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-pHitShaderBindingTable-04735", - "text": " Any non-zero hit shader group entries in the table identified by pname:pHitShaderBindingTable->deviceAddress accessed by this call from a geometry with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR must have been created with VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR" + "text": "Any non-zero hit shader group entries in the table identified by pHitShaderBindingTable->deviceAddress accessed by this call from a geometry with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR must have been created with VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-pHitShaderBindingTable-04736", - "text": " Any non-zero hit shader group entries in the table identified by pname:pHitShaderBindingTable->deviceAddress accessed by this call from a geometry with a geometryType of VK_GEOMETRY_TYPE_AABBS_KHR must have been created with VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR" + "text": "Any non-zero hit shader group entries in the table identified by pHitShaderBindingTable->deviceAddress accessed by this call from a geometry with a geometryType of VK_GEOMETRY_TYPE_AABBS_KHR must have been created with VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-width-03638", - "text": " width must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[0] {times} VkPhysicalDeviceLimits::maxComputeWorkGroupSize[0]" + "text": "width must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[0] × VkPhysicalDeviceLimits::maxComputeWorkGroupSize[0]", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-height-03639", - "text": " height must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1] {times} VkPhysicalDeviceLimits::maxComputeWorkGroupSize[1]" + "text": "height must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1] × VkPhysicalDeviceLimits::maxComputeWorkGroupSize[1]", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-depth-03640", - "text": " depth must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[2] {times} VkPhysicalDeviceLimits::maxComputeWorkGroupSize[2]" + "text": "depth must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[2] × VkPhysicalDeviceLimits::maxComputeWorkGroupSize[2]", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-width-03641", - "text": " width {times} height {times} depth must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxRayDispatchInvocationCount" + "text": "width × height × depth must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxRayDispatchInvocationCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-pRaygenShaderBindingTable-parameter", - "text": " pRaygenShaderBindingTable must be a valid pointer to a valid VkStridedDeviceAddressRegionKHR structure" + "text": "pRaygenShaderBindingTable must be a valid pointer to a valid VkStridedDeviceAddressRegionKHR structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-pMissShaderBindingTable-parameter", - "text": " pMissShaderBindingTable must be a valid pointer to a valid VkStridedDeviceAddressRegionKHR structure" + "text": "pMissShaderBindingTable must be a valid pointer to a valid VkStridedDeviceAddressRegionKHR structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-pHitShaderBindingTable-parameter", - "text": " pHitShaderBindingTable must be a valid pointer to a valid VkStridedDeviceAddressRegionKHR structure" + "text": "pHitShaderBindingTable must be a valid pointer to a valid VkStridedDeviceAddressRegionKHR structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-pCallableShaderBindingTable-parameter", - "text": " pCallableShaderBindingTable must be a valid pointer to a valid VkStridedDeviceAddressRegionKHR structure" + "text": "pCallableShaderBindingTable must be a valid pointer to a valid VkStridedDeviceAddressRegionKHR structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support compute operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-renderpass", - "text": " This command must only be called outside of a render pass instance" + "text": "This command must only be called outside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysKHR-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -68102,11 +87891,13 @@ "core": [ { "vuid": "VUID-VkStridedDeviceAddressRegionKHR-size-04631", - "text": " If size is not zero, all addresses between deviceAddress and deviceAddress + size - 1 must be in the buffer device address range of the same buffer" + "text": "If size is not zero, all addresses between deviceAddress and deviceAddress + size - 1 must be in the buffer device address range of the same buffer", + "page": "vkspec" }, { "vuid": "VUID-VkStridedDeviceAddressRegionKHR-size-04632", - "text": " If size is not zero, stride must be less than or equal to the size of the buffer from which deviceAddress was queried" + "text": "If size is not zero, stride must be less than or equal to the size of the buffer from which deviceAddress was queried", + "page": "vkspec" } ] }, @@ -68114,67 +87905,83 @@ "core": [ { "vuid": "VUID-vkCmdBindInvocationMaskHUAWEI-None-04976", - "text": " The invocationMask feature must be enabled" + "text": "The invocationMask feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindInvocationMaskHUAWEI-imageView-04977", - "text": " If imageView is not VK_NULL_HANDLE, it must be a valid VkImageView handle of type VK_IMAGE_VIEW_TYPE_2D" + "text": "If imageView is not VK_NULL_HANDLE, it must be a valid VkImageView handle of type VK_IMAGE_VIEW_TYPE_2D", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindInvocationMaskHUAWEI-imageView-04978", - "text": " If imageView is not VK_NULL_HANDLE, it must have a format of VK_FORMAT_R8_UINT" + "text": "If imageView is not VK_NULL_HANDLE, it must have a format of VK_FORMAT_R8_UINT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindInvocationMaskHUAWEI-imageView-04979", - "text": " If imageView is not VK_NULL_HANDLE, it must have been created with VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI set" + "text": "If imageView is not VK_NULL_HANDLE, it must have been created with VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindInvocationMaskHUAWEI-imageView-04980", - "text": " If imageView is not VK_NULL_HANDLE, imageLayout must be VK_IMAGE_LAYOUT_GENERAL" + "text": "If imageView is not VK_NULL_HANDLE, imageLayout must be VK_IMAGE_LAYOUT_GENERAL", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindInvocationMaskHUAWEI-width-04981", - "text": " Thread mask image resolution must match the width and height in vkCmdTraceRaysKHR" + "text": "Thread mask image resolution must match the width and height in vkCmdTraceRaysKHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindInvocationMaskHUAWEI-None-04982", - "text": " Each element in the invocation mask image must have the value 0 or 1. The value 1 means the invocation is active" + "text": "Each element in the invocation mask image must have the value 0 or 1. The value 1 means the invocation is active", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindInvocationMaskHUAWEI-depth-04983", - "text": " depth in vkCmdTraceRaysKHR must be 1" + "text": "depth in vkCmdTraceRaysKHR must be 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindInvocationMaskHUAWEI-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindInvocationMaskHUAWEI-imageView-parameter", - "text": " If imageView is not VK_NULL_HANDLE, imageView must be a valid VkImageView handle" + "text": "If imageView is not VK_NULL_HANDLE, imageView must be a valid VkImageView handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindInvocationMaskHUAWEI-imageLayout-parameter", - "text": " imageLayout must be a valid VkImageLayout value" + "text": "imageLayout must be a valid VkImageLayout value", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindInvocationMaskHUAWEI-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindInvocationMaskHUAWEI-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support compute operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindInvocationMaskHUAWEI-renderpass", - "text": " This command must only be called outside of a render pass instance" + "text": "This command must only be called outside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindInvocationMaskHUAWEI-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBindInvocationMaskHUAWEI-commonparent", - "text": " Both of commandBuffer, and imageView that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of commandBuffer, and imageView that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -68182,411 +87989,543 @@ "core": [ { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-magFilter-04553", - "text": " If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + "text": "If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-mipmapMode-04770", - "text": " If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + "text": "If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-06479", - "text": " If a VkImageView is sampled with depth comparison, the image view’s format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT" + "text": "If a VkImageView is sampled with depth comparison, the image view’s format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02691", - "text": " If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT" + "text": "If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-07888", - "text": " If a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer’s format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT" + "text": "If a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer’s format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02692", - "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" + "text": "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02693", - "text": " If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" + "text": "If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-filterCubic-02694", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" + "text": "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-filterCubicMinmax-02695", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" + "text": "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-cubicRangeClamp-09212", + "text": "If the cubicRangeClamp feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command
\n
\n
must not have a VkSamplerReductionModeCreateInfo
\n
\n

reductionMode equal to\nVK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM

\n
\n
\n
", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-reductionMode-09213", + "text": "Any VkImageView being sampled with a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM as a result of this command must sample with VK_FILTER_CUBIC_EXT", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-selectableCubicWeights-09214", + "text": "If the selectableCubicWeights feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have VkSamplerCubicWeightsCreateInfoQCOM::cubicWeights equal to VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-flags-02696", - "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE" + "text": "Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-OpTypeImage-07027", - "text": " For any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT" + "text": "For any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-OpTypeImage-07028", - "text": " For any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT" + "text": "For any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-OpTypeImage-07029", - "text": " For any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT" + "text": "For any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-OpTypeImage-07030", - "text": " Any VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT" + "text": "Any VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-08600", - "text": " For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-08601", - "text": " For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-maintenance4-08602", - "text": " If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-08114", - "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-08115", - "text": " If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-08116", - "text": " Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-08604", - "text": " Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command" + "text": "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-08117", - "text": " If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-08119", - "text": " If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident" + "text": "If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-08605", - "text": " If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident" + "text": "If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-08606", - "text": " If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command" + "text": "If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-08607", - "text": " If the shaderObject is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command" + "text": "If the shaderObject is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-08608", - "text": " If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound" + "text": "If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-08609", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-08610", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-08611", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-uniformBuffers-06935", - "text": " If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-08612", - "text": " If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-storageBuffers-06936", - "text": " If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-08613", - "text": " If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-02707", - "text": " If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource" + "text": "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-06550", - "text": " If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions" + "text": "If a bound shader accesses a VkSampler or VkImageView object that enables sampler Y′CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-ConstOffset-06551", - "text": " If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands" + "text": "If a bound shader accesses a VkSampler or VkImageView object that enables sampler Y′CBCR conversion, that object must not use the ConstOffset and Offset operands", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-viewType-07752", - "text": " If a VkImageView is accessed as a result of this command, then the image view’s viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation" + "text": "If a VkImageView is accessed as a result of this command, then the image view’s viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-format-07753", - "text": " If a VkImageView is accessed as a result of this command, then the numeric type of the image view’s format and the Sampled Type operand of the OpTypeImage must match" + "text": "If a VkImageView is accessed as a result of this command, then the numeric type of the image view’s format and the Sampled Type operand of the OpTypeImage must match", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-OpImageWrite-08795", - "text": " If a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format" + "text": "If a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-OpImageWrite-08796", - "text": " If a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components" + "text": "If a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-OpImageWrite-04469", - "text": " If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view’s format" + "text": "If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view’s format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-SampledType-04470", - "text": " If a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64" + "text": "If a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-SampledType-04471", - "text": " If a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32" + "text": "If a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-SampledType-04472", - "text": " If a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64" + "text": "If a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-SampledType-04473", - "text": " If a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32" + "text": "If a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-sparseImageInt64Atomics-04474", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command" + "text": "If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-sparseImageInt64Atomics-04475", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command" + "text": "If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-OpImageWeightedSampleQCOM-06971", - "text": " If OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-OpImageWeightedSampleQCOM-06972", - "text": " If OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-OpImageBoxFilterQCOM-06973", - "text": " If OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM" + "text": "If OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-OpImageBlockMatchSSDQCOM-06974", - "text": " If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM" + "text": "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-OpImageBlockMatchSADQCOM-06975", - "text": " If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM" + "text": "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-OpImageBlockMatchSADQCOM-06976", - "text": " If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation" + "text": "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-OpImageWeightedSampleQCOM-06977", - "text": " If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-OpImageWeightedSampleQCOM-06978", - "text": " If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM" + "text": "If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-OpImageBlockMatchWindow-09215", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-OpImageBlockMatchWindow-09216", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view’s format must be a single-component format.", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-OpImageBlockMatchWindow-09217", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-07288", - "text": " Any shader invocation executed by this command must terminate" + "text": "Any shader invocation executed by this command must terminate", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-03429", - "text": " Any shader group handle referenced by this call must have been queried from the currently bound ray tracing pipeline" + "text": "Any shader group handle referenced by this call must have been queried from the currently bound ray tracing pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-maxPipelineRayRecursionDepth-03679", - "text": " This command must not cause a shader call instruction to be executed from a shader invocation with a recursion depth greater than the value of maxPipelineRayRecursionDepth used to create the bound ray tracing pipeline" + "text": "This command must not cause a shader call instruction to be executed from a shader invocation with a recursion depth greater than the value of maxPipelineRayRecursionDepth used to create the bound ray tracing pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-03635", - "text": " commandBuffer must not be a protected command buffer" + "text": "commandBuffer must not be a protected command buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-size-04023", - "text": " The size member of pRayGenShaderBindingTable must be equal to its stride member" + "text": "The size member of pRayGenShaderBindingTable must be equal to its stride member", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pRayGenShaderBindingTable-03680", - "text": " If the buffer from which pname:pRayGenShaderBindingTable->deviceAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If the buffer from which pRayGenShaderBindingTable->deviceAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pRayGenShaderBindingTable-03681", - "text": " The buffer from which the pname:pRayGenShaderBindingTable->deviceAddress is queried must have been created with the VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR usage flag" + "text": "The buffer from which the pRayGenShaderBindingTable->deviceAddress is queried must have been created with the VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR usage flag", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pRayGenShaderBindingTable-03682", - "text": " pname:pRayGenShaderBindingTable->deviceAddress must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupBaseAlignment" + "text": "pRayGenShaderBindingTable->deviceAddress must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupBaseAlignment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pMissShaderBindingTable-03683", - "text": " If the buffer from which pname:pMissShaderBindingTable->deviceAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If the buffer from which pMissShaderBindingTable->deviceAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pMissShaderBindingTable-03684", - "text": " The buffer from which the pname:pMissShaderBindingTable->deviceAddress is queried must have been created with the VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR usage flag" + "text": "The buffer from which the pMissShaderBindingTable->deviceAddress is queried must have been created with the VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR usage flag", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pMissShaderBindingTable-03685", - "text": " pname:pMissShaderBindingTable->deviceAddress must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupBaseAlignment" + "text": "pMissShaderBindingTable->deviceAddress must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupBaseAlignment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-stride-03686", - "text": " pname:pMissShaderBindingTable->stride must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupHandleAlignment" + "text": "pMissShaderBindingTable->stride must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupHandleAlignment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-stride-04029", - "text": " pname:pMissShaderBindingTable->stride must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxShaderGroupStride" + "text": "pMissShaderBindingTable->stride must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxShaderGroupStride", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pHitShaderBindingTable-03687", - "text": " If the buffer from which pname:pHitShaderBindingTable->deviceAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If the buffer from which pHitShaderBindingTable->deviceAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pHitShaderBindingTable-03688", - "text": " The buffer from which the pname:pHitShaderBindingTable->deviceAddress is queried must have been created with the VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR usage flag" + "text": "The buffer from which the pHitShaderBindingTable->deviceAddress is queried must have been created with the VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR usage flag", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pHitShaderBindingTable-03689", - "text": " pname:pHitShaderBindingTable->deviceAddress must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupBaseAlignment" + "text": "pHitShaderBindingTable->deviceAddress must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupBaseAlignment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-stride-03690", - "text": " pname:pHitShaderBindingTable->stride must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupHandleAlignment" + "text": "pHitShaderBindingTable->stride must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupHandleAlignment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-stride-04035", - "text": " pname:pHitShaderBindingTable->stride must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxShaderGroupStride" + "text": "pHitShaderBindingTable->stride must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxShaderGroupStride", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pCallableShaderBindingTable-03691", - "text": " If the buffer from which pname:pCallableShaderBindingTable->deviceAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If the buffer from which pCallableShaderBindingTable->deviceAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pCallableShaderBindingTable-03692", - "text": " The buffer from which the pname:pCallableShaderBindingTable->deviceAddress is queried must have been created with the VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR usage flag" + "text": "The buffer from which the pCallableShaderBindingTable->deviceAddress is queried must have been created with the VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR usage flag", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pCallableShaderBindingTable-03693", - "text": " pname:pCallableShaderBindingTable->deviceAddress must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupBaseAlignment" + "text": "pCallableShaderBindingTable->deviceAddress must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupBaseAlignment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-stride-03694", - "text": " pname:pCallableShaderBindingTable->stride must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupHandleAlignment" + "text": "pCallableShaderBindingTable->stride must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupHandleAlignment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-stride-04041", - "text": " pname:pCallableShaderBindingTable->stride must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxShaderGroupStride" + "text": "pCallableShaderBindingTable->stride must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxShaderGroupStride", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-flags-03696", - "text": " If the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, pname:pHitShaderBindingTable->deviceAddress must not be zero" + "text": "If the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, pHitShaderBindingTable->deviceAddress must not be zero", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-flags-03697", - "text": " If the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, pname:pHitShaderBindingTable->deviceAddress must not be zero" + "text": "If the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, pHitShaderBindingTable->deviceAddress must not be zero", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-flags-03511", - "text": " If the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR, the shader group handle identified by pname:pMissShaderBindingTable->deviceAddress must not be set to zero" + "text": "If the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR, the shader group handle identified by pMissShaderBindingTable->deviceAddress must not be set to zero", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-flags-03512", - "text": " If the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR, entries in the table identified by pname:pHitShaderBindingTable->deviceAddress accessed as a result of this command in order to execute an any-hit shader must not be set to zero" + "text": "If the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR, entries in the table identified by pHitShaderBindingTable->deviceAddress accessed as a result of this command in order to execute an any-hit shader must not be set to zero", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-flags-03513", - "text": " If the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, entries in the table identified by pname:pHitShaderBindingTable->deviceAddress accessed as a result of this command in order to execute a closest hit shader must not be set to zero" + "text": "If the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, entries in the table identified by pHitShaderBindingTable->deviceAddress accessed as a result of this command in order to execute a closest hit shader must not be set to zero", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-flags-03514", - "text": " If the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, entries in the table identified by pname:pHitShaderBindingTable->deviceAddress accessed as a result of this command in order to execute an intersection shader must not be set to zero" + "text": "If the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, entries in the table identified by pHitShaderBindingTable->deviceAddress accessed as a result of this command in order to execute an intersection shader must not be set to zero", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pHitShaderBindingTable-04735", - "text": " Any non-zero hit shader group entries in the table identified by pname:pHitShaderBindingTable->deviceAddress accessed by this call from a geometry with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR must have been created with VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR" + "text": "Any non-zero hit shader group entries in the table identified by pHitShaderBindingTable->deviceAddress accessed by this call from a geometry with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR must have been created with VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pHitShaderBindingTable-04736", - "text": " Any non-zero hit shader group entries in the table identified by pname:pHitShaderBindingTable->deviceAddress accessed by this call from a geometry with a geometryType of VK_GEOMETRY_TYPE_AABBS_KHR must have been created with VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR" + "text": "Any non-zero hit shader group entries in the table identified by pHitShaderBindingTable->deviceAddress accessed by this call from a geometry with a geometryType of VK_GEOMETRY_TYPE_AABBS_KHR must have been created with VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-indirectDeviceAddress-03632", - "text": " If the buffer from which indirectDeviceAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If the buffer from which indirectDeviceAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-indirectDeviceAddress-03633", - "text": " The buffer from which indirectDeviceAddress was queried must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set" + "text": "The buffer from which indirectDeviceAddress was queried must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-indirectDeviceAddress-03634", - "text": " indirectDeviceAddress must be a multiple of 4" + "text": "indirectDeviceAddress must be a multiple of 4", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-indirectDeviceAddress-03636", - "text": " All device addresses between indirectDeviceAddress and indirectDeviceAddress + sizeof(sname:VkTraceRaysIndirectCommandKHR) - 1 must be in the buffer device address range of the same buffer" + "text": "All device addresses between indirectDeviceAddress and indirectDeviceAddress + sizeof(VkTraceRaysIndirectCommandKHR) - 1 must be in the buffer device address range of the same buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-rayTracingPipelineTraceRaysIndirect-03637", - "text": " The pname:rayTracingPipelineTraceRaysIndirect feature must be enabled" + "text": "The rayTracingPipelineTraceRaysIndirect feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-rayTracingMotionBlurPipelineTraceRaysIndirect-04951", - "text": " If the bound ray tracing pipeline was created with VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV VkPhysicalDeviceRayTracingMotionBlurFeaturesNV::rayTracingMotionBlurPipelineTraceRaysIndirect feature must be enabled" + "text": "If the bound ray tracing pipeline was created with VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV VkPhysicalDeviceRayTracingMotionBlurFeaturesNV::rayTracingMotionBlurPipelineTraceRaysIndirect feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pRaygenShaderBindingTable-parameter", - "text": " pRaygenShaderBindingTable must be a valid pointer to a valid VkStridedDeviceAddressRegionKHR structure" + "text": "pRaygenShaderBindingTable must be a valid pointer to a valid VkStridedDeviceAddressRegionKHR structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pMissShaderBindingTable-parameter", - "text": " pMissShaderBindingTable must be a valid pointer to a valid VkStridedDeviceAddressRegionKHR structure" + "text": "pMissShaderBindingTable must be a valid pointer to a valid VkStridedDeviceAddressRegionKHR structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pHitShaderBindingTable-parameter", - "text": " pHitShaderBindingTable must be a valid pointer to a valid VkStridedDeviceAddressRegionKHR structure" + "text": "pHitShaderBindingTable must be a valid pointer to a valid VkStridedDeviceAddressRegionKHR structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pCallableShaderBindingTable-parameter", - "text": " pCallableShaderBindingTable must be a valid pointer to a valid VkStridedDeviceAddressRegionKHR structure" + "text": "pCallableShaderBindingTable must be a valid pointer to a valid VkStridedDeviceAddressRegionKHR structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support compute operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-renderpass", - "text": " This command must only be called outside of a render pass instance" + "text": "This command must only be called outside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -68594,19 +88533,23 @@ "core": [ { "vuid": "VUID-VkTraceRaysIndirectCommandKHR-width-03638", - "text": " width must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[0] {times} VkPhysicalDeviceLimits::maxComputeWorkGroupSize[0]" + "text": "width must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[0] × VkPhysicalDeviceLimits::maxComputeWorkGroupSize[0]", + "page": "vkspec" }, { "vuid": "VUID-VkTraceRaysIndirectCommandKHR-height-03639", - "text": " height must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1] {times} VkPhysicalDeviceLimits::maxComputeWorkGroupSize[1]" + "text": "height must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1] × VkPhysicalDeviceLimits::maxComputeWorkGroupSize[1]", + "page": "vkspec" }, { "vuid": "VUID-VkTraceRaysIndirectCommandKHR-depth-03640", - "text": " depth must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[2] {times} VkPhysicalDeviceLimits::maxComputeWorkGroupSize[2]" + "text": "depth must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[2] × VkPhysicalDeviceLimits::maxComputeWorkGroupSize[2]", + "page": "vkspec" }, { "vuid": "VUID-VkTraceRaysIndirectCommandKHR-width-03641", - "text": " width {times} height {times} depth must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxRayDispatchInvocationCount" + "text": "width × height × depth must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxRayDispatchInvocationCount", + "page": "vkspec" } ] }, @@ -68614,287 +88557,388 @@ "core": [ { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-magFilter-04553", - "text": " If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + "text": "If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-mipmapMode-04770", - "text": " If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + "text": "If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-06479", - "text": " If a VkImageView is sampled with depth comparison, the image view’s format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT" + "text": "If a VkImageView is sampled with depth comparison, the image view’s format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-02691", - "text": " If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT" + "text": "If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-07888", - "text": " If a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer’s format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT" + "text": "If a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer’s format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-02692", - "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" + "text": "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-02693", - "text": " If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" + "text": "If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-filterCubic-02694", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" + "text": "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-filterCubicMinmax-02695", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" + "text": "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-cubicRangeClamp-09212", + "text": "If the cubicRangeClamp feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command
\n
\n
must not have a VkSamplerReductionModeCreateInfo
\n
\n

reductionMode equal to\nVK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM

\n
\n
\n
", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-reductionMode-09213", + "text": "Any VkImageView being sampled with a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM as a result of this command must sample with VK_FILTER_CUBIC_EXT", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-selectableCubicWeights-09214", + "text": "If the selectableCubicWeights feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have VkSamplerCubicWeightsCreateInfoQCOM::cubicWeights equal to VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-flags-02696", - "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE" + "text": "Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-OpTypeImage-07027", - "text": " For any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT" + "text": "For any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-OpTypeImage-07028", - "text": " For any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT" + "text": "For any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-OpTypeImage-07029", - "text": " For any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT" + "text": "For any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-OpTypeImage-07030", - "text": " Any VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT" + "text": "Any VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-08600", - "text": " For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-08601", - "text": " For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-maintenance4-08602", - "text": " If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-08114", - "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-08115", - "text": " If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-08116", - "text": " Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-08604", - "text": " Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command" + "text": "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-08117", - "text": " If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-08119", - "text": " If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident" + "text": "If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-08605", - "text": " If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident" + "text": "If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-08606", - "text": " If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command" + "text": "If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-08607", - "text": " If the shaderObject is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command" + "text": "If the shaderObject is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-08608", - "text": " If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound" + "text": "If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-08609", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-08610", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-08611", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-uniformBuffers-06935", - "text": " If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-08612", - "text": " If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-storageBuffers-06936", - "text": " If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-08613", - "text": " If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-commandBuffer-02707", - "text": " If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource" + "text": "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-06550", - "text": " If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions" + "text": "If a bound shader accesses a VkSampler or VkImageView object that enables sampler Y′CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-ConstOffset-06551", - "text": " If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands" + "text": "If a bound shader accesses a VkSampler or VkImageView object that enables sampler Y′CBCR conversion, that object must not use the ConstOffset and Offset operands", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-viewType-07752", - "text": " If a VkImageView is accessed as a result of this command, then the image view’s viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation" + "text": "If a VkImageView is accessed as a result of this command, then the image view’s viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-format-07753", - "text": " If a VkImageView is accessed as a result of this command, then the numeric type of the image view’s format and the Sampled Type operand of the OpTypeImage must match" + "text": "If a VkImageView is accessed as a result of this command, then the numeric type of the image view’s format and the Sampled Type operand of the OpTypeImage must match", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-OpImageWrite-08795", - "text": " If a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format" + "text": "If a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-OpImageWrite-08796", - "text": " If a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components" + "text": "If a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-OpImageWrite-04469", - "text": " If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view’s format" + "text": "If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view’s format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-SampledType-04470", - "text": " If a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64" + "text": "If a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-SampledType-04471", - "text": " If a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32" + "text": "If a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-SampledType-04472", - "text": " If a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64" + "text": "If a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-SampledType-04473", - "text": " If a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32" + "text": "If a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-sparseImageInt64Atomics-04474", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command" + "text": "If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-sparseImageInt64Atomics-04475", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command" + "text": "If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-OpImageWeightedSampleQCOM-06971", - "text": " If OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-OpImageWeightedSampleQCOM-06972", - "text": " If OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-OpImageBoxFilterQCOM-06973", - "text": " If OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM" + "text": "If OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-OpImageBlockMatchSSDQCOM-06974", - "text": " If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM" + "text": "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-OpImageBlockMatchSADQCOM-06975", - "text": " If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM" + "text": "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-OpImageBlockMatchSADQCOM-06976", - "text": " If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation" + "text": "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-OpImageWeightedSampleQCOM-06977", - "text": " If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-OpImageWeightedSampleQCOM-06978", - "text": " If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM" + "text": "If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-OpImageBlockMatchWindow-09215", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-OpImageBlockMatchWindow-09216", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view’s format must be a single-component format.", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-OpImageBlockMatchWindow-09217", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-07288", - "text": " Any shader invocation executed by this command must terminate" + "text": "Any shader invocation executed by this command must terminate", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-03429", - "text": " Any shader group handle referenced by this call must have been queried from the currently bound ray tracing pipeline" + "text": "Any shader group handle referenced by this call must have been queried from the currently bound ray tracing pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-maxPipelineRayRecursionDepth-03679", - "text": " This command must not cause a shader call instruction to be executed from a shader invocation with a recursion depth greater than the value of maxPipelineRayRecursionDepth used to create the bound ray tracing pipeline" + "text": "This command must not cause a shader call instruction to be executed from a shader invocation with a recursion depth greater than the value of maxPipelineRayRecursionDepth used to create the bound ray tracing pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-commandBuffer-03635", - "text": " commandBuffer must not be a protected command buffer" + "text": "commandBuffer must not be a protected command buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-indirectDeviceAddress-03632", - "text": " If the buffer from which indirectDeviceAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If the buffer from which indirectDeviceAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-indirectDeviceAddress-03633", - "text": " The buffer from which indirectDeviceAddress was queried must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set" + "text": "The buffer from which indirectDeviceAddress was queried must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-indirectDeviceAddress-03634", - "text": " indirectDeviceAddress must be a multiple of 4" + "text": "indirectDeviceAddress must be a multiple of 4", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-indirectDeviceAddress-03636", - "text": " All device addresses between indirectDeviceAddress and indirectDeviceAddress + sizeof(sname:VkTraceRaysIndirectCommand2KHR) - 1 must be in the buffer device address range of the same buffer" + "text": "All device addresses between indirectDeviceAddress and indirectDeviceAddress + sizeof(VkTraceRaysIndirectCommand2KHR) - 1 must be in the buffer device address range of the same buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-rayTracingPipelineTraceRaysIndirect2-03637", - "text": " The pname:rayTracingPipelineTraceRaysIndirect2 feature must be enabled" + "text": "The rayTracingPipelineTraceRaysIndirect2 feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-rayTracingMotionBlurPipelineTraceRaysIndirect-04951", - "text": " If the bound ray tracing pipeline was created with VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV VkPhysicalDeviceRayTracingMotionBlurFeaturesNV::rayTracingMotionBlurPipelineTraceRaysIndirect feature must be enabled" + "text": "If the bound ray tracing pipeline was created with VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV VkPhysicalDeviceRayTracingMotionBlurFeaturesNV::rayTracingMotionBlurPipelineTraceRaysIndirect feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support compute operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-renderpass", - "text": " This command must only be called outside of a render pass instance" + "text": "This command must only be called outside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -68902,123 +88946,153 @@ "core": [ { "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-pRayGenShaderBindingTable-03680", - "text": " If the buffer from which pname:raygenShaderRecordAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If the buffer from which raygenShaderRecordAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-pRayGenShaderBindingTable-03681", - "text": " The buffer from which the pname:raygenShaderRecordAddress is queried must have been created with the VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR usage flag" + "text": "The buffer from which the raygenShaderRecordAddress is queried must have been created with the VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR usage flag", + "page": "vkspec" }, { "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-pRayGenShaderBindingTable-03682", - "text": " pname:raygenShaderRecordAddress must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupBaseAlignment" + "text": "raygenShaderRecordAddress must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupBaseAlignment", + "page": "vkspec" }, { "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-pMissShaderBindingTable-03683", - "text": " If the buffer from which pname:missShaderBindingTableAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If the buffer from which missShaderBindingTableAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-pMissShaderBindingTable-03684", - "text": " The buffer from which the pname:missShaderBindingTableAddress is queried must have been created with the VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR usage flag" + "text": "The buffer from which the missShaderBindingTableAddress is queried must have been created with the VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR usage flag", + "page": "vkspec" }, { "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-pMissShaderBindingTable-03685", - "text": " pname:missShaderBindingTableAddress must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupBaseAlignment" + "text": "missShaderBindingTableAddress must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupBaseAlignment", + "page": "vkspec" }, { "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-stride-03686", - "text": " pname:missShaderBindingTableStride must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupHandleAlignment" + "text": "missShaderBindingTableStride must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupHandleAlignment", + "page": "vkspec" }, { "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-stride-04029", - "text": " pname:missShaderBindingTableStride must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxShaderGroupStride" + "text": "missShaderBindingTableStride must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxShaderGroupStride", + "page": "vkspec" }, { "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-pHitShaderBindingTable-03687", - "text": " If the buffer from which pname:hitShaderBindingTableAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If the buffer from which hitShaderBindingTableAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-pHitShaderBindingTable-03688", - "text": " The buffer from which the pname:hitShaderBindingTableAddress is queried must have been created with the VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR usage flag" + "text": "The buffer from which the hitShaderBindingTableAddress is queried must have been created with the VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR usage flag", + "page": "vkspec" }, { "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-pHitShaderBindingTable-03689", - "text": " pname:hitShaderBindingTableAddress must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupBaseAlignment" + "text": "hitShaderBindingTableAddress must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupBaseAlignment", + "page": "vkspec" }, { "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-stride-03690", - "text": " pname:hitShaderBindingTableStride must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupHandleAlignment" + "text": "hitShaderBindingTableStride must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupHandleAlignment", + "page": "vkspec" }, { "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-stride-04035", - "text": " pname:hitShaderBindingTableStride must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxShaderGroupStride" + "text": "hitShaderBindingTableStride must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxShaderGroupStride", + "page": "vkspec" }, { "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-pCallableShaderBindingTable-03691", - "text": " If the buffer from which pname:callableShaderBindingTableAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If the buffer from which callableShaderBindingTableAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-pCallableShaderBindingTable-03692", - "text": " The buffer from which the pname:callableShaderBindingTableAddress is queried must have been created with the VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR usage flag" + "text": "The buffer from which the callableShaderBindingTableAddress is queried must have been created with the VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR usage flag", + "page": "vkspec" }, { "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-pCallableShaderBindingTable-03693", - "text": " pname:callableShaderBindingTableAddress must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupBaseAlignment" + "text": "callableShaderBindingTableAddress must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupBaseAlignment", + "page": "vkspec" }, { "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-stride-03694", - "text": " pname:callableShaderBindingTableStride must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupHandleAlignment" + "text": "callableShaderBindingTableStride must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupHandleAlignment", + "page": "vkspec" }, { "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-stride-04041", - "text": " pname:callableShaderBindingTableStride must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxShaderGroupStride" + "text": "callableShaderBindingTableStride must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxShaderGroupStride", + "page": "vkspec" }, { "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-flags-03696", - "text": " If the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, pname:hitShaderBindingTableAddress must not be zero" + "text": "If the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, hitShaderBindingTableAddress must not be zero", + "page": "vkspec" }, { "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-flags-03697", - "text": " If the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, pname:hitShaderBindingTableAddress must not be zero" + "text": "If the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, hitShaderBindingTableAddress must not be zero", + "page": "vkspec" }, { "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-flags-03511", - "text": " If the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR, the shader group handle identified by pname:missShaderBindingTableAddress must not be set to zero" + "text": "If the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR, the shader group handle identified by missShaderBindingTableAddress must not be set to zero", + "page": "vkspec" }, { "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-flags-03512", - "text": " If the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR, entries in the table identified by pname:hitShaderBindingTableAddress accessed as a result of this command in order to execute an any-hit shader must not be set to zero" + "text": "If the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR, entries in the table identified by hitShaderBindingTableAddress accessed as a result of this command in order to execute an any-hit shader must not be set to zero", + "page": "vkspec" }, { "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-flags-03513", - "text": " If the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, entries in the table identified by pname:hitShaderBindingTableAddress accessed as a result of this command in order to execute a closest hit shader must not be set to zero" + "text": "If the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, entries in the table identified by hitShaderBindingTableAddress accessed as a result of this command in order to execute a closest hit shader must not be set to zero", + "page": "vkspec" }, { "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-flags-03514", - "text": " If the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, entries in the table identified by pname:hitShaderBindingTableAddress accessed as a result of this command in order to execute an intersection shader must not be set to zero" + "text": "If the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, entries in the table identified by hitShaderBindingTableAddress accessed as a result of this command in order to execute an intersection shader must not be set to zero", + "page": "vkspec" }, { "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-pHitShaderBindingTable-04735", - "text": " Any non-zero hit shader group entries in the table identified by pname:hitShaderBindingTableAddress accessed by this call from a geometry with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR must have been created with VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR" + "text": "Any non-zero hit shader group entries in the table identified by hitShaderBindingTableAddress accessed by this call from a geometry with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR must have been created with VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-pHitShaderBindingTable-04736", - "text": " Any non-zero hit shader group entries in the table identified by pname:hitShaderBindingTableAddress accessed by this call from a geometry with a geometryType of VK_GEOMETRY_TYPE_AABBS_KHR must have been created with VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR" + "text": "Any non-zero hit shader group entries in the table identified by hitShaderBindingTableAddress accessed by this call from a geometry with a geometryType of VK_GEOMETRY_TYPE_AABBS_KHR must have been created with VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-width-03638", - "text": " width must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[0] {times} VkPhysicalDeviceLimits::maxComputeWorkGroupSize[0]" + "text": "width must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[0] × VkPhysicalDeviceLimits::maxComputeWorkGroupSize[0]", + "page": "vkspec" }, { "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-height-03639", - "text": " height must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1] {times} VkPhysicalDeviceLimits::maxComputeWorkGroupSize[1]" + "text": "height must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1] × VkPhysicalDeviceLimits::maxComputeWorkGroupSize[1]", + "page": "vkspec" }, { "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-depth-03640", - "text": " depth must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[2] {times} VkPhysicalDeviceLimits::maxComputeWorkGroupSize[2]" + "text": "depth must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[2] × VkPhysicalDeviceLimits::maxComputeWorkGroupSize[2]", + "page": "vkspec" }, { "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-width-03641", - "text": " width {times} height {times} depth must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxRayDispatchInvocationCount" + "text": "width × height × depth must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxRayDispatchInvocationCount", + "page": "vkspec" } ] }, @@ -69026,35 +89100,43 @@ "core": [ { "vuid": "VUID-vkCmdDecompressMemoryNV-None-07684", - "text": " The memoryDecompression feature must be enabled" + "text": "The memoryDecompression feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecompressMemoryNV-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecompressMemoryNV-pDecompressMemoryRegions-parameter", - "text": " pDecompressMemoryRegions must be a valid pointer to an array of decompressRegionCount valid VkDecompressMemoryRegionNV structures" + "text": "pDecompressMemoryRegions must be a valid pointer to an array of decompressRegionCount valid VkDecompressMemoryRegionNV structures", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecompressMemoryNV-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecompressMemoryNV-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecompressMemoryNV-renderpass", - "text": " This command must only be called outside of a render pass instance" + "text": "This command must only be called outside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecompressMemoryNV-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecompressMemoryNV-decompressRegionCount-arraylength", - "text": " decompressRegionCount must be greater than 0" + "text": "decompressRegionCount must be greater than 0", + "page": "vkspec" } ] }, @@ -69062,39 +89144,48 @@ "core": [ { "vuid": "VUID-VkDecompressMemoryRegionNV-srcAddress-07685", - "text": " The srcAddress must be 4 byte aligned" + "text": "The srcAddress must be 4 byte aligned", + "page": "vkspec" }, { "vuid": "VUID-VkDecompressMemoryRegionNV-srcAddress-07686", - "text": " The memory in range srcAddress and srcAddress + compressedSize must be valid and bound to a VkDeviceMemory object" + "text": "The memory in range srcAddress and srcAddress + compressedSize must be valid and bound to a VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-VkDecompressMemoryRegionNV-dstAddress-07687", - "text": " The dstAddress must be 4 byte aligned" + "text": "The dstAddress must be 4 byte aligned", + "page": "vkspec" }, { "vuid": "VUID-VkDecompressMemoryRegionNV-dstAddress-07688", - "text": " The memory in range dstAddress and dstAddress + decompressedSize must be valid and bound to a VkDeviceMemory object" + "text": "The memory in range dstAddress and dstAddress + decompressedSize must be valid and bound to a VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-VkDecompressMemoryRegionNV-decompressedSize-07689", - "text": " The decompressedSize must be large enough to hold the decompressed data based on the decompressionMethod" + "text": "The decompressedSize must be large enough to hold the decompressed data based on the decompressionMethod", + "page": "vkspec" }, { "vuid": "VUID-VkDecompressMemoryRegionNV-decompressionMethod-07690", - "text": " The decompressionMethod must have a single bit set" + "text": "The decompressionMethod must have a single bit set", + "page": "vkspec" }, { "vuid": "VUID-VkDecompressMemoryRegionNV-srcAddress-07691", - "text": " The srcAddress to srcAddress + compressedSize region must not overlap with the dstAddress and dstAddress + decompressedSize region" + "text": "The srcAddress to srcAddress + compressedSize region must not overlap with the dstAddress and dstAddress + decompressedSize region", + "page": "vkspec" }, { "vuid": "VUID-VkDecompressMemoryRegionNV-decompressionMethod-parameter", - "text": " decompressionMethod must be a valid combination of VkMemoryDecompressionMethodFlagBitsNV values" + "text": "decompressionMethod must be a valid combination of VkMemoryDecompressionMethodFlagBitsNV values", + "page": "vkspec" }, { "vuid": "VUID-VkDecompressMemoryRegionNV-decompressionMethod-requiredbitmask", - "text": " decompressionMethod must not be 0" + "text": "decompressionMethod must not be 0", + "page": "vkspec" } ] }, @@ -69102,67 +89193,83 @@ "core": [ { "vuid": "VUID-vkCmdDecompressMemoryIndirectCountNV-None-07692", - "text": " The memoryDecompression feature must be enabled" + "text": "The memoryDecompression feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecompressMemoryIndirectCountNV-indirectCommandsAddress-07693", - "text": " If indirectCommandsAddress comes from a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If indirectCommandsAddress comes from a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecompressMemoryIndirectCountNV-indirectCommandsAddress-07694", - "text": " The VkBuffer that indirectCommandsAddress comes from must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set" + "text": "The VkBuffer that indirectCommandsAddress comes from must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecompressMemoryIndirectCountNV-offset-07695", - "text": " offset must be a multiple of 4" + "text": "offset must be a multiple of 4", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecompressMemoryIndirectCountNV-indirectCommandsCountAddress-07696", - "text": " If indirectCommandsCountAddress comes from a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object" + "text": "If indirectCommandsCountAddress comes from a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecompressMemoryIndirectCountNV-indirectCommandsCountAddress-07697", - "text": " The VkBuffer that indirectCommandsCountAddress comes from must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set" + "text": "The VkBuffer that indirectCommandsCountAddress comes from must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecompressMemoryIndirectCountNV-indirectCommandsCountAddress-07698", - "text": " indirectCommandsCountAddress must be a multiple of 4" + "text": "indirectCommandsCountAddress must be a multiple of 4", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecompressMemoryIndirectCountNV-indirectCommandsCountAddress-07699", - "text": " The count stored in indirectCommandsCountAddress must be less than or equal to VkPhysicalDeviceMemoryDecompressionPropertiesNV::maxDecompressionIndirectCount" + "text": "The count stored in indirectCommandsCountAddress must be less than or equal to VkPhysicalDeviceMemoryDecompressionPropertiesNV::maxDecompressionIndirectCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecompressMemoryIndirectCountNV-stride-07700", - "text": " stride must be a multiple of 4 and must be greater than or equal to sizeof(VkDecompressMemoryRegionNV)" + "text": "stride must be a multiple of 4 and must be greater than or equal to sizeof(VkDecompressMemoryRegionNV)", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecompressMemoryIndirectCountNV-indirectCommandsCountAddress-07701", - "text": " If the count stored in indirectCommandsCountAddress is equal to 1, (offset + sizeof(VkDecompressMemoryRegionNV)) must be less than or equal to the size of the VkBuffer that indirectCommandsAddress comes from" + "text": "If the count stored in indirectCommandsCountAddress is equal to 1, (offset + sizeof(VkDecompressMemoryRegionNV)) must be less than or equal to the size of the VkBuffer that indirectCommandsAddress comes from", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecompressMemoryIndirectCountNV-indirectCommandsCountAddress-07702", - "text": " If the count stored in indirectCommandsCountAddress is greater than 1, indirectCommandsAddress + sizeof(VkDecompressMemoryRegionNV) + (stride {times} (count stored in countBuffer - 1)) must be less than or equal to the last valid address in the VkBuffer that indirectCommandsAddress was created from" + "text": "If the count stored in indirectCommandsCountAddress is greater than 1, indirectCommandsAddress + sizeof(VkDecompressMemoryRegionNV) + (stride × (count stored in countBuffer - 1)) must be less than or equal to the last valid address in the VkBuffer that indirectCommandsAddress was created from", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecompressMemoryIndirectCountNV-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecompressMemoryIndirectCountNV-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecompressMemoryIndirectCountNV-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecompressMemoryIndirectCountNV-renderpass", - "text": " This command must only be called outside of a render pass instance" + "text": "This command must only be called outside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecompressMemoryIndirectCountNV-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -69170,19 +89277,23 @@ "core": [ { "vuid": "VUID-VkVideoPictureResourceInfoKHR-baseArrayLayer-07175", - "text": " baseArrayLayer must be less than the VkImageViewCreateInfo::subresourceRange.layerCount specified when the image view imageViewBinding was created" + "text": "baseArrayLayer must be less than the VkImageViewCreateInfo::subresourceRange.layerCount specified when the image view imageViewBinding was created", + "page": "vkspec" }, { "vuid": "VUID-VkVideoPictureResourceInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkVideoPictureResourceInfoKHR-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkVideoPictureResourceInfoKHR-imageViewBinding-parameter", - "text": " imageViewBinding must be a valid VkImageView handle" + "text": "imageViewBinding must be a valid VkImageView handle", + "page": "vkspec" } ] }, @@ -69190,59 +89301,73 @@ "core": [ { "vuid": "VUID-VkVideoProfileInfoKHR-chromaSubsampling-07013", - "text": " chromaSubsampling must have a single bit set" + "text": "chromaSubsampling must have a single bit set", + "page": "vkspec" }, { "vuid": "VUID-VkVideoProfileInfoKHR-lumaBitDepth-07014", - "text": " lumaBitDepth must have a single bit set" + "text": "lumaBitDepth must have a single bit set", + "page": "vkspec" }, { "vuid": "VUID-VkVideoProfileInfoKHR-chromaSubsampling-07015", - "text": " If chromaSubsampling is not VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR, then chromaBitDepth must have a single bit set" + "text": "If chromaSubsampling is not VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR, then chromaBitDepth must have a single bit set", + "page": "vkspec" }, { "vuid": "VUID-VkVideoProfileInfoKHR-videoCodecOperation-07179", - "text": " If videoCodecOperation is VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR, then the pNext chain must include a VkVideoDecodeH264ProfileInfoKHR structure" + "text": "If videoCodecOperation is VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR, then the pNext chain must include a VkVideoDecodeH264ProfileInfoKHR structure", + "page": "vkspec" }, { "vuid": "VUID-VkVideoProfileInfoKHR-videoCodecOperation-07180", - "text": " If videoCodecOperation is VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR, then the pNext chain must include a VkVideoDecodeH265ProfileInfoKHR structure" + "text": "If videoCodecOperation is VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR, then the pNext chain must include a VkVideoDecodeH265ProfileInfoKHR structure", + "page": "vkspec" }, { "vuid": "VUID-VkVideoProfileInfoKHR-videoCodecOperation-07181", - "text": " If videoCodecOperation is VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT, then the pNext chain must include a VkVideoEncodeH264ProfileInfoEXT structure" + "text": "If videoCodecOperation is VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT, then the pNext chain must include a VkVideoEncodeH264ProfileInfoEXT structure", + "page": "vkspec" }, { "vuid": "VUID-VkVideoProfileInfoKHR-videoCodecOperation-07182", - "text": " If videoCodecOperation is VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_EXT, then the pNext chain must include a VkVideoEncodeH265ProfileInfoEXT structure" + "text": "If videoCodecOperation is VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_EXT, then the pNext chain must include a VkVideoEncodeH265ProfileInfoEXT structure", + "page": "vkspec" }, { "vuid": "VUID-VkVideoProfileInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkVideoProfileInfoKHR-videoCodecOperation-parameter", - "text": " videoCodecOperation must be a valid VkVideoCodecOperationFlagBitsKHR value" + "text": "videoCodecOperation must be a valid VkVideoCodecOperationFlagBitsKHR value", + "page": "vkspec" }, { "vuid": "VUID-VkVideoProfileInfoKHR-chromaSubsampling-parameter", - "text": " chromaSubsampling must be a valid combination of VkVideoChromaSubsamplingFlagBitsKHR values" + "text": "chromaSubsampling must be a valid combination of VkVideoChromaSubsamplingFlagBitsKHR values", + "page": "vkspec" }, { "vuid": "VUID-VkVideoProfileInfoKHR-chromaSubsampling-requiredbitmask", - "text": " chromaSubsampling must not be 0" + "text": "chromaSubsampling must not be 0", + "page": "vkspec" }, { "vuid": "VUID-VkVideoProfileInfoKHR-lumaBitDepth-parameter", - "text": " lumaBitDepth must be a valid combination of VkVideoComponentBitDepthFlagBitsKHR values" + "text": "lumaBitDepth must be a valid combination of VkVideoComponentBitDepthFlagBitsKHR values", + "page": "vkspec" }, { "vuid": "VUID-VkVideoProfileInfoKHR-lumaBitDepth-requiredbitmask", - "text": " lumaBitDepth must not be 0" + "text": "lumaBitDepth must not be 0", + "page": "vkspec" }, { "vuid": "VUID-VkVideoProfileInfoKHR-chromaBitDepth-parameter", - "text": " chromaBitDepth must be a valid combination of VkVideoComponentBitDepthFlagBitsKHR values" + "text": "chromaBitDepth must be a valid combination of VkVideoComponentBitDepthFlagBitsKHR values", + "page": "vkspec" } ] }, @@ -69250,11 +89375,13 @@ "core": [ { "vuid": "VUID-VkVideoDecodeUsageInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkVideoDecodeUsageInfoKHR-videoUsageHints-parameter", - "text": " videoUsageHints must be a valid combination of VkVideoDecodeUsageFlagBitsKHR values" + "text": "videoUsageHints must be a valid combination of VkVideoDecodeUsageFlagBitsKHR values", + "page": "vkspec" } ] }, @@ -69262,19 +89389,23 @@ "core": [ { "vuid": "VUID-VkVideoEncodeUsageInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkVideoEncodeUsageInfoKHR-videoUsageHints-parameter", - "text": " videoUsageHints must be a valid combination of VkVideoEncodeUsageFlagBitsKHR values" + "text": "videoUsageHints must be a valid combination of VkVideoEncodeUsageFlagBitsKHR values", + "page": "vkspec" }, { "vuid": "VUID-VkVideoEncodeUsageInfoKHR-videoContentHints-parameter", - "text": " videoContentHints must be a valid combination of VkVideoEncodeContentFlagBitsKHR values" + "text": "videoContentHints must be a valid combination of VkVideoEncodeContentFlagBitsKHR values", + "page": "vkspec" }, { "vuid": "VUID-VkVideoEncodeUsageInfoKHR-tuningMode-parameter", - "text": " If tuningMode is not 0, tuningMode must be a valid VkVideoEncodeTuningModeKHR value" + "text": "If tuningMode is not 0, tuningMode must be a valid VkVideoEncodeTuningModeKHR value", + "page": "vkspec" } ] }, @@ -69282,15 +89413,18 @@ "core": [ { "vuid": "VUID-VkVideoProfileListInfoKHR-pProfiles-06813", - "text": " pProfiles must not contain more than one element whose videoCodecOperation member specifies a decode operation" + "text": "pProfiles must not contain more than one element whose videoCodecOperation member specifies a decode operation", + "page": "vkspec" }, { "vuid": "VUID-VkVideoProfileListInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkVideoProfileListInfoKHR-pProfiles-parameter", - "text": " If profileCount is not 0, pProfiles must be a valid pointer to an array of profileCount valid VkVideoProfileInfoKHR structures" + "text": "If profileCount is not 0, pProfiles must be a valid pointer to an array of profileCount valid VkVideoProfileInfoKHR structures", + "page": "vkspec" } ] }, @@ -69298,39 +89432,48 @@ "core": [ { "vuid": "VUID-vkGetPhysicalDeviceVideoCapabilitiesKHR-pVideoProfile-07183", - "text": " If pVideoProfile->videoCodecOperation specifies a decode operation, then the pNext chain of pCapabilities must include a VkVideoDecodeCapabilitiesKHR structure" + "text": "If pVideoProfile->videoCodecOperation specifies a decode operation, then the pNext chain of pCapabilities must include a VkVideoDecodeCapabilitiesKHR structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceVideoCapabilitiesKHR-pVideoProfile-07184", - "text": " If pVideoProfile->videoCodecOperation is VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR, then the pNext chain of pCapabilities must include a VkVideoDecodeH264CapabilitiesKHR structure" + "text": "If pVideoProfile->videoCodecOperation is VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR, then the pNext chain of pCapabilities must include a VkVideoDecodeH264CapabilitiesKHR structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceVideoCapabilitiesKHR-pVideoProfile-07185", - "text": " If pVideoProfile->videoCodecOperation is VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR, then the pNext chain of pCapabilities must include a VkVideoDecodeH265CapabilitiesKHR structure" + "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": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceVideoCapabilitiesKHR-pVideoProfile-07186", - "text": " If pVideoProfile->videoCodecOperation specifies an encode operation, then the pNext chain of pCapabilities must include a VkVideoEncodeCapabilitiesKHR structure" + "text": "If pVideoProfile->videoCodecOperation specifies an encode operation, then the pNext chain of pCapabilities must include a VkVideoEncodeCapabilitiesKHR structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceVideoCapabilitiesKHR-pVideoProfile-07187", - "text": " If pVideoProfile->videoCodecOperation is VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT, then the pNext chain of pCapabilities must include a VkVideoEncodeH264CapabilitiesEXT structure" + "text": "If pVideoProfile->videoCodecOperation is VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT, then the pNext chain of pCapabilities must include a VkVideoEncodeH264CapabilitiesEXT structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceVideoCapabilitiesKHR-pVideoProfile-07188", - "text": " If pVideoProfile->videoCodecOperation is VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_EXT, then the pNext chain of pCapabilities must include a VkVideoEncodeH265CapabilitiesEXT structure" + "text": "If pVideoProfile->videoCodecOperation is VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_EXT, then the pNext chain of pCapabilities must include a VkVideoEncodeH265CapabilitiesEXT structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceVideoCapabilitiesKHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": "physicalDevice must be a valid VkPhysicalDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceVideoCapabilitiesKHR-pVideoProfile-parameter", - "text": " pVideoProfile must be a valid pointer to a valid VkVideoProfileInfoKHR structure" + "text": "pVideoProfile must be a valid pointer to a valid VkVideoProfileInfoKHR structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceVideoCapabilitiesKHR-pCapabilities-parameter", - "text": " pCapabilities must be a valid pointer to a VkVideoCapabilitiesKHR structure" + "text": "pCapabilities must be a valid pointer to a VkVideoCapabilitiesKHR structure", + "page": "vkspec" } ] }, @@ -69338,15 +89481,18 @@ "core": [ { "vuid": "VUID-VkVideoCapabilitiesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR", + "page": "vkspec" }, { "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 VkVideoDecodeCapabilitiesKHR, VkVideoDecodeH264CapabilitiesKHR, VkVideoDecodeH265CapabilitiesKHR, VkVideoEncodeCapabilitiesKHR, VkVideoEncodeH264CapabilitiesEXT, or VkVideoEncodeH265CapabilitiesEXT" + "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 VkVideoDecodeCapabilitiesKHR, VkVideoDecodeH264CapabilitiesKHR, VkVideoDecodeH265CapabilitiesKHR, VkVideoEncodeCapabilitiesKHR, VkVideoEncodeH264CapabilitiesEXT, or VkVideoEncodeH265CapabilitiesEXT", + "page": "vkspec" }, { "vuid": "VUID-VkVideoCapabilitiesKHR-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" } ] }, @@ -69354,23 +89500,28 @@ "core": [ { "vuid": "VUID-vkGetPhysicalDeviceVideoFormatPropertiesKHR-pNext-06812", - "text": " The pNext chain of pVideoFormatInfo must include a VkVideoProfileListInfoKHR structure with profileCount greater than 0" + "text": "The pNext chain of pVideoFormatInfo must include a VkVideoProfileListInfoKHR structure with profileCount greater than 0", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceVideoFormatPropertiesKHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": "physicalDevice must be a valid VkPhysicalDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceVideoFormatPropertiesKHR-pVideoFormatInfo-parameter", - "text": " pVideoFormatInfo must be a valid pointer to a valid VkPhysicalDeviceVideoFormatInfoKHR structure" + "text": "pVideoFormatInfo must be a valid pointer to a valid VkPhysicalDeviceVideoFormatInfoKHR structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceVideoFormatPropertiesKHR-pVideoFormatPropertyCount-parameter", - "text": " pVideoFormatPropertyCount must be a valid pointer to a uint32_t value" + "text": "pVideoFormatPropertyCount must be a valid pointer to a uint32_t value", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceVideoFormatPropertiesKHR-pVideoFormatProperties-parameter", - "text": " If the value referenced by pVideoFormatPropertyCount is not 0, and pVideoFormatProperties is not NULL, pVideoFormatProperties must be a valid pointer to an array of pVideoFormatPropertyCount VkVideoFormatPropertiesKHR structures" + "text": "If the value referenced by pVideoFormatPropertyCount is not 0, and pVideoFormatProperties is not NULL, pVideoFormatProperties must be a valid pointer to an array of pVideoFormatPropertyCount VkVideoFormatPropertiesKHR structures", + "page": "vkspec" } ] }, @@ -69378,23 +89529,28 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceVideoFormatInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkPhysicalDeviceVideoFormatInfoKHR-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkVideoProfileListInfoKHR" + "text": "pNext must be NULL or a pointer to a valid instance of VkVideoProfileListInfoKHR", + "page": "vkspec" }, { "vuid": "VUID-VkPhysicalDeviceVideoFormatInfoKHR-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" }, { "vuid": "VUID-VkPhysicalDeviceVideoFormatInfoKHR-imageUsage-parameter", - "text": " imageUsage must be a valid combination of VkImageUsageFlagBits values" + "text": "imageUsage must be a valid combination of VkImageUsageFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkPhysicalDeviceVideoFormatInfoKHR-imageUsage-requiredbitmask", - "text": " imageUsage must not be 0" + "text": "imageUsage must not be 0", + "page": "vkspec" } ] }, @@ -69402,11 +89558,13 @@ "core": [ { "vuid": "VUID-VkVideoFormatPropertiesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkVideoFormatPropertiesKHR-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" } ] }, @@ -69414,19 +89572,23 @@ "core": [ { "vuid": "VUID-vkCreateVideoSessionKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkCreateVideoSessionKHR-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkVideoSessionCreateInfoKHR structure" + "text": "pCreateInfo must be a valid pointer to a valid VkVideoSessionCreateInfoKHR structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateVideoSessionKHR-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateVideoSessionKHR-pVideoSession-parameter", - "text": " pVideoSession must be a valid pointer to a VkVideoSessionKHR handle" + "text": "pVideoSession must be a valid pointer to a VkVideoSessionKHR handle", + "page": "vkspec" } ] }, @@ -69434,83 +89596,103 @@ "core": [ { "vuid": "VUID-VkVideoSessionCreateInfoKHR-protectedMemory-07189", - "text": " If the protectedMemory feature is not enabled or if VkVideoCapabilitiesKHR::flags does not include VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile specified by pVideoProfile, then flags must not include VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR" + "text": "If the protectedMemory feature is not enabled or if VkVideoCapabilitiesKHR::flags does not include VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile specified by pVideoProfile, then flags must not include VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkVideoSessionCreateInfoKHR-pVideoProfile-04845", - "text": " pVideoProfile must be a supported video profile" + "text": "pVideoProfile must be a supported video profile", + "page": "vkspec" }, { "vuid": "VUID-VkVideoSessionCreateInfoKHR-maxDpbSlots-04847", - "text": " maxDpbSlots must be less than or equal to VkVideoCapabilitiesKHR::maxDpbSlots, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile specified by pVideoProfile" + "text": "maxDpbSlots must be less than or equal to VkVideoCapabilitiesKHR::maxDpbSlots, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile specified by pVideoProfile", + "page": "vkspec" }, { "vuid": "VUID-VkVideoSessionCreateInfoKHR-maxActiveReferencePictures-04849", - "text": " maxActiveReferencePictures must be less than or equal to VkVideoCapabilitiesKHR::maxActiveReferencePictures, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile specified by pVideoProfile" + "text": "maxActiveReferencePictures must be less than or equal to VkVideoCapabilitiesKHR::maxActiveReferencePictures, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile specified by pVideoProfile", + "page": "vkspec" }, { "vuid": "VUID-VkVideoSessionCreateInfoKHR-maxDpbSlots-04850", - "text": " If either maxDpbSlots or maxActiveReferencePictures is 0, then both must be 0" + "text": "If either maxDpbSlots or maxActiveReferencePictures is 0, then both must be 0", + "page": "vkspec" }, { "vuid": "VUID-VkVideoSessionCreateInfoKHR-maxCodedExtent-04851", - "text": " maxCodedExtent must be between VkVideoCapabilitiesKHR::minCodedExtent and VkVideoCapabilitiesKHR::maxCodedExtent, inclusive, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile specified by pVideoProfile" + "text": "maxCodedExtent must be between VkVideoCapabilitiesKHR::minCodedExtent and VkVideoCapabilitiesKHR::maxCodedExtent, inclusive, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile specified by pVideoProfile", + "page": "vkspec" }, { "vuid": "VUID-VkVideoSessionCreateInfoKHR-referencePictureFormat-04852", - "text": " If pVideoProfile->videoCodecOperation specifies a decode operation and maxActiveReferencePictures is greater than 0, then referencePictureFormat must be one of the supported decode DPB formats, as returned by vkGetPhysicalDeviceVideoFormatPropertiesKHR in VkVideoFormatPropertiesKHR::format when called with the imageUsage member of its pVideoFormatInfo parameter containing VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR, and with a VkVideoProfileListInfoKHR structure specified in the pNext chain of its pVideoFormatInfo parameter whose pProfiles member contains an element matching pVideoProfile" + "text": "If pVideoProfile->videoCodecOperation specifies a decode operation and maxActiveReferencePictures is greater than 0, then referencePictureFormat must be one of the supported decode DPB formats, as returned by vkGetPhysicalDeviceVideoFormatPropertiesKHR in VkVideoFormatPropertiesKHR::format when called with the imageUsage member of its pVideoFormatInfo parameter containing VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR, and with a VkVideoProfileListInfoKHR structure specified in the pNext chain of its pVideoFormatInfo parameter whose pProfiles member contains an element matching pVideoProfile", + "page": "vkspec" }, { "vuid": "VUID-VkVideoSessionCreateInfoKHR-referencePictureFormat-06814", - "text": " If pVideoProfile->videoCodecOperation specifies an encode operation and maxActiveReferencePictures is greater than 0, then referencePictureFormat must be one of the supported decode DPB formats, as returned by then referencePictureFormat must be one of the supported encode DPB formats, as returned by vkGetPhysicalDeviceVideoFormatPropertiesKHR in VkVideoFormatPropertiesKHR::format when called with the imageUsage member of its pVideoFormatInfo parameter containing VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR, and with a VkVideoProfileListInfoKHR structure specified in the pNext chain of its pVideoFormatInfo parameter whose pProfiles member contains an element matching pVideoProfile" + "text": "If pVideoProfile->videoCodecOperation specifies an encode operation and maxActiveReferencePictures is greater than 0, then referencePictureFormat must be one of the supported decode DPB formats, as returned by then referencePictureFormat must be one of the supported encode DPB formats, as returned by vkGetPhysicalDeviceVideoFormatPropertiesKHR in VkVideoFormatPropertiesKHR::format when called with the imageUsage member of its pVideoFormatInfo parameter containing VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR, and with a VkVideoProfileListInfoKHR structure specified in the pNext chain of its pVideoFormatInfo parameter whose pProfiles member contains an element matching pVideoProfile", + "page": "vkspec" }, { "vuid": "VUID-VkVideoSessionCreateInfoKHR-pictureFormat-04853", - "text": " If pVideoProfile->videoCodecOperation specifies a decode operation, then pictureFormat must be one of the supported decode output formats, as returned by vkGetPhysicalDeviceVideoFormatPropertiesKHR in VkVideoFormatPropertiesKHR::format when called with the imageUsage member of its pVideoFormatInfo parameter containing VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR, and with a VkVideoProfileListInfoKHR structure specified in the pNext chain of its pVideoFormatInfo parameter whose pProfiles member contains an element matching pVideoProfile" + "text": "If pVideoProfile->videoCodecOperation specifies a decode operation, then pictureFormat must be one of the supported decode output formats, as returned by vkGetPhysicalDeviceVideoFormatPropertiesKHR in VkVideoFormatPropertiesKHR::format when called with the imageUsage member of its pVideoFormatInfo parameter containing VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR, and with a VkVideoProfileListInfoKHR structure specified in the pNext chain of its pVideoFormatInfo parameter whose pProfiles member contains an element matching pVideoProfile", + "page": "vkspec" }, { "vuid": "VUID-VkVideoSessionCreateInfoKHR-pictureFormat-04854", - "text": " If pVideoProfile->videoCodecOperation specifies an encode operation, then pictureFormat must be one of the supported encode input formats, as returned by vkGetPhysicalDeviceVideoFormatPropertiesKHR in VkVideoFormatPropertiesKHR::format when called with the imageUsage member of its pVideoFormatInfo parameter containing VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR, and with a VkVideoProfileListInfoKHR structure specified in the pNext chain of its pVideoFormatInfo parameter whose pProfiles member contains an element matching pVideoProfile" + "text": "If pVideoProfile->videoCodecOperation specifies an encode operation, then pictureFormat must be one of the supported encode input formats, as returned by vkGetPhysicalDeviceVideoFormatPropertiesKHR in VkVideoFormatPropertiesKHR::format when called with the imageUsage member of its pVideoFormatInfo parameter containing VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR, and with a VkVideoProfileListInfoKHR structure specified in the pNext chain of its pVideoFormatInfo parameter whose pProfiles member contains an element matching pVideoProfile", + "page": "vkspec" }, { "vuid": "VUID-VkVideoSessionCreateInfoKHR-pStdHeaderVersion-07190", - "text": " pStdHeaderVersion->extensionName must match VkVideoCapabilitiesKHR::stdHeaderVersion.extensionName, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile specified by pVideoProfile" + "text": "pStdHeaderVersion->extensionName must match VkVideoCapabilitiesKHR::stdHeaderVersion.extensionName, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile specified by pVideoProfile", + "page": "vkspec" }, { "vuid": "VUID-VkVideoSessionCreateInfoKHR-pStdHeaderVersion-07191", - "text": " pStdHeaderVersion->specVersion must be less than or equal to VkVideoCapabilitiesKHR::stdHeaderVersion.specVersion, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile specified by pVideoProfile" + "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": "vkspec" }, { "vuid": "VUID-VkVideoSessionCreateInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkVideoSessionCreateInfoKHR-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 VkVideoEncodeH264SessionCreateInfoEXT or VkVideoEncodeH265SessionCreateInfoEXT" + "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 VkVideoEncodeH264SessionCreateInfoEXT or VkVideoEncodeH265SessionCreateInfoEXT", + "page": "vkspec" }, { "vuid": "VUID-VkVideoSessionCreateInfoKHR-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" }, { "vuid": "VUID-VkVideoSessionCreateInfoKHR-flags-parameter", - "text": " flags must be a valid combination of VkVideoSessionCreateFlagBitsKHR values" + "text": "flags must be a valid combination of VkVideoSessionCreateFlagBitsKHR values", + "page": "vkspec" }, { "vuid": "VUID-VkVideoSessionCreateInfoKHR-pVideoProfile-parameter", - "text": " pVideoProfile must be a valid pointer to a valid VkVideoProfileInfoKHR structure" + "text": "pVideoProfile must be a valid pointer to a valid VkVideoProfileInfoKHR structure", + "page": "vkspec" }, { "vuid": "VUID-VkVideoSessionCreateInfoKHR-pictureFormat-parameter", - "text": " pictureFormat must be a valid VkFormat value" + "text": "pictureFormat must be a valid VkFormat value", + "page": "vkspec" }, { "vuid": "VUID-VkVideoSessionCreateInfoKHR-referencePictureFormat-parameter", - "text": " referencePictureFormat must be a valid VkFormat value" + "text": "referencePictureFormat must be a valid VkFormat value", + "page": "vkspec" }, { "vuid": "VUID-VkVideoSessionCreateInfoKHR-pStdHeaderVersion-parameter", - "text": " pStdHeaderVersion must be a valid pointer to a valid VkExtensionProperties structure" + "text": "pStdHeaderVersion must be a valid pointer to a valid VkExtensionProperties structure", + "page": "vkspec" } ] }, @@ -69518,31 +89700,38 @@ "core": [ { "vuid": "VUID-vkDestroyVideoSessionKHR-videoSession-07192", - "text": " All submitted commands that refer to videoSession must have completed execution" + "text": "All submitted commands that refer to videoSession must have completed execution", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyVideoSessionKHR-videoSession-07193", - "text": " If VkAllocationCallbacks were provided when videoSession was created, a compatible set of callbacks must be provided here" + "text": "If VkAllocationCallbacks were provided when videoSession was created, a compatible set of callbacks must be provided here", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyVideoSessionKHR-videoSession-07194", - "text": " If no VkAllocationCallbacks were provided when videoSession was created, pAllocator must be NULL" + "text": "If no VkAllocationCallbacks were provided when videoSession was created, pAllocator must be NULL", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyVideoSessionKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyVideoSessionKHR-videoSession-parameter", - "text": " If videoSession is not VK_NULL_HANDLE, videoSession must be a valid VkVideoSessionKHR handle" + "text": "If videoSession is not VK_NULL_HANDLE, videoSession must be a valid VkVideoSessionKHR handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyVideoSessionKHR-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyVideoSessionKHR-videoSession-parent", - "text": " If videoSession is a valid handle, it must have been created, allocated, or retrieved from device" + "text": "If videoSession is a valid handle, it must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -69550,23 +89739,28 @@ "core": [ { "vuid": "VUID-vkGetVideoSessionMemoryRequirementsKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetVideoSessionMemoryRequirementsKHR-videoSession-parameter", - "text": " videoSession must be a valid VkVideoSessionKHR handle" + "text": "videoSession must be a valid VkVideoSessionKHR handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetVideoSessionMemoryRequirementsKHR-pMemoryRequirementsCount-parameter", - "text": " pMemoryRequirementsCount must be a valid pointer to a uint32_t value" + "text": "pMemoryRequirementsCount must be a valid pointer to a uint32_t value", + "page": "vkspec" }, { "vuid": "VUID-vkGetVideoSessionMemoryRequirementsKHR-pMemoryRequirements-parameter", - "text": " If the value referenced by pMemoryRequirementsCount is not 0, and pMemoryRequirements is not NULL, pMemoryRequirements must be a valid pointer to an array of pMemoryRequirementsCount VkVideoSessionMemoryRequirementsKHR structures" + "text": "If the value referenced by pMemoryRequirementsCount is not 0, and pMemoryRequirements is not NULL, pMemoryRequirements must be a valid pointer to an array of pMemoryRequirementsCount VkVideoSessionMemoryRequirementsKHR structures", + "page": "vkspec" }, { "vuid": "VUID-vkGetVideoSessionMemoryRequirementsKHR-videoSession-parent", - "text": " videoSession must have been created, allocated, or retrieved from device" + "text": "videoSession must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -69574,11 +89768,13 @@ "core": [ { "vuid": "VUID-VkVideoSessionMemoryRequirementsKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkVideoSessionMemoryRequirementsKHR-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" } ] }, @@ -69586,47 +89782,58 @@ "core": [ { "vuid": "VUID-vkBindVideoSessionMemoryKHR-videoSession-07195", - "text": " The memory binding of videoSession identified by the memoryBindIndex member of any element of pBindSessionMemoryInfos must not already be backed by a memory object" + "text": "The memory binding of videoSession identified by the memoryBindIndex member of any element of pBindSessionMemoryInfos must not already be backed by a memory object", + "page": "vkspec" }, { "vuid": "VUID-vkBindVideoSessionMemoryKHR-memoryBindIndex-07196", - "text": " The memoryBindIndex member of each element of pBindSessionMemoryInfos must be unique within pBindSessionMemoryInfos" + "text": "The memoryBindIndex member of each element of pBindSessionMemoryInfos must be unique within pBindSessionMemoryInfos", + "page": "vkspec" }, { "vuid": "VUID-vkBindVideoSessionMemoryKHR-pBindSessionMemoryInfos-07197", - "text": " Each element of pBindSessionMemoryInfos must have a corresponding VkMemoryRequirements structure" + "text": "Each element of pBindSessionMemoryInfos must have a corresponding VkMemoryRequirements structure", + "page": "vkspec" }, { "vuid": "VUID-vkBindVideoSessionMemoryKHR-pBindSessionMemoryInfos-07198", - "text": " If an element of pBindSessionMemoryInfos has a corresponding VkMemoryRequirements structure, then the memory member of that element of pBindSessionMemoryInfos must have been allocated using one of the memory types allowed in the memoryTypeBits member of the corresponding VkMemoryRequirements structure" + "text": "If an element of pBindSessionMemoryInfos has a corresponding VkMemoryRequirements structure, then the memory member of that element of pBindSessionMemoryInfos must have been allocated using one of the memory types allowed in the memoryTypeBits member of the corresponding VkMemoryRequirements structure", + "page": "vkspec" }, { "vuid": "VUID-vkBindVideoSessionMemoryKHR-pBindSessionMemoryInfos-07199", - "text": " If an element of pBindSessionMemoryInfos has a corresponding VkMemoryRequirements structure, then the memoryOffset member of that element of pBindSessionMemoryInfos must be an integer multiple of the alignment member of the corresponding VkMemoryRequirements structure" + "text": "If an element of pBindSessionMemoryInfos has a corresponding VkMemoryRequirements structure, then the memoryOffset member of that element of pBindSessionMemoryInfos must be an integer multiple of the alignment member of the corresponding VkMemoryRequirements structure", + "page": "vkspec" }, { "vuid": "VUID-vkBindVideoSessionMemoryKHR-pBindSessionMemoryInfos-07200", - "text": " If an element of pBindSessionMemoryInfos has a corresponding VkMemoryRequirements structure, then the memorySize member of that element of pBindSessionMemoryInfos must equal the size member of the corresponding VkMemoryRequirements structure" + "text": "If an element of pBindSessionMemoryInfos has a corresponding VkMemoryRequirements structure, then the memorySize member of that element of pBindSessionMemoryInfos must equal the size member of the corresponding VkMemoryRequirements structure", + "page": "vkspec" }, { "vuid": "VUID-vkBindVideoSessionMemoryKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkBindVideoSessionMemoryKHR-videoSession-parameter", - "text": " videoSession must be a valid VkVideoSessionKHR handle" + "text": "videoSession must be a valid VkVideoSessionKHR handle", + "page": "vkspec" }, { "vuid": "VUID-vkBindVideoSessionMemoryKHR-pBindSessionMemoryInfos-parameter", - "text": " pBindSessionMemoryInfos must be a valid pointer to an array of bindSessionMemoryInfoCount valid VkBindVideoSessionMemoryInfoKHR structures" + "text": "pBindSessionMemoryInfos must be a valid pointer to an array of bindSessionMemoryInfoCount valid VkBindVideoSessionMemoryInfoKHR structures", + "page": "vkspec" }, { "vuid": "VUID-vkBindVideoSessionMemoryKHR-bindSessionMemoryInfoCount-arraylength", - "text": " bindSessionMemoryInfoCount must be greater than 0" + "text": "bindSessionMemoryInfoCount must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-vkBindVideoSessionMemoryKHR-videoSession-parent", - "text": " videoSession must have been created, allocated, or retrieved from device" + "text": "videoSession must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -69634,23 +89841,28 @@ "core": [ { "vuid": "VUID-VkBindVideoSessionMemoryInfoKHR-memoryOffset-07201", - "text": " memoryOffset must be less than the size of memory" + "text": "memoryOffset must be less than the size of memory", + "page": "vkspec" }, { "vuid": "VUID-VkBindVideoSessionMemoryInfoKHR-memorySize-07202", - "text": " memorySize must be less than or equal to the size of memory minus memoryOffset" + "text": "memorySize must be less than or equal to the size of memory minus memoryOffset", + "page": "vkspec" }, { "vuid": "VUID-VkBindVideoSessionMemoryInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkBindVideoSessionMemoryInfoKHR-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkBindVideoSessionMemoryInfoKHR-memory-parameter", - "text": " memory must be a valid VkDeviceMemory handle" + "text": "memory must be a valid VkDeviceMemory handle", + "page": "vkspec" } ] }, @@ -69658,19 +89870,23 @@ "core": [ { "vuid": "VUID-vkCreateVideoSessionParametersKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkCreateVideoSessionParametersKHR-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkVideoSessionParametersCreateInfoKHR structure" + "text": "pCreateInfo must be a valid pointer to a valid VkVideoSessionParametersCreateInfoKHR structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateVideoSessionParametersKHR-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateVideoSessionParametersKHR-pVideoSessionParameters-parameter", - "text": " pVideoSessionParameters must be a valid pointer to a VkVideoSessionParametersKHR handle" + "text": "pVideoSessionParameters must be a valid pointer to a VkVideoSessionParametersKHR handle", + "page": "vkspec" } ] }, @@ -69678,75 +89894,93 @@ "core": [ { "vuid": "VUID-VkVideoSessionParametersCreateInfoKHR-videoSessionParametersTemplate-04855", - "text": " If videoSessionParametersTemplate represents a valid handle, it must have been created against videoSession" + "text": "If videoSessionParametersTemplate represents a valid handle, it must have been created against videoSession", + "page": "vkspec" }, { "vuid": "VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-07203", - "text": " If videoSession was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR, then the pNext chain must include a VkVideoDecodeH264SessionParametersCreateInfoKHR structure" + "text": "If videoSession was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR, then the pNext chain must include a VkVideoDecodeH264SessionParametersCreateInfoKHR structure", + "page": "vkspec" }, { "vuid": "VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-07204", - "text": " If videoSession was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR, then the number of elements of spsAddList must be less than or equal to the maxStdSPSCount specified in the VkVideoDecodeH264SessionParametersCreateInfoKHR structure included in the pNext chain" + "text": "If videoSession was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR, then the number of elements of spsAddList must be less than or equal to the maxStdSPSCount specified in the VkVideoDecodeH264SessionParametersCreateInfoKHR structure included in the pNext chain", + "page": "vkspec" }, { "vuid": "VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-07205", - "text": " If videoSession was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR, then the number of elements of ppsAddList must be less than or equal to the maxStdPPSCount specified in the VkVideoDecodeH264SessionParametersCreateInfoKHR structure included in the pNext chain" + "text": "If videoSession was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR, then the number of elements of ppsAddList must be less than or equal to the maxStdPPSCount specified in the VkVideoDecodeH264SessionParametersCreateInfoKHR structure included in the pNext chain", + "page": "vkspec" }, { "vuid": "VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-07206", - "text": " If videoSession was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR, then the pNext chain must include a VkVideoDecodeH265SessionParametersCreateInfoKHR structure" + "text": "If videoSession was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR, then the pNext chain must include a VkVideoDecodeH265SessionParametersCreateInfoKHR structure", + "page": "vkspec" }, { "vuid": "VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-07207", - "text": " If videoSession was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR, then the number of elements of vpsAddList must be less than or equal to the maxStdVPSCount specified in the VkVideoDecodeH265SessionParametersCreateInfoKHR structure included in the pNext chain" + "text": "If videoSession was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR, then the number of elements of vpsAddList must be less than or equal to the maxStdVPSCount specified in the VkVideoDecodeH265SessionParametersCreateInfoKHR structure included in the pNext chain", + "page": "vkspec" }, { "vuid": "VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-07208", - "text": " If videoSession was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR, then the number of elements of spsAddList must be less than or equal to the maxStdSPSCount specified in the VkVideoDecodeH265SessionParametersCreateInfoKHR structure included in the pNext chain" + "text": "If videoSession was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR, then the number of elements of spsAddList must be less than or equal to the maxStdSPSCount specified in the VkVideoDecodeH265SessionParametersCreateInfoKHR structure included in the pNext chain", + "page": "vkspec" }, { "vuid": "VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-07209", - "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" + "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": "vkspec" }, { "vuid": "VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-07210", - "text": " If videoSession was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT, then the pNext chain must include a VkVideoEncodeH264SessionParametersCreateInfoEXT structure" + "text": "If videoSession was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT, then the pNext chain must include a VkVideoEncodeH264SessionParametersCreateInfoEXT structure", + "page": "vkspec" }, { "vuid": "VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-07211", - "text": " If videoSession was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_EXT, then the pNext chain must include a VkVideoEncodeH265SessionParametersCreateInfoEXT structure" + "text": "If videoSession was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_EXT, then the pNext chain must include a VkVideoEncodeH265SessionParametersCreateInfoEXT structure", + "page": "vkspec" }, { "vuid": "VUID-VkVideoSessionParametersCreateInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkVideoSessionParametersCreateInfoKHR-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 VkVideoDecodeH264SessionParametersCreateInfoKHR, VkVideoDecodeH265SessionParametersCreateInfoKHR, VkVideoEncodeH264SessionParametersCreateInfoEXT, VkVideoEncodeH265SessionParametersCreateInfoEXT, or VkVideoEncodeQualityLevelInfoKHR" + "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 VkVideoDecodeH264SessionParametersCreateInfoKHR, VkVideoDecodeH265SessionParametersCreateInfoKHR, VkVideoEncodeH264SessionParametersCreateInfoEXT, VkVideoEncodeH265SessionParametersCreateInfoEXT, or VkVideoEncodeQualityLevelInfoKHR", + "page": "vkspec" }, { "vuid": "VUID-VkVideoSessionParametersCreateInfoKHR-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" }, { "vuid": "VUID-VkVideoSessionParametersCreateInfoKHR-flags-zerobitmask", - "text": " flags must be 0" + "text": "flags must be 0", + "page": "vkspec" }, { "vuid": "VUID-VkVideoSessionParametersCreateInfoKHR-videoSessionParametersTemplate-parameter", - "text": " If videoSessionParametersTemplate is not VK_NULL_HANDLE, videoSessionParametersTemplate must be a valid VkVideoSessionParametersKHR handle" + "text": "If videoSessionParametersTemplate is not VK_NULL_HANDLE, videoSessionParametersTemplate must be a valid VkVideoSessionParametersKHR handle", + "page": "vkspec" }, { "vuid": "VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-parameter", - "text": " videoSession must be a valid VkVideoSessionKHR handle" + "text": "videoSession must be a valid VkVideoSessionKHR handle", + "page": "vkspec" }, { "vuid": "VUID-VkVideoSessionParametersCreateInfoKHR-videoSessionParametersTemplate-parent", - "text": " If videoSessionParametersTemplate is a valid handle, it must have been created, allocated, or retrieved from videoSession" + "text": "If videoSessionParametersTemplate is a valid handle, it must have been created, allocated, or retrieved from videoSession", + "page": "vkspec" }, { "vuid": "VUID-VkVideoSessionParametersCreateInfoKHR-commonparent", - "text": " Both of videoSession, and videoSessionParametersTemplate that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of videoSession, and videoSessionParametersTemplate that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -69754,27 +89988,38 @@ "core": [ { "vuid": "VUID-vkDestroyVideoSessionParametersKHR-videoSessionParameters-07212", - "text": " All submitted commands that refer to videoSessionParameters must have completed execution" + "text": "All submitted commands that refer to videoSessionParameters must have completed execution", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyVideoSessionParametersKHR-videoSessionParameters-07213", - "text": " If VkAllocationCallbacks were provided when videoSessionParameters was created, a compatible set of callbacks must be provided here" + "text": "If VkAllocationCallbacks were provided when videoSessionParameters was created, a compatible set of callbacks must be provided here", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyVideoSessionParametersKHR-videoSessionParameters-07214", - "text": " If no VkAllocationCallbacks were provided when videoSessionParameters was created, pAllocator must be NULL" + "text": "If no VkAllocationCallbacks were provided when videoSessionParameters was created, pAllocator must be NULL", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyVideoSessionParametersKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyVideoSessionParametersKHR-videoSessionParameters-parameter", - "text": " If videoSessionParameters is not VK_NULL_HANDLE, videoSessionParameters must be a valid VkVideoSessionParametersKHR handle" + "text": "If videoSessionParameters is not VK_NULL_HANDLE, videoSessionParameters must be a valid VkVideoSessionParametersKHR handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyVideoSessionParametersKHR-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" + }, + { + "vuid": "VUID-vkDestroyVideoSessionParametersKHR-videoSessionParameters-parent", + "text": "If videoSessionParameters is a valid handle, it must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -69782,79 +90027,103 @@ "core": [ { "vuid": "VUID-vkUpdateVideoSessionParametersKHR-pUpdateInfo-07215", - "text": " pUpdateInfo->updateSequenceCount must equal the current update sequence counter of videoSessionParameters plus one" + "text": "pUpdateInfo->updateSequenceCount must equal the current update sequence counter of videoSessionParameters plus one", + "page": "vkspec" }, { "vuid": "VUID-vkUpdateVideoSessionParametersKHR-videoSessionParameters-07216", - "text": " If videoSessionParameters was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR and the pNext chain of pUpdateInfo includes a VkVideoDecodeH264SessionParametersAddInfoKHR structure, then videoSessionParameters must not already contain a StdVideoH264SequenceParameterSet entry with seq_parameter_set_id matching any of the elements of VkVideoDecodeH264SessionParametersAddInfoKHR::pStdSPSs" + "text": "If videoSessionParameters was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR and the pNext chain of pUpdateInfo includes a VkVideoDecodeH264SessionParametersAddInfoKHR structure, then videoSessionParameters must not already contain a StdVideoH264SequenceParameterSet entry with seq_parameter_set_id matching any of the elements of VkVideoDecodeH264SessionParametersAddInfoKHR::pStdSPSs", + "page": "vkspec" }, { "vuid": "VUID-vkUpdateVideoSessionParametersKHR-videoSessionParameters-07217", - "text": " If videoSessionParameters was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR, then the number of StdVideoH264SequenceParameterSet entries already stored in it plus the value of the stdSPSCount member of the VkVideoDecodeH264SessionParametersAddInfoKHR structure included in the pUpdateInfo->pNext chain must be less than or equal to the VkVideoDecodeH264SessionParametersCreateInfoKHR::maxStdSPSCount videoSessionParameters was created with" + "text": "If videoSessionParameters was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR, then the number of StdVideoH264SequenceParameterSet entries already stored in it plus the value of the stdSPSCount member of the VkVideoDecodeH264SessionParametersAddInfoKHR structure included in the pUpdateInfo->pNext chain must be less than or equal to the VkVideoDecodeH264SessionParametersCreateInfoKHR::maxStdSPSCount videoSessionParameters was created with", + "page": "vkspec" }, { "vuid": "VUID-vkUpdateVideoSessionParametersKHR-videoSessionParameters-07218", - "text": " If videoSessionParameters was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR and the pNext chain of pUpdateInfo includes a VkVideoDecodeH264SessionParametersAddInfoKHR structure, then videoSessionParameters must not already contain a StdVideoH264PictureParameterSet entry with both seq_parameter_set_id and pic_parameter_set_id matching any of the elements of VkVideoDecodeH264SessionParametersAddInfoKHR::pStdPPSs" + "text": "If videoSessionParameters was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR and the pNext chain of pUpdateInfo includes a VkVideoDecodeH264SessionParametersAddInfoKHR structure, then videoSessionParameters must not already contain a StdVideoH264PictureParameterSet entry with both seq_parameter_set_id and pic_parameter_set_id matching any of the elements of VkVideoDecodeH264SessionParametersAddInfoKHR::pStdPPSs", + "page": "vkspec" }, { "vuid": "VUID-vkUpdateVideoSessionParametersKHR-videoSessionParameters-07219", - "text": " If videoSessionParameters was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR, then the number of StdVideoH264PictureParameterSet entries already stored in it plus the value of the stdPPSCount member of the VkVideoDecodeH264SessionParametersAddInfoKHR structure included in the pUpdateInfo->pNext chain must be less than or equal to the VkVideoDecodeH264SessionParametersCreateInfoKHR::maxStdPPSCount videoSessionParameters was created with" + "text": "If videoSessionParameters was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR, then the number of StdVideoH264PictureParameterSet entries already stored in it plus the value of the stdPPSCount member of the VkVideoDecodeH264SessionParametersAddInfoKHR structure included in the pUpdateInfo->pNext chain must be less than or equal to the VkVideoDecodeH264SessionParametersCreateInfoKHR::maxStdPPSCount videoSessionParameters was created with", + "page": "vkspec" }, { "vuid": "VUID-vkUpdateVideoSessionParametersKHR-videoSessionParameters-07220", - "text": " If videoSessionParameters was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR and the pNext chain of pUpdateInfo includes a VkVideoDecodeH265SessionParametersAddInfoKHR structure, then videoSessionParameters must not already contain a StdVideoH265VideoParameterSet entry with vps_video_parameter_set_id matching any of the elements of VkVideoDecodeH265SessionParametersAddInfoKHR::pStdVPSs" + "text": "If videoSessionParameters was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR and the pNext chain of pUpdateInfo includes a VkVideoDecodeH265SessionParametersAddInfoKHR structure, then videoSessionParameters must not already contain a StdVideoH265VideoParameterSet entry with vps_video_parameter_set_id matching any of the elements of VkVideoDecodeH265SessionParametersAddInfoKHR::pStdVPSs", + "page": "vkspec" }, { "vuid": "VUID-vkUpdateVideoSessionParametersKHR-videoSessionParameters-07221", - "text": " If videoSessionParameters was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR, then the number of StdVideoH265VideoParameterSet entries already stored in it plus the value of the stdVPSCount member of the VkVideoDecodeH265SessionParametersAddInfoKHR structure included in the pUpdateInfo->pNext chain must be less than or equal to the VkVideoDecodeH265SessionParametersCreateInfoKHR::maxStdVPSCount videoSessionParameters was created with" + "text": "If videoSessionParameters was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR, then the number of StdVideoH265VideoParameterSet entries already stored in it plus the value of the stdVPSCount member of the VkVideoDecodeH265SessionParametersAddInfoKHR structure included in the pUpdateInfo->pNext chain must be less than or equal to the VkVideoDecodeH265SessionParametersCreateInfoKHR::maxStdVPSCount videoSessionParameters was created with", + "page": "vkspec" }, { "vuid": "VUID-vkUpdateVideoSessionParametersKHR-videoSessionParameters-07222", - "text": " If videoSessionParameters was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR and the pNext chain of pUpdateInfo includes a VkVideoDecodeH265SessionParametersAddInfoKHR structure, then videoSessionParameters must not already contain a StdVideoH265SequenceParameterSet entry with both sps_video_parameter_set_id and sps_seq_parameter_set_id matching any of the elements of VkVideoDecodeH265SessionParametersAddInfoKHR::pStdSPSs" + "text": "If videoSessionParameters was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR and the pNext chain of pUpdateInfo includes a VkVideoDecodeH265SessionParametersAddInfoKHR structure, then videoSessionParameters must not already contain a StdVideoH265SequenceParameterSet entry with both sps_video_parameter_set_id and sps_seq_parameter_set_id matching any of the elements of VkVideoDecodeH265SessionParametersAddInfoKHR::pStdSPSs", + "page": "vkspec" }, { "vuid": "VUID-vkUpdateVideoSessionParametersKHR-videoSessionParameters-07223", - "text": " If videoSessionParameters was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR, then the number of StdVideoH265SequenceParameterSet entries already stored in it plus the value of the stdSPSCount member of the VkVideoDecodeH265SessionParametersAddInfoKHR structure included in the pUpdateInfo->pNext chain must be less than or equal to the VkVideoDecodeH265SessionParametersCreateInfoKHR::maxStdSPSCount videoSessionParameters was created with" + "text": "If videoSessionParameters was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR, then the number of StdVideoH265SequenceParameterSet entries already stored in it plus the value of the stdSPSCount member of the VkVideoDecodeH265SessionParametersAddInfoKHR structure included in the pUpdateInfo->pNext chain must be less than or equal to the VkVideoDecodeH265SessionParametersCreateInfoKHR::maxStdSPSCount videoSessionParameters was created with", + "page": "vkspec" }, { "vuid": "VUID-vkUpdateVideoSessionParametersKHR-videoSessionParameters-07224", - "text": " If videoSessionParameters was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR and the pNext chain of pUpdateInfo includes a VkVideoDecodeH265SessionParametersAddInfoKHR structure, then videoSessionParameters must not already contain a StdVideoH265PictureParameterSet entry with sps_video_parameter_set_id, pps_seq_parameter_set_id, and pps_pic_parameter_set_id all matching any of the elements of VkVideoDecodeH265SessionParametersAddInfoKHR::pStdPPSs" + "text": "If videoSessionParameters was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR and the pNext chain of pUpdateInfo includes a VkVideoDecodeH265SessionParametersAddInfoKHR structure, then videoSessionParameters must not already contain a StdVideoH265PictureParameterSet entry with sps_video_parameter_set_id, pps_seq_parameter_set_id, and pps_pic_parameter_set_id all matching any of the elements of VkVideoDecodeH265SessionParametersAddInfoKHR::pStdPPSs", + "page": "vkspec" }, { "vuid": "VUID-vkUpdateVideoSessionParametersKHR-videoSessionParameters-07225", - "text": " If videoSessionParameters was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR, then the number of StdVideoH265PictureParameterSet entries already stored in it plus the value of the stdPPSCount member of the VkVideoDecodeH265SessionParametersAddInfoKHR structure included in the pUpdateInfo->pNext chain must be less than or equal to the VkVideoDecodeH265SessionParametersCreateInfoKHR::maxStdPPSCount videoSessionParameters was created with" + "text": "If videoSessionParameters was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR, then the number of StdVideoH265PictureParameterSet entries already stored in it plus the value of the stdPPSCount member of the VkVideoDecodeH265SessionParametersAddInfoKHR structure included in the pUpdateInfo->pNext chain must be less than or equal to the VkVideoDecodeH265SessionParametersCreateInfoKHR::maxStdPPSCount videoSessionParameters was created with", + "page": "vkspec" }, { "vuid": "VUID-vkUpdateVideoSessionParametersKHR-videoSessionParameters-07226", - "text": " If videoSessionParameters was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT and the pNext chain of pUpdateInfo includes a VkVideoEncodeH264SessionParametersAddInfoEXT structure, then videoSessionParameters must not already contain a StdVideoH264SequenceParameterSet entry with seq_parameter_set_id matching any of the elements of VkVideoEncodeH264SessionParametersAddInfoEXT::pStdSPSs" + "text": "If videoSessionParameters was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT and the pNext chain of pUpdateInfo includes a VkVideoEncodeH264SessionParametersAddInfoEXT structure, then videoSessionParameters must not already contain a StdVideoH264SequenceParameterSet entry with seq_parameter_set_id matching any of the elements of VkVideoEncodeH264SessionParametersAddInfoEXT::pStdSPSs", + "page": "vkspec" }, { "vuid": "VUID-vkUpdateVideoSessionParametersKHR-videoSessionParameters-07227", - "text": " If videoSessionParameters was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT and the pNext chain of pUpdateInfo includes a VkVideoEncodeH264SessionParametersAddInfoEXT structure, then videoSessionParameters must not already contain a StdVideoH264PictureParameterSet entry with both seq_parameter_set_id and pic_parameter_set_id matching any of the elements of VkVideoEncodeH264SessionParametersAddInfoEXT::pStdPPSs" + "text": "If videoSessionParameters was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT and the pNext chain of pUpdateInfo includes a VkVideoEncodeH264SessionParametersAddInfoEXT structure, then videoSessionParameters must not already contain a StdVideoH264PictureParameterSet entry with both seq_parameter_set_id and pic_parameter_set_id matching any of the elements of VkVideoEncodeH264SessionParametersAddInfoEXT::pStdPPSs", + "page": "vkspec" }, { "vuid": "VUID-vkUpdateVideoSessionParametersKHR-videoSessionParameters-07228", - "text": " If videoSessionParameters was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_EXT and the pNext chain of pUpdateInfo includes a VkVideoEncodeH265SessionParametersAddInfoEXT structure, then videoSessionParameters must not already contain a StdVideoH265VideoParameterSet entry with vps_video_parameter_set_id matching any of the elements of VkVideoEncodeH265SessionParametersAddInfoEXT::pStdVPSs" + "text": "If videoSessionParameters was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_EXT and the pNext chain of pUpdateInfo includes a VkVideoEncodeH265SessionParametersAddInfoEXT structure, then videoSessionParameters must not already contain a StdVideoH265VideoParameterSet entry with vps_video_parameter_set_id matching any of the elements of VkVideoEncodeH265SessionParametersAddInfoEXT::pStdVPSs", + "page": "vkspec" }, { "vuid": "VUID-vkUpdateVideoSessionParametersKHR-videoSessionParameters-07229", - "text": " If videoSessionParameters was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_EXT and the pNext chain of pUpdateInfo includes a VkVideoEncodeH265SessionParametersAddInfoEXT structure, then videoSessionParameters must not already contain a StdVideoH265SequenceParameterSet entry with both sps_video_parameter_set_id and sps_seq_parameter_set_id matching any of the elements of VkVideoEncodeH265SessionParametersAddInfoEXT::pStdSPSs" + "text": "If videoSessionParameters was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_EXT and the pNext chain of pUpdateInfo includes a VkVideoEncodeH265SessionParametersAddInfoEXT structure, then videoSessionParameters must not already contain a StdVideoH265SequenceParameterSet entry with both sps_video_parameter_set_id and sps_seq_parameter_set_id matching any of the elements of VkVideoEncodeH265SessionParametersAddInfoEXT::pStdSPSs", + "page": "vkspec" }, { "vuid": "VUID-vkUpdateVideoSessionParametersKHR-videoSessionParameters-07230", - "text": " If videoSessionParameters was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_EXT and the pNext chain of pUpdateInfo includes a VkVideoEncodeH265SessionParametersAddInfoEXT structure, then videoSessionParameters must not already contain a StdVideoH265PictureParameterSet entry with sps_video_parameter_set_id, pps_seq_parameter_set_id, and pps_pic_parameter_set_id all matching any of the elements of VkVideoEncodeH265SessionParametersAddInfoEXT::pStdPPSs" + "text": "If videoSessionParameters was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_EXT and the pNext chain of pUpdateInfo includes a VkVideoEncodeH265SessionParametersAddInfoEXT structure, then videoSessionParameters must not already contain a StdVideoH265PictureParameterSet entry with sps_video_parameter_set_id, pps_seq_parameter_set_id, and pps_pic_parameter_set_id all matching any of the elements of VkVideoEncodeH265SessionParametersAddInfoEXT::pStdPPSs", + "page": "vkspec" }, { "vuid": "VUID-vkUpdateVideoSessionParametersKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkUpdateVideoSessionParametersKHR-videoSessionParameters-parameter", - "text": " videoSessionParameters must be a valid VkVideoSessionParametersKHR handle" + "text": "videoSessionParameters must be a valid VkVideoSessionParametersKHR handle", + "page": "vkspec" }, { "vuid": "VUID-vkUpdateVideoSessionParametersKHR-pUpdateInfo-parameter", - "text": " pUpdateInfo must be a valid pointer to a valid VkVideoSessionParametersUpdateInfoKHR structure" + "text": "pUpdateInfo must be a valid pointer to a valid VkVideoSessionParametersUpdateInfoKHR structure", + "page": "vkspec" + }, + { + "vuid": "VUID-vkUpdateVideoSessionParametersKHR-videoSessionParameters-parent", + "text": "videoSessionParameters must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -69862,15 +90131,18 @@ "core": [ { "vuid": "VUID-VkVideoSessionParametersUpdateInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkVideoSessionParametersUpdateInfoKHR-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 VkVideoDecodeH264SessionParametersAddInfoKHR, VkVideoDecodeH265SessionParametersAddInfoKHR, VkVideoEncodeH264SessionParametersAddInfoEXT, or VkVideoEncodeH265SessionParametersAddInfoEXT" + "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 VkVideoDecodeH264SessionParametersAddInfoKHR, VkVideoDecodeH265SessionParametersAddInfoKHR, VkVideoEncodeH264SessionParametersAddInfoEXT, or VkVideoEncodeH265SessionParametersAddInfoEXT", + "page": "vkspec" }, { "vuid": "VUID-VkVideoSessionParametersUpdateInfoKHR-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" } ] }, @@ -69878,63 +90150,78 @@ "core": [ { "vuid": "VUID-vkCmdBeginVideoCodingKHR-commandBuffer-07231", - "text": " The VkCommandPool that commandBuffer was allocated from must support the video codec operation pBeginInfo->videoSession was created with, as returned by vkGetPhysicalDeviceQueueFamilyProperties2 in VkQueueFamilyVideoPropertiesKHR::videoCodecOperations" + "text": "The VkCommandPool that commandBuffer was allocated from must support the video codec operation pBeginInfo->videoSession was created with, as returned by vkGetPhysicalDeviceQueueFamilyProperties2 in VkQueueFamilyVideoPropertiesKHR::videoCodecOperations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginVideoCodingKHR-None-07232", - "text": " There must be no active queries" + "text": "There must be no active queries", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginVideoCodingKHR-commandBuffer-07233", - "text": " If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, then pBeginInfo->videoSession must not have been created with VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR" + "text": "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, then pBeginInfo->videoSession must not have been created with VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginVideoCodingKHR-commandBuffer-07234", - "text": " If commandBuffer is a protected command buffer and protectedNoFault is not supported, then pBeginInfo->videoSession must have been created with VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR" + "text": "If commandBuffer is a protected command buffer and protectedNoFault is not supported, then pBeginInfo->videoSession must have been created with VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginVideoCodingKHR-commandBuffer-07235", - "text": " If commandBuffer is an unprotected command buffer, protectedNoFault is not supported, and the pPictureResource member of any element of pBeginInfo->pReferenceSlots is not NULL, then pPictureResource->imageViewBinding for that element must not specify an image view created from a protected image" + "text": "If commandBuffer is an unprotected command buffer, protectedNoFault is not supported, and the pPictureResource member of any element of pBeginInfo->pReferenceSlots is not NULL, then pPictureResource->imageViewBinding for that element must not specify an image view created from a protected image", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginVideoCodingKHR-commandBuffer-07236", - "text": " If commandBuffer is a protected command buffer protectedNoFault is not supported, and the pPictureResource member of any element of pBeginInfo->pReferenceSlots is not NULL, then pPictureResource->imageViewBinding for that element must specify an image view created from a protected image" + "text": "If commandBuffer is a protected command buffer protectedNoFault is not supported, and the pPictureResource member of any element of pBeginInfo->pReferenceSlots is not NULL, then pPictureResource->imageViewBinding for that element must specify an image view created from a protected image", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginVideoCodingKHR-slotIndex-07239", - "text": " If the slotIndex member of any element of pBeginInfo->pReferenceSlots is not negative, then it must specify the index of a DPB slot that is in the active state in pBeginInfo->videoSession at the time the command is executed on the device" + "text": "If the slotIndex member of any element of pBeginInfo->pReferenceSlots is not negative, then it must specify the index of a DPB slot that is in the active state in pBeginInfo->videoSession at the time the command is executed on the device", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginVideoCodingKHR-pPictureResource-07265", - "text": " Each video picture resource specified by any non-NULL pPictureResource member specified in the elements of pBeginInfo->pReferenceSlots for which slotIndex is not negative must match one of the video picture resources currently associated with the DPB slot index of pBeginInfo->videoSession specified by slotIndex at the time the command is executed on the device" + "text": "Each video picture resource specified by any non-NULL pPictureResource member specified in the elements of pBeginInfo->pReferenceSlots for which slotIndex is not negative must match one of the video picture resources currently associated with the DPB slot index of pBeginInfo->videoSession specified by slotIndex at the time the command is executed on the device", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginVideoCodingKHR-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginVideoCodingKHR-pBeginInfo-parameter", - "text": " pBeginInfo must be a valid pointer to a valid VkVideoBeginCodingInfoKHR structure" + "text": "pBeginInfo must be a valid pointer to a valid VkVideoBeginCodingInfoKHR structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginVideoCodingKHR-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginVideoCodingKHR-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support decode, or encode operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support decode, or encode operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginVideoCodingKHR-renderpass", - "text": " This command must only be called outside of a render pass instance" + "text": "This command must only be called outside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginVideoCodingKHR-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginVideoCodingKHR-bufferlevel", - "text": " commandBuffer must be a primary VkCommandBuffer" + "text": "commandBuffer must be a primary VkCommandBuffer", + "page": "vkspec" } ] }, @@ -69942,99 +90229,123 @@ "core": [ { "vuid": "VUID-VkVideoBeginCodingInfoKHR-videoSession-07237", - "text": " videoSession must have memory bound to all of its memory bindings returned by vkGetVideoSessionMemoryRequirementsKHR for videoSession" + "text": "videoSession must have memory bound to all of its memory bindings returned by vkGetVideoSessionMemoryRequirementsKHR for videoSession", + "page": "vkspec" }, { "vuid": "VUID-VkVideoBeginCodingInfoKHR-slotIndex-04856", - "text": " Each non-negative VkVideoReferenceSlotInfoKHR::slotIndex specified in the elements of pReferenceSlots must be less than the VkVideoSessionCreateInfoKHR::maxDpbSlots specified when videoSession was created" + "text": "Each non-negative VkVideoReferenceSlotInfoKHR::slotIndex specified in the elements of pReferenceSlots must be less than the VkVideoSessionCreateInfoKHR::maxDpbSlots specified when videoSession was created", + "page": "vkspec" }, { "vuid": "VUID-VkVideoBeginCodingInfoKHR-pPictureResource-07238", - "text": " Each video picture resource corresponding to any non-NULL pPictureResource member specified in the elements of pReferenceSlots must be unique within pReferenceSlots" + "text": "Each video picture resource corresponding to any non-NULL pPictureResource member specified in the elements of pReferenceSlots must be unique within pReferenceSlots", + "page": "vkspec" }, { "vuid": "VUID-VkVideoBeginCodingInfoKHR-pPictureResource-07240", - "text": " If the pPictureResource member of any element of pReferenceSlots is not NULL, then the image view specified in pPictureResource->imageViewBinding for that element must be compatible with the video profile videoSession was created with" + "text": "If the pPictureResource member of any element of pReferenceSlots is not NULL, then the image view specified in pPictureResource->imageViewBinding for that element must be compatible with the video profile videoSession was created with", + "page": "vkspec" }, { "vuid": "VUID-VkVideoBeginCodingInfoKHR-pPictureResource-07241", - "text": " If the pPictureResource member of any element of pReferenceSlots is not NULL, then the format of the image view specified in pPictureResource->imageViewBinding for that element must match the VkVideoSessionCreateInfoKHR::referencePictureFormat videoSession was created with" + "text": "If the pPictureResource member of any element of pReferenceSlots is not NULL, then the format of the image view specified in pPictureResource->imageViewBinding for that element must match the VkVideoSessionCreateInfoKHR::referencePictureFormat videoSession was created with", + "page": "vkspec" }, { "vuid": "VUID-VkVideoBeginCodingInfoKHR-pPictureResource-07242", - "text": " If the pPictureResource member of any element of pReferenceSlots is not NULL, then its codedOffset member must be an integer multiple of codedOffsetGranularity" + "text": "If the pPictureResource member of any element of pReferenceSlots is not NULL, then its codedOffset member must be an integer multiple of codedOffsetGranularity", + "page": "vkspec" }, { "vuid": "VUID-VkVideoBeginCodingInfoKHR-pPictureResource-07243", - "text": " If the pPictureResource member of any element of pReferenceSlots is not NULL, then its codedExtent member must be between minCodedExtent and maxCodedExtent, inclusive, videoSession was created with" + "text": "If the pPictureResource member of any element of pReferenceSlots is not NULL, then its codedExtent member must be between minCodedExtent and maxCodedExtent, inclusive, videoSession was created with", + "page": "vkspec" }, { "vuid": "VUID-VkVideoBeginCodingInfoKHR-flags-07244", - "text": " If VkVideoCapabilitiesKHR::flags does not include VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile videoSession was created with, then pPictureResource->imageViewBinding of all elements of pReferenceSlots with a non-NULL pPictureResource member must specify image views created from the same image" + "text": "If VkVideoCapabilitiesKHR::flags does not include VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile videoSession was created with, then pPictureResource->imageViewBinding of all elements of pReferenceSlots with a non-NULL pPictureResource member must specify image views created from the same image", + "page": "vkspec" }, { "vuid": "VUID-VkVideoBeginCodingInfoKHR-slotIndex-07245", - "text": " If videoSession was created with a decode operation and the slotIndex member of any element of pReferenceSlots is not negative, then the image view specified in pPictureResource->imageViewBinding for that element must have been created with VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR" + "text": "If videoSession was created with a decode operation and the slotIndex member of any element of pReferenceSlots is not negative, then the image view specified in pPictureResource->imageViewBinding for that element must have been created with VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkVideoBeginCodingInfoKHR-slotIndex-07246", - "text": " If videoSession was created with an encode operation and the slotIndex member of any element of pReferenceSlots is not negative, then the image view specified in pPictureResource->imageViewBinding for that element must have been created with VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR" + "text": "If videoSession was created with an encode operation and the slotIndex member of any element of pReferenceSlots is not negative, then the image view specified in pPictureResource->imageViewBinding for that element must have been created with VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkVideoBeginCodingInfoKHR-videoSession-07247", - "text": " If videoSession was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR, then videoSessionParameters must not be VK_NULL_HANDLE" + "text": "If videoSession was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR, then videoSessionParameters must not be VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-VkVideoBeginCodingInfoKHR-videoSession-07248", - "text": " If videoSession was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR, then videoSessionParameters must not be VK_NULL_HANDLE" + "text": "If videoSession was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR, then videoSessionParameters must not be VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-VkVideoBeginCodingInfoKHR-videoSession-07249", - "text": " If videoSession was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT, then videoSessionParameters must not be VK_NULL_HANDLE" + "text": "If videoSession was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT, then videoSessionParameters must not be VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-VkVideoBeginCodingInfoKHR-videoSession-07250", - "text": " If videoSession was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_EXT, then videoSessionParameters must not be VK_NULL_HANDLE" + "text": "If videoSession was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_EXT, then videoSessionParameters must not be VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-VkVideoBeginCodingInfoKHR-videoSessionParameters-04857", - "text": " If videoSessionParameters is not VK_NULL_HANDLE, it must have been created with videoSession specified in VkVideoSessionParametersCreateInfoKHR::videoSession" + "text": "If videoSessionParameters is not VK_NULL_HANDLE, it must have been created with videoSession specified in VkVideoSessionParametersCreateInfoKHR::videoSession", + "page": "vkspec" }, { "vuid": "VUID-VkVideoBeginCodingInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkVideoBeginCodingInfoKHR-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 VkVideoEncodeH264GopRemainingFrameInfoEXT, VkVideoEncodeH264RateControlInfoEXT, VkVideoEncodeH265GopRemainingFrameInfoEXT, VkVideoEncodeH265RateControlInfoEXT, or VkVideoEncodeRateControlInfoKHR" + "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 VkVideoEncodeH264GopRemainingFrameInfoEXT, VkVideoEncodeH264RateControlInfoEXT, VkVideoEncodeH265GopRemainingFrameInfoEXT, VkVideoEncodeH265RateControlInfoEXT, or VkVideoEncodeRateControlInfoKHR", + "page": "vkspec" }, { "vuid": "VUID-VkVideoBeginCodingInfoKHR-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" }, { "vuid": "VUID-VkVideoBeginCodingInfoKHR-flags-zerobitmask", - "text": " flags must be 0" + "text": "flags must be 0", + "page": "vkspec" }, { "vuid": "VUID-VkVideoBeginCodingInfoKHR-videoSession-parameter", - "text": " videoSession must be a valid VkVideoSessionKHR handle" + "text": "videoSession must be a valid VkVideoSessionKHR handle", + "page": "vkspec" }, { "vuid": "VUID-VkVideoBeginCodingInfoKHR-videoSessionParameters-parameter", - "text": " If videoSessionParameters is not VK_NULL_HANDLE, videoSessionParameters must be a valid VkVideoSessionParametersKHR handle" + "text": "If videoSessionParameters is not VK_NULL_HANDLE, videoSessionParameters must be a valid VkVideoSessionParametersKHR handle", + "page": "vkspec" }, { "vuid": "VUID-VkVideoBeginCodingInfoKHR-pReferenceSlots-parameter", - "text": " If referenceSlotCount is not 0, pReferenceSlots must be a valid pointer to an array of referenceSlotCount valid VkVideoReferenceSlotInfoKHR structures" + "text": "If referenceSlotCount is not 0, pReferenceSlots must be a valid pointer to an array of referenceSlotCount valid VkVideoReferenceSlotInfoKHR structures", + "page": "vkspec" }, { "vuid": "VUID-VkVideoBeginCodingInfoKHR-videoSessionParameters-parent", - "text": " If videoSessionParameters is a valid handle, it must have been created, allocated, or retrieved from videoSession" + "text": "If videoSessionParameters is a valid handle, it must have been created, allocated, or retrieved from videoSession", + "page": "vkspec" }, { "vuid": "VUID-VkVideoBeginCodingInfoKHR-commonparent", - "text": " Both of videoSession, and videoSessionParameters that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of videoSession, and videoSessionParameters that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -70042,19 +90353,23 @@ "core": [ { "vuid": "VUID-VkVideoReferenceSlotInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkVideoReferenceSlotInfoKHR-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 VkVideoDecodeH264DpbSlotInfoKHR, VkVideoDecodeH265DpbSlotInfoKHR, VkVideoEncodeH264DpbSlotInfoEXT, or VkVideoEncodeH265DpbSlotInfoEXT" + "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 VkVideoDecodeH264DpbSlotInfoKHR, VkVideoDecodeH265DpbSlotInfoKHR, VkVideoEncodeH264DpbSlotInfoEXT, or VkVideoEncodeH265DpbSlotInfoEXT", + "page": "vkspec" }, { "vuid": "VUID-VkVideoReferenceSlotInfoKHR-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" }, { "vuid": "VUID-VkVideoReferenceSlotInfoKHR-pPictureResource-parameter", - "text": " If pPictureResource is not NULL, pPictureResource must be a valid pointer to a valid VkVideoPictureResourceInfoKHR structure" + "text": "If pPictureResource is not NULL, pPictureResource must be a valid pointer to a valid VkVideoPictureResourceInfoKHR structure", + "page": "vkspec" } ] }, @@ -70062,35 +90377,43 @@ "core": [ { "vuid": "VUID-vkCmdEndVideoCodingKHR-None-07251", - "text": " There must be no active queries" + "text": "There must be no active queries", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndVideoCodingKHR-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndVideoCodingKHR-pEndCodingInfo-parameter", - "text": " pEndCodingInfo must be a valid pointer to a valid VkVideoEndCodingInfoKHR structure" + "text": "pEndCodingInfo must be a valid pointer to a valid VkVideoEndCodingInfoKHR structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndVideoCodingKHR-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndVideoCodingKHR-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support decode, or encode operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support decode, or encode operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndVideoCodingKHR-renderpass", - "text": " This command must only be called outside of a render pass instance" + "text": "This command must only be called outside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndVideoCodingKHR-videocoding", - "text": " This command must only be called inside of a video coding scope" + "text": "This command must only be called inside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndVideoCodingKHR-bufferlevel", - "text": " commandBuffer must be a primary VkCommandBuffer" + "text": "commandBuffer must be a primary VkCommandBuffer", + "page": "vkspec" } ] }, @@ -70098,15 +90421,18 @@ "core": [ { "vuid": "VUID-VkVideoEndCodingInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkVideoEndCodingInfoKHR-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkVideoEndCodingInfoKHR-flags-zerobitmask", - "text": " flags must be 0" + "text": "flags must be 0", + "page": "vkspec" } ] }, @@ -70114,35 +90440,43 @@ "core": [ { "vuid": "VUID-vkCmdControlVideoCodingKHR-flags-07017", - "text": " If pCodingControlInfo->flags does not include VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR, then the bound video session must not be in uninitialized state at the time the command is executed on the device" + "text": "If pCodingControlInfo->flags does not include VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR, then the bound video session must not be in uninitialized state at the time the command is executed on the device", + "page": "vkspec" }, { "vuid": "VUID-vkCmdControlVideoCodingKHR-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdControlVideoCodingKHR-pCodingControlInfo-parameter", - "text": " pCodingControlInfo must be a valid pointer to a valid VkVideoCodingControlInfoKHR structure" + "text": "pCodingControlInfo must be a valid pointer to a valid VkVideoCodingControlInfoKHR structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdControlVideoCodingKHR-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdControlVideoCodingKHR-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support decode, or encode operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support decode, or encode operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdControlVideoCodingKHR-renderpass", - "text": " This command must only be called outside of a render pass instance" + "text": "This command must only be called outside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdControlVideoCodingKHR-videocoding", - "text": " This command must only be called inside of a video coding scope" + "text": "This command must only be called inside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdControlVideoCodingKHR-bufferlevel", - "text": " commandBuffer must be a primary VkCommandBuffer" + "text": "commandBuffer must be a primary VkCommandBuffer", + "page": "vkspec" } ] }, @@ -70150,43 +90484,53 @@ "core": [ { "vuid": "VUID-VkVideoCodingControlInfoKHR-flags-07018", - "text": " If flags includes VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR, then the pNext chain must include a VkVideoEncodeRateControlInfoKHR structure" + "text": "If flags includes VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR, then the pNext chain must include a VkVideoEncodeRateControlInfoKHR structure", + "page": "vkspec" }, { "vuid": "VUID-VkVideoCodingControlInfoKHR-flags-07021", - "text": " If flags includes VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR, the rateControlMode member of VkVideoEncodeRateControlInfoKHR included in the pNext chain is not VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DEFAULT_KHR or VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR, and the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT, then the pNext chain must include a VkVideoEncodeH264RateControlInfoEXT structure" + "text": "If flags includes VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR, the rateControlMode member of VkVideoEncodeRateControlInfoKHR included in the pNext chain is not VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DEFAULT_KHR or VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR, and the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT, then the pNext chain must include a VkVideoEncodeH264RateControlInfoEXT structure", + "page": "vkspec" }, { "vuid": "VUID-VkVideoCodingControlInfoKHR-pNext-07022", - "text": " If the pNext chain includes a VkVideoEncodeRateControlInfoKHR, and VkVideoEncodeRateControlInfoKHR::layerCount is greater than 1, then VkVideoEncodeH264RateControlInfoEXT::temporalLayerCount must be equal to layerCount" + "text": "If the pNext chain includes a VkVideoEncodeRateControlInfoKHR, and VkVideoEncodeRateControlInfoKHR::layerCount is greater than 1, then VkVideoEncodeH264RateControlInfoEXT::temporalLayerCount must be equal to layerCount", + "page": "vkspec" }, { "vuid": "VUID-VkVideoCodingControlInfoKHR-flags-07024", - "text": " If flags includes VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR, the rateControlMode member of VkVideoEncodeRateControlInfoKHR included in the pNext chain is not VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DEFAULT_KHR or VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR, and the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_EXT, then the pNext chain must include a VkVideoEncodeH265RateControlInfoEXT structure" + "text": "If flags includes VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR, the rateControlMode member of VkVideoEncodeRateControlInfoKHR included in the pNext chain is not VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DEFAULT_KHR or VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR, and the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_EXT, then the pNext chain must include a VkVideoEncodeH265RateControlInfoEXT structure", + "page": "vkspec" }, { "vuid": "VUID-VkVideoCodingControlInfoKHR-pNext-07025", - "text": " If the pNext chain includes a VkVideoEncodeRateControlInfoKHR, and VkVideoEncodeRateControlInfoKHR::layerCount is greater than 1, then VkVideoEncodeH265RateControlInfoEXT::subLayerCount must be equal to layerCount" + "text": "If the pNext chain includes a VkVideoEncodeRateControlInfoKHR, and VkVideoEncodeRateControlInfoKHR::layerCount is greater than 1, then VkVideoEncodeH265RateControlInfoEXT::subLayerCount must be equal to layerCount", + "page": "vkspec" }, { "vuid": "VUID-VkVideoCodingControlInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkVideoCodingControlInfoKHR-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 VkVideoEncodeH264RateControlInfoEXT, VkVideoEncodeH265RateControlInfoEXT, VkVideoEncodeQualityLevelInfoKHR, or VkVideoEncodeRateControlInfoKHR" + "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 VkVideoEncodeH264RateControlInfoEXT, VkVideoEncodeH265RateControlInfoEXT, VkVideoEncodeQualityLevelInfoKHR, or VkVideoEncodeRateControlInfoKHR", + "page": "vkspec" }, { "vuid": "VUID-VkVideoCodingControlInfoKHR-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" }, { "vuid": "VUID-VkVideoCodingControlInfoKHR-flags-parameter", - "text": " flags must be a valid combination of VkVideoCodingControlFlagBitsKHR values" + "text": "flags must be a valid combination of VkVideoCodingControlFlagBitsKHR values", + "page": "vkspec" }, { "vuid": "VUID-VkVideoCodingControlInfoKHR-flags-requiredbitmask", - "text": " flags must not be 0" + "text": "flags must not be 0", + "page": "vkspec" } ] }, @@ -70194,7 +90538,8 @@ "core": [ { "vuid": "VUID-VkVideoDecodeCapabilitiesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR", + "page": "vkspec" } ] }, @@ -70202,243 +90547,303 @@ "core": [ { "vuid": "VUID-vkCmdDecodeVideoKHR-None-07011", - "text": " The bound video session must not be in uninitialized state at the time the command is executed on the device" + "text": "The bound video session must not be in uninitialized state at the time the command is executed on the device", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecodeVideoKHR-opCount-07134", - "text": " For each active query, the active query index corresponding to the query type of that query plus opCount must be less than or equal to the last activatable query index corresponding to the query type of that query plus one" + "text": "For each active query, the active query index corresponding to the query type of that query plus opCount must be less than or equal to the last activatable query index corresponding to the query type of that query plus one", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07135", - "text": " pDecodeInfo->srcBuffer must be compatible with the video profile the bound video session was created with" + "text": "pDecodeInfo->srcBuffer must be compatible with the video profile the bound video session was created with", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecodeVideoKHR-commandBuffer-07136", - "text": " If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, then pDecodeInfo->srcBuffer must not be a protected buffer" + "text": "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, then pDecodeInfo->srcBuffer must not be a protected buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecodeVideoKHR-commandBuffer-07137", - "text": " If commandBuffer is a protected command buffer and protectedNoFault is not supported, then pDecodeInfo->srcBuffer must be a protected buffer" + "text": "If commandBuffer is a protected command buffer and protectedNoFault is not supported, then pDecodeInfo->srcBuffer must be a protected buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07138", - "text": " pDecodeInfo->srcBufferOffset must be an integer multiple of VkVideoCapabilitiesKHR::minBitstreamBufferOffsetAlignment, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile the bound video session was created with" + "text": "pDecodeInfo->srcBufferOffset must be an integer multiple of VkVideoCapabilitiesKHR::minBitstreamBufferOffsetAlignment, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile the bound video session was created with", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07139", - "text": " pDecodeInfo->srcBufferRange must be an integer multiple of VkVideoCapabilitiesKHR::minBitstreamBufferSizeAlignment, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile the bound video session was created with" + "text": "pDecodeInfo->srcBufferRange must be an integer multiple of VkVideoCapabilitiesKHR::minBitstreamBufferSizeAlignment, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile the bound video session was created with", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07140", - "text": " If pDecodeInfo->pSetupReferenceSlot is not NULL and VkVideoDecodeCapabilitiesKHR::flags does not include VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile the bound video session was created with, then the video picture resources specified by pDecodeInfo->dstPictureResource and pDecodeInfo->pSetupReferenceSlot->pPictureResource must not match" + "text": "If pDecodeInfo->pSetupReferenceSlot is not NULL and VkVideoDecodeCapabilitiesKHR::flags does not include VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile the bound video session was created with, then the video picture resources specified by pDecodeInfo->dstPictureResource and pDecodeInfo->pSetupReferenceSlot->pPictureResource must not match", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07141", - "text": " If pDecodeInfo->pSetupReferenceSlot is not NULL and VkVideoDecodeCapabilitiesKHR::flags does not include VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile the bound video session was created with, then the video picture resources specified by pDecodeInfo->dstPictureResource and pDecodeInfo->pSetupReferenceSlot->pPictureResource must match" + "text": "If pDecodeInfo->pSetupReferenceSlot is not NULL and VkVideoDecodeCapabilitiesKHR::flags does not include VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile the bound video session was created with, then the video picture resources specified by pDecodeInfo->dstPictureResource and pDecodeInfo->pSetupReferenceSlot->pPictureResource must match", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07142", - "text": " pDecodeInfo->dstPictureResource.imageViewBinding must be compatible with the video profile the bound video session was created with" + "text": "pDecodeInfo->dstPictureResource.imageViewBinding must be compatible with the video profile the bound video session was created with", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07143", - "text": " The format of pDecodeInfo->dstPictureResource.imageViewBinding must match the VkVideoSessionCreateInfoKHR::pictureFormat the bound video session was created with" + "text": "The format of pDecodeInfo->dstPictureResource.imageViewBinding must match the VkVideoSessionCreateInfoKHR::pictureFormat the bound video session was created with", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07144", - "text": " pDecodeInfo->dstPictureResource.codedOffset must be an integer multiple of codedOffsetGranularity" + "text": "pDecodeInfo->dstPictureResource.codedOffset must be an integer multiple of codedOffsetGranularity", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07145", - "text": " pDecodeInfo->dstPictureResource.codedExtent must be between minCodedExtent and maxCodedExtent, inclusive, the bound video session was created with" + "text": "pDecodeInfo->dstPictureResource.codedExtent must be between minCodedExtent and maxCodedExtent, inclusive, the bound video session was created with", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07146", - "text": " pDecodeInfo->dstPictureResource.imageViewBinding must have been created with VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR" + "text": "pDecodeInfo->dstPictureResource.imageViewBinding must have been created with VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecodeVideoKHR-commandBuffer-07147", - "text": " If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, then pDecodeInfo->dstPictureResource.imageViewBinding must not have been created from a protected image" + "text": "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, then pDecodeInfo->dstPictureResource.imageViewBinding must not have been created from a protected image", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecodeVideoKHR-commandBuffer-07148", - "text": " If commandBuffer is a protected command buffer and protectedNoFault is not supported, then pDecodeInfo->dstPictureResource.imageViewBinding must have been created from a protected image" + "text": "If commandBuffer is a protected command buffer and protectedNoFault is not supported, then pDecodeInfo->dstPictureResource.imageViewBinding must have been created from a protected image", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07170", - "text": " If pDecodeInfo->pSetupReferenceSlot is not NULL, then pDecodeInfo->pSetupReferenceSlot->slotIndex must be less than the VkVideoSessionCreateInfoKHR::maxDpbSlots specified when the bound video session was created" + "text": "If pDecodeInfo->pSetupReferenceSlot is not NULL, then pDecodeInfo->pSetupReferenceSlot->slotIndex must be less than the VkVideoSessionCreateInfoKHR::maxDpbSlots specified when the bound video session was created", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07173", - "text": " If pDecodeInfo->pSetupReferenceSlot is not NULL, then pDecodeInfo->pSetupReferenceSlot->pPictureResource->codedOffset must be an integer multiple of codedOffsetGranularity" + "text": "If pDecodeInfo->pSetupReferenceSlot is not NULL, then pDecodeInfo->pSetupReferenceSlot->pPictureResource->codedOffset must be an integer multiple of codedOffsetGranularity", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07149", - "text": " If pDecodeInfo->pSetupReferenceSlot is not NULL, then pDecodeInfo->pSetupReferenceSlot->pPictureResource must match one of the bound reference picture resource" + "text": "If pDecodeInfo->pSetupReferenceSlot is not NULL, then pDecodeInfo->pSetupReferenceSlot->pPictureResource must match one of the bound reference picture resource", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecodeVideoKHR-activeReferencePictureCount-07150", - "text": " activeReferencePictureCount must be less than or equal to the VkVideoSessionCreateInfoKHR::maxActiveReferencePictures specified when the bound video session was created" + "text": "activeReferencePictureCount must be less than or equal to the VkVideoSessionCreateInfoKHR::maxActiveReferencePictures specified when the bound video session was created", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecodeVideoKHR-slotIndex-07256", - "text": " The slotIndex member of each element of pDecodeInfo->pReferenceSlots must be less than the VkVideoSessionCreateInfoKHR::maxDpbSlots specified when the bound video session was created" + "text": "The slotIndex member of each element of pDecodeInfo->pReferenceSlots must be less than the VkVideoSessionCreateInfoKHR::maxDpbSlots specified when the bound video session was created", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecodeVideoKHR-codedOffset-07257", - "text": " The codedOffset member of the VkVideoPictureResourceInfoKHR structure pointed to by the pPictureResource member of each element of pDecodeInfo->pReferenceSlots must be an integer multiple of codedOffsetGranularity" + "text": "The codedOffset member of the VkVideoPictureResourceInfoKHR structure pointed to by the pPictureResource member of each element of pDecodeInfo->pReferenceSlots must be an integer multiple of codedOffsetGranularity", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07151", - "text": " The pPictureResource member of each element of pDecodeInfo->pReferenceSlots must match one of the bound reference picture resource associated with the DPB slot index specified in the slotIndex member of that element" + "text": "The pPictureResource member of each element of pDecodeInfo->pReferenceSlots must match one of the bound reference picture resource associated with the DPB slot index specified in the slotIndex member of that element", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07264", - "text": " Each video picture resource corresponding to the pPictureResource member specified in the elements of pDecodeInfo->pReferenceSlots must be unique within pDecodeInfo->pReferenceSlots" + "text": "Each video picture resource corresponding to the pPictureResource member specified in the elements of pDecodeInfo->pReferenceSlots must be unique within pDecodeInfo->pReferenceSlots", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecodeVideoKHR-dpbFrameUseCount-07176", - "text": " All elements of dpbFrameUseCount must be less than or equal to 1" + "text": "All elements of dpbFrameUseCount must be less than or equal to 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecodeVideoKHR-dpbTopFieldUseCount-07177", - "text": " All elements of dpbTopFieldUseCount must be less than or equal to 1" + "text": "All elements of dpbTopFieldUseCount must be less than or equal to 1", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecodeVideoKHR-dpbBottomFieldUseCount-07178", - "text": " All elements of dpbBottomFieldUseCount must be less than or equal to 1" + "text": "All elements of dpbBottomFieldUseCount must be less than or equal to 1", + "page": "vkspec" }, { "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" + "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", + "page": "vkspec" }, { "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" + "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", + "page": "vkspec" }, { "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" + "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", + "page": "vkspec" }, { "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" + "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", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecodeVideoKHR-pNext-07152", - "text": " If the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR, then the pNext chain of pDecodeInfo must include a VkVideoDecodeH264PictureInfoKHR structure" + "text": "If the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR, then the pNext chain of pDecodeInfo must include a VkVideoDecodeH264PictureInfoKHR structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecodeVideoKHR-None-07258", - "text": " If the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR but was not created with interlaced frame support, then the decode output picture must represent a frame" + "text": "If the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR but was not created with interlaced frame support, then the decode output picture must represent a frame", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecodeVideoKHR-pSliceOffsets-07153", - "text": " If the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR, then all elements of the pSliceOffsets member of the VkVideoDecodeH264PictureInfoKHR structure included in the pNext chain of pDecodeInfo must be less than pDecodeInfo->srcBufferRange" + "text": "If the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR, then all elements of the pSliceOffsets member of the VkVideoDecodeH264PictureInfoKHR structure included in the pNext chain of pDecodeInfo must be less than pDecodeInfo->srcBufferRange", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecodeVideoKHR-StdVideoH264SequenceParameterSet-07154", - "text": " If the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR, then the bound video session parameters object must contain a StdVideoH264SequenceParameterSet entry with seq_parameter_set_id matching StdVideoDecodeH264PictureInfo::seq_parameter_set_id that is provided in the pStdPictureInfo member of the VkVideoDecodeH264PictureInfoKHR structure included in the pNext chain of pDecodeInfo" + "text": "If the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR, then the bound video session parameters object must contain a StdVideoH264SequenceParameterSet entry with seq_parameter_set_id matching StdVideoDecodeH264PictureInfo::seq_parameter_set_id that is provided in the pStdPictureInfo member of the VkVideoDecodeH264PictureInfoKHR structure included in the pNext chain of pDecodeInfo", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecodeVideoKHR-StdVideoH264PictureParameterSet-07155", - "text": " If the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR, then the bound video session parameters object must contain a StdVideoH264PictureParameterSet entry with seq_parameter_set_id and pic_parameter_set_id matching StdVideoDecodeH264PictureInfo::seq_parameter_set_id and StdVideoDecodeH264PictureInfo::pic_parameter_set_id, respectively, that are provided in the pStdPictureInfo member of the VkVideoDecodeH264PictureInfoKHR structure included in the pNext chain of pDecodeInfo" + "text": "If the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR, then the bound video session parameters object must contain a StdVideoH264PictureParameterSet entry with seq_parameter_set_id and pic_parameter_set_id matching StdVideoDecodeH264PictureInfo::seq_parameter_set_id and StdVideoDecodeH264PictureInfo::pic_parameter_set_id, respectively, that are provided in the pStdPictureInfo member of the VkVideoDecodeH264PictureInfoKHR structure included in the pNext chain of pDecodeInfo", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07156", - "text": " If the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR and pDecodeInfo->pSetupReferenceSlot is not NULL, then the pNext chain of pDecodeInfo->pSetupReferenceSlot must include a VkVideoDecodeH264DpbSlotInfoKHR structure" + "text": "If the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR and pDecodeInfo->pSetupReferenceSlot is not NULL, then the pNext chain of pDecodeInfo->pSetupReferenceSlot must include a VkVideoDecodeH264DpbSlotInfoKHR structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07259", - "text": " If the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR but was not created with interlaced frame support, and pDecodeInfo->pSetupReferenceSlot is not NULL, then the reconstructed picture must represent a frame" + "text": "If the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR but was not created with interlaced frame support, and pDecodeInfo->pSetupReferenceSlot is not NULL, then the reconstructed picture must represent a frame", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecodeVideoKHR-pNext-07157", - "text": " If the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR, then the pNext chain of each element of pDecodeInfo->pReferenceSlots must include a VkVideoDecodeH264DpbSlotInfoKHR structure" + "text": "If the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR, then the pNext chain of each element of pDecodeInfo->pReferenceSlots must include a VkVideoDecodeH264DpbSlotInfoKHR structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07260", - "text": " If the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR but was not created with interlaced frame support, then each active reference picture corresponding to the elements of pDecodeInfo->pReferenceSlots must represent a frame" + "text": "If the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR but was not created with interlaced frame support, then each active reference picture corresponding to the elements of pDecodeInfo->pReferenceSlots must represent a frame", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07261", - "text": " If the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR, pDecodeInfo->pSetupReferenceSlot is not NULL, and the decode output picture represents a frame, then the reconstructed picture must also represent a frame" + "text": "If the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR, pDecodeInfo->pSetupReferenceSlot is not NULL, and the decode output picture represents a frame, then the reconstructed picture must also represent a frame", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07262", - "text": " If the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR, pDecodeInfo->pSetupReferenceSlot is not NULL, and the decode output picture represents a top field, then the reconstructed picture must also represent a top field" + "text": "If the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR, pDecodeInfo->pSetupReferenceSlot is not NULL, and the decode output picture represents a top field, then the reconstructed picture must also represent a top field", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07263", - "text": " If the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR, pDecodeInfo->pSetupReferenceSlot is not NULL, and the decode output picture represents a bottom field, then the reconstructed picture must also represent a bottom field" + "text": "If the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR, pDecodeInfo->pSetupReferenceSlot is not NULL, and the decode output picture represents a bottom field, then the reconstructed picture must also represent a bottom field", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07266", - "text": " If the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR and an active reference picture corresponding to any element of pDecodeInfo->pReferenceSlots represents a frame, then the DPB slot index of the bound video session specified by the slotIndex member of that element must be currently associated with a frame picture matching the video picture resource specified by the pPictureResource member of the same element at the time the command is executed on the device" + "text": "If the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR and an active reference picture corresponding to any element of pDecodeInfo->pReferenceSlots represents a frame, then the DPB slot index of the bound video session specified by the slotIndex member of that element must be currently associated with a frame picture matching the video picture resource specified by the pPictureResource member of the same element at the time the command is executed on the device", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07267", - "text": " If the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR and an active reference picture corresponding to any element of pDecodeInfo->pReferenceSlots represents a top field, then the DPB slot index of the bound video session specified by the slotIndex member of that element must be currently associated with a top field picture matching the video picture resource specified by the pPictureResource member of the same element at the time the command is executed on the device" + "text": "If the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR and an active reference picture corresponding to any element of pDecodeInfo->pReferenceSlots represents a top field, then the DPB slot index of the bound video session specified by the slotIndex member of that element must be currently associated with a top field picture matching the video picture resource specified by the pPictureResource member of the same element at the time the command is executed on the device", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07268", - "text": " If the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR and an active reference picture corresponding to any element of pDecodeInfo->pReferenceSlots represents a bottom field, then the DPB slot index of the bound video session specified by the slotIndex member of that element must be currently associated with a bottom field picture matching the video picture resource specified by the pPictureResource member of the same element at the time the command is executed on the device" + "text": "If the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR and an active reference picture corresponding to any element of pDecodeInfo->pReferenceSlots represents a bottom field, then the DPB slot index of the bound video session specified by the slotIndex member of that element must be currently associated with a bottom field picture matching the video picture resource specified by the pPictureResource member of the same element at the time the command is executed on the device", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecodeVideoKHR-pNext-07158", - "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 pDecodeInfo must include a VkVideoDecodeH265PictureInfoKHR structure" + "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 pDecodeInfo must include a VkVideoDecodeH265PictureInfoKHR structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecodeVideoKHR-pSliceSegmentOffsets-07159", - "text": " If the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR, then all elements of the pSliceSegmentOffsets member of the VkVideoDecodeH265PictureInfoKHR structure included in the pNext chain of pDecodeInfo must be less than pDecodeInfo->srcBufferRange" + "text": "If the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR, then all elements of the pSliceSegmentOffsets member of the VkVideoDecodeH265PictureInfoKHR structure included in the pNext chain of pDecodeInfo must be less than pDecodeInfo->srcBufferRange", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecodeVideoKHR-StdVideoH265VideoParameterSet-07160", - "text": " If the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR, then the bound video session parameters object must contain a StdVideoH265VideoParameterSet entry with vps_video_parameter_set_id matching StdVideoDecodeH265PictureInfo::sps_video_parameter_set_id that is provided in the pStdPictureInfo member of the VkVideoDecodeH265PictureInfoKHR structure included in the pNext chain of pDecodeInfo" + "text": "If the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR, then the bound video session parameters object must contain a StdVideoH265VideoParameterSet entry with vps_video_parameter_set_id matching StdVideoDecodeH265PictureInfo::sps_video_parameter_set_id that is provided in the pStdPictureInfo member of the VkVideoDecodeH265PictureInfoKHR structure included in the pNext chain of pDecodeInfo", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecodeVideoKHR-StdVideoH265SequenceParameterSet-07161", - "text": " If the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR, then the bound video session parameters object must contain a StdVideoH265SequenceParameterSet entry with sps_video_parameter_set_id and sps_seq_parameter_set_id matching StdVideoDecodeH265PictureInfo::sps_video_parameter_set_id and StdVideoDecodeH265PictureInfo::pps_seq_parameter_set_id, respectively, that are provided in the pStdPictureInfo member of the VkVideoDecodeH265PictureInfoKHR structure included in the pNext chain of pDecodeInfo" + "text": "If the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR, then the bound video session parameters object must contain a StdVideoH265SequenceParameterSet entry with sps_video_parameter_set_id and sps_seq_parameter_set_id matching StdVideoDecodeH265PictureInfo::sps_video_parameter_set_id and StdVideoDecodeH265PictureInfo::pps_seq_parameter_set_id, respectively, that are provided in the pStdPictureInfo member of the VkVideoDecodeH265PictureInfoKHR structure included in the pNext chain of pDecodeInfo", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecodeVideoKHR-StdVideoH265PictureParameterSet-07162", - "text": " If the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR, then the bound video session parameters object must contain a StdVideoH265PictureParameterSet entry with sps_video_parameter_set_id, pps_seq_parameter_set_id, and pps_pic_parameter_set_id matching StdVideoDecodeH265PictureInfo::sps_video_parameter_set_id, StdVideoDecodeH265PictureInfo::pps_seq_parameter_set_id, and StdVideoDecodeH265PictureInfo::pps_pic_parameter_set_id, respectively, that are provided in the pStdPictureInfo member of the VkVideoDecodeH265PictureInfoKHR structure included in the pNext chain of pDecodeInfo" + "text": "If the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR, then the bound video session parameters object must contain a StdVideoH265PictureParameterSet entry with sps_video_parameter_set_id, pps_seq_parameter_set_id, and pps_pic_parameter_set_id matching StdVideoDecodeH265PictureInfo::sps_video_parameter_set_id, StdVideoDecodeH265PictureInfo::pps_seq_parameter_set_id, and StdVideoDecodeH265PictureInfo::pps_pic_parameter_set_id, respectively, that are provided in the pStdPictureInfo member of the VkVideoDecodeH265PictureInfoKHR structure included in the pNext chain of pDecodeInfo", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07163", - "text": " If the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR and pDecodeInfo->pSetupReferenceSlot is not NULL, then the pNext chain of pDecodeInfo->pSetupReferenceSlot must include a VkVideoDecodeH265DpbSlotInfoKHR structure" + "text": "If the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR and pDecodeInfo->pSetupReferenceSlot is not NULL, then the pNext chain of pDecodeInfo->pSetupReferenceSlot must include a VkVideoDecodeH265DpbSlotInfoKHR structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecodeVideoKHR-pNext-07164", - "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" + "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": "vkspec" }, { "vuid": "VUID-vkCmdDecodeVideoKHR-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecodeVideoKHR-pDecodeInfo-parameter", - "text": " pDecodeInfo must be a valid pointer to a valid VkVideoDecodeInfoKHR structure" + "text": "pDecodeInfo must be a valid pointer to a valid VkVideoDecodeInfoKHR structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecodeVideoKHR-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecodeVideoKHR-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support decode operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support decode operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecodeVideoKHR-renderpass", - "text": " This command must only be called outside of a render pass instance" + "text": "This command must only be called outside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecodeVideoKHR-videocoding", - "text": " This command must only be called inside of a video coding scope" + "text": "This command must only be called inside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDecodeVideoKHR-bufferlevel", - "text": " commandBuffer must be a primary VkCommandBuffer" + "text": "commandBuffer must be a primary VkCommandBuffer", + "page": "vkspec" } ] }, @@ -70446,63 +90851,78 @@ "core": [ { "vuid": "VUID-VkVideoDecodeInfoKHR-srcBuffer-07165", - "text": " srcBuffer must have been created with VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR set" + "text": "srcBuffer must have been created with VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR set", + "page": "vkspec" }, { "vuid": "VUID-VkVideoDecodeInfoKHR-srcBufferOffset-07166", - "text": " srcBufferOffset must be less than the size of srcBuffer" + "text": "srcBufferOffset must be less than the size of srcBuffer", + "page": "vkspec" }, { "vuid": "VUID-VkVideoDecodeInfoKHR-srcBufferRange-07167", - "text": " srcBufferRange must be less than or equal to the size of srcBuffer minus srcBufferOffset" + "text": "srcBufferRange must be less than or equal to the size of srcBuffer minus srcBufferOffset", + "page": "vkspec" }, { "vuid": "VUID-VkVideoDecodeInfoKHR-pSetupReferenceSlot-07168", - "text": " If pSetupReferenceSlot is not NULL, then its slotIndex member must not be negative" + "text": "If pSetupReferenceSlot is not NULL, then its slotIndex member must not be negative", + "page": "vkspec" }, { "vuid": "VUID-VkVideoDecodeInfoKHR-pSetupReferenceSlot-07169", - "text": " If pSetupReferenceSlot is not NULL, then its pPictureResource must not be NULL" + "text": "If pSetupReferenceSlot is not NULL, then its pPictureResource must not be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkVideoDecodeInfoKHR-slotIndex-07171", - "text": " The slotIndex member of each element of pReferenceSlots must not be negative" + "text": "The slotIndex member of each element of pReferenceSlots must not be negative", + "page": "vkspec" }, { "vuid": "VUID-VkVideoDecodeInfoKHR-pPictureResource-07172", - "text": " The pPictureResource member of each element of pReferenceSlots must not be NULL" + "text": "The pPictureResource member of each element of pReferenceSlots must not be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkVideoDecodeInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR", + "page": "vkspec" }, { "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 VkVideoDecodeH264PictureInfoKHR or VkVideoDecodeH265PictureInfoKHR" + "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 VkVideoDecodeH264PictureInfoKHR or VkVideoDecodeH265PictureInfoKHR", + "page": "vkspec" }, { "vuid": "VUID-VkVideoDecodeInfoKHR-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" }, { "vuid": "VUID-VkVideoDecodeInfoKHR-flags-zerobitmask", - "text": " flags must be 0" + "text": "flags must be 0", + "page": "vkspec" }, { "vuid": "VUID-VkVideoDecodeInfoKHR-srcBuffer-parameter", - "text": " srcBuffer must be a valid VkBuffer handle" + "text": "srcBuffer must be a valid VkBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-VkVideoDecodeInfoKHR-dstPictureResource-parameter", - "text": " dstPictureResource must be a valid VkVideoPictureResourceInfoKHR structure" + "text": "dstPictureResource must be a valid VkVideoPictureResourceInfoKHR structure", + "page": "vkspec" }, { "vuid": "VUID-VkVideoDecodeInfoKHR-pSetupReferenceSlot-parameter", - "text": " If pSetupReferenceSlot is not NULL, pSetupReferenceSlot must be a valid pointer to a valid VkVideoReferenceSlotInfoKHR structure" + "text": "If pSetupReferenceSlot is not NULL, pSetupReferenceSlot must be a valid pointer to a valid VkVideoReferenceSlotInfoKHR structure", + "page": "vkspec" }, { "vuid": "VUID-VkVideoDecodeInfoKHR-pReferenceSlots-parameter", - "text": " If referenceSlotCount is not 0, pReferenceSlots must be a valid pointer to an array of referenceSlotCount valid VkVideoReferenceSlotInfoKHR structures" + "text": "If referenceSlotCount is not 0, pReferenceSlots must be a valid pointer to an array of referenceSlotCount valid VkVideoReferenceSlotInfoKHR structures", + "page": "vkspec" } ] }, @@ -70510,11 +90930,13 @@ "core": [ { "vuid": "VUID-VkVideoDecodeH264ProfileInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkVideoDecodeH264ProfileInfoKHR-pictureLayout-parameter", - "text": " If pictureLayout is not 0, pictureLayout must be a valid VkVideoDecodeH264PictureLayoutFlagBitsKHR value" + "text": "If pictureLayout is not 0, pictureLayout must be a valid VkVideoDecodeH264PictureLayoutFlagBitsKHR value", + "page": "vkspec" } ] }, @@ -70522,7 +90944,8 @@ "core": [ { "vuid": "VUID-VkVideoDecodeH264CapabilitiesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_KHR", + "page": "vkspec" } ] }, @@ -70530,11 +90953,13 @@ "core": [ { "vuid": "VUID-VkVideoDecodeH264SessionParametersCreateInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkVideoDecodeH264SessionParametersCreateInfoKHR-pParametersAddInfo-parameter", - "text": " If pParametersAddInfo is not NULL, pParametersAddInfo must be a valid pointer to a valid VkVideoDecodeH264SessionParametersAddInfoKHR structure" + "text": "If pParametersAddInfo is not NULL, pParametersAddInfo must be a valid pointer to a valid VkVideoDecodeH264SessionParametersAddInfoKHR structure", + "page": "vkspec" } ] }, @@ -70542,23 +90967,28 @@ "core": [ { "vuid": "VUID-VkVideoDecodeH264SessionParametersAddInfoKHR-None-04825", - "text": " The seq_parameter_set_id member of each StdVideoH264SequenceParameterSet structure specified in the elements of pStdSPSs must be unique within pStdSPSs" + "text": "The seq_parameter_set_id member of each StdVideoH264SequenceParameterSet structure specified in the elements of pStdSPSs must be unique within pStdSPSs", + "page": "vkspec" }, { "vuid": "VUID-VkVideoDecodeH264SessionParametersAddInfoKHR-None-04826", - "text": " The pair constructed from the seq_parameter_set_id and pic_parameter_set_id members of each StdVideoH264PictureParameterSet structure specified in the elements of pStdPPSs must be unique within pStdPPSs" + "text": "The pair constructed from the seq_parameter_set_id and pic_parameter_set_id members of each StdVideoH264PictureParameterSet structure specified in the elements of pStdPPSs must be unique within pStdPPSs", + "page": "vkspec" }, { "vuid": "VUID-VkVideoDecodeH264SessionParametersAddInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkVideoDecodeH264SessionParametersAddInfoKHR-pStdSPSs-parameter", - "text": " If stdSPSCount is not 0, pStdSPSs must be a valid pointer to an array of stdSPSCount StdVideoH264SequenceParameterSet values" + "text": "If stdSPSCount is not 0, pStdSPSs must be a valid pointer to an array of stdSPSCount StdVideoH264SequenceParameterSet values", + "page": "vkspec" }, { "vuid": "VUID-VkVideoDecodeH264SessionParametersAddInfoKHR-pStdPPSs-parameter", - "text": " If stdPPSCount is not 0, pStdPPSs must be a valid pointer to an array of stdPPSCount StdVideoH264PictureParameterSet values" + "text": "If stdPPSCount is not 0, pStdPPSs must be a valid pointer to an array of stdPPSCount StdVideoH264PictureParameterSet values", + "page": "vkspec" } ] }, @@ -70566,19 +90996,23 @@ "core": [ { "vuid": "VUID-VkVideoDecodeH264PictureInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkVideoDecodeH264PictureInfoKHR-pStdPictureInfo-parameter", - "text": " pStdPictureInfo must be a valid pointer to a valid StdVideoDecodeH264PictureInfo value" + "text": "pStdPictureInfo must be a valid pointer to a valid StdVideoDecodeH264PictureInfo value", + "page": "vkspec" }, { "vuid": "VUID-VkVideoDecodeH264PictureInfoKHR-pSliceOffsets-parameter", - "text": " pSliceOffsets must be a valid pointer to an array of sliceCount uint32_t values" + "text": "pSliceOffsets must be a valid pointer to an array of sliceCount uint32_t values", + "page": "vkspec" }, { "vuid": "VUID-VkVideoDecodeH264PictureInfoKHR-sliceCount-arraylength", - "text": " sliceCount must be greater than 0" + "text": "sliceCount must be greater than 0", + "page": "vkspec" } ] }, @@ -70586,11 +91020,13 @@ "core": [ { "vuid": "VUID-VkVideoDecodeH264DpbSlotInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkVideoDecodeH264DpbSlotInfoKHR-pStdReferenceInfo-parameter", - "text": " pStdReferenceInfo must be a valid pointer to a valid StdVideoDecodeH264ReferenceInfo value" + "text": "pStdReferenceInfo must be a valid pointer to a valid StdVideoDecodeH264ReferenceInfo value", + "page": "vkspec" } ] }, @@ -70598,7 +91034,8 @@ "core": [ { "vuid": "VUID-VkVideoDecodeH265ProfileInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_KHR", + "page": "vkspec" } ] }, @@ -70606,7 +91043,8 @@ "core": [ { "vuid": "VUID-VkVideoDecodeH265CapabilitiesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_KHR", + "page": "vkspec" } ] }, @@ -70614,11 +91052,13 @@ "core": [ { "vuid": "VUID-VkVideoDecodeH265SessionParametersCreateInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkVideoDecodeH265SessionParametersCreateInfoKHR-pParametersAddInfo-parameter", - "text": " If pParametersAddInfo is not NULL, pParametersAddInfo must be a valid pointer to a valid VkVideoDecodeH265SessionParametersAddInfoKHR structure" + "text": "If pParametersAddInfo is not NULL, pParametersAddInfo must be a valid pointer to a valid VkVideoDecodeH265SessionParametersAddInfoKHR structure", + "page": "vkspec" } ] }, @@ -70626,31 +91066,38 @@ "core": [ { "vuid": "VUID-VkVideoDecodeH265SessionParametersAddInfoKHR-None-04833", - "text": " The vps_video_parameter_set_id member of each StdVideoH265VideoParameterSet structure specified in the elements of pStdVPSs must be unique within pStdVPSs" + "text": "The vps_video_parameter_set_id member of each StdVideoH265VideoParameterSet structure specified in the elements of pStdVPSs must be unique within pStdVPSs", + "page": "vkspec" }, { "vuid": "VUID-VkVideoDecodeH265SessionParametersAddInfoKHR-None-04834", - "text": " The pair constructed from the sps_video_parameter_set_id and sps_seq_parameter_set_id members of each StdVideoH265SequenceParameterSet structure specified in the elements of pStdSPSs must be unique within pStdSPSs" + "text": "The pair constructed from the sps_video_parameter_set_id and sps_seq_parameter_set_id members of each StdVideoH265SequenceParameterSet structure specified in the elements of pStdSPSs must be unique within pStdSPSs", + "page": "vkspec" }, { "vuid": "VUID-VkVideoDecodeH265SessionParametersAddInfoKHR-None-04835", - "text": " The triplet constructed from the sps_video_parameter_set_id, pps_seq_parameter_set_id, and pps_pic_parameter_set_id members of each StdVideoH265PictureParameterSet structure specified in the elements of pStdPPSs must be unique within pStdPPSs" + "text": "The triplet constructed from the sps_video_parameter_set_id, pps_seq_parameter_set_id, and pps_pic_parameter_set_id members of each StdVideoH265PictureParameterSet structure specified in the elements of pStdPPSs must be unique within pStdPPSs", + "page": "vkspec" }, { "vuid": "VUID-VkVideoDecodeH265SessionParametersAddInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkVideoDecodeH265SessionParametersAddInfoKHR-pStdVPSs-parameter", - "text": " If stdVPSCount is not 0, pStdVPSs must be a valid pointer to an array of stdVPSCount StdVideoH265VideoParameterSet values" + "text": "If stdVPSCount is not 0, pStdVPSs must be a valid pointer to an array of stdVPSCount StdVideoH265VideoParameterSet values", + "page": "vkspec" }, { "vuid": "VUID-VkVideoDecodeH265SessionParametersAddInfoKHR-pStdSPSs-parameter", - "text": " If stdSPSCount is not 0, pStdSPSs must be a valid pointer to an array of stdSPSCount StdVideoH265SequenceParameterSet values" + "text": "If stdSPSCount is not 0, pStdSPSs must be a valid pointer to an array of stdSPSCount StdVideoH265SequenceParameterSet values", + "page": "vkspec" }, { "vuid": "VUID-VkVideoDecodeH265SessionParametersAddInfoKHR-pStdPPSs-parameter", - "text": " If stdPPSCount is not 0, pStdPPSs must be a valid pointer to an array of stdPPSCount StdVideoH265PictureParameterSet values" + "text": "If stdPPSCount is not 0, pStdPPSs must be a valid pointer to an array of stdPPSCount StdVideoH265PictureParameterSet values", + "page": "vkspec" } ] }, @@ -70658,19 +91105,23 @@ "core": [ { "vuid": "VUID-VkVideoDecodeH265PictureInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkVideoDecodeH265PictureInfoKHR-pStdPictureInfo-parameter", - "text": " pStdPictureInfo must be a valid pointer to a valid StdVideoDecodeH265PictureInfo value" + "text": "pStdPictureInfo must be a valid pointer to a valid StdVideoDecodeH265PictureInfo value", + "page": "vkspec" }, { "vuid": "VUID-VkVideoDecodeH265PictureInfoKHR-pSliceSegmentOffsets-parameter", - "text": " pSliceSegmentOffsets must be a valid pointer to an array of sliceSegmentCount uint32_t values" + "text": "pSliceSegmentOffsets must be a valid pointer to an array of sliceSegmentCount uint32_t values", + "page": "vkspec" }, { "vuid": "VUID-VkVideoDecodeH265PictureInfoKHR-sliceSegmentCount-arraylength", - "text": " sliceSegmentCount must be greater than 0" + "text": "sliceSegmentCount must be greater than 0", + "page": "vkspec" } ] }, @@ -70678,11 +91129,13 @@ "core": [ { "vuid": "VUID-VkVideoDecodeH265DpbSlotInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkVideoDecodeH265DpbSlotInfoKHR-pStdReferenceInfo-parameter", - "text": " pStdReferenceInfo must be a valid pointer to a valid StdVideoDecodeH265ReferenceInfo value" + "text": "pStdReferenceInfo must be a valid pointer to a valid StdVideoDecodeH265ReferenceInfo value", + "page": "vkspec" } ] }, @@ -70690,7 +91143,8 @@ "core": [ { "vuid": "VUID-VkVideoEncodeCapabilitiesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR", + "page": "vkspec" } ] }, @@ -70698,15 +91152,18 @@ "core": [ { "vuid": "VUID-vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": "physicalDevice must be a valid VkPhysicalDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR-pQualityLevelInfo-parameter", - "text": " pQualityLevelInfo must be a valid pointer to a valid VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR structure" + "text": "pQualityLevelInfo must be a valid pointer to a valid VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR-pQualityLevelProperties-parameter", - "text": " pQualityLevelProperties must be a valid pointer to a VkVideoEncodeQualityLevelPropertiesKHR structure" + "text": "pQualityLevelProperties must be a valid pointer to a VkVideoEncodeQualityLevelPropertiesKHR structure", + "page": "vkspec" } ] }, @@ -70714,15 +91171,18 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR-pVideoProfile-parameter", - "text": " pVideoProfile must be a valid pointer to a valid VkVideoProfileInfoKHR structure" + "text": "pVideoProfile must be a valid pointer to a valid VkVideoProfileInfoKHR structure", + "page": "vkspec" } ] }, @@ -70730,15 +91190,18 @@ "core": [ { "vuid": "VUID-VkVideoEncodeQualityLevelPropertiesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_PROPERTIES_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_PROPERTIES_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkVideoEncodeQualityLevelPropertiesKHR-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 VkVideoEncodeH264QualityLevelPropertiesEXT or VkVideoEncodeH265QualityLevelPropertiesEXT" + "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 VkVideoEncodeH264QualityLevelPropertiesEXT or VkVideoEncodeH265QualityLevelPropertiesEXT", + "page": "vkspec" }, { "vuid": "VUID-VkVideoEncodeQualityLevelPropertiesKHR-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" } ] }, @@ -70746,7 +91209,8 @@ "core": [ { "vuid": "VUID-VkVideoEncodeQualityLevelInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR", + "page": "vkspec" } ] }, @@ -70754,23 +91218,28 @@ "core": [ { "vuid": "VUID-vkGetEncodedVideoSessionParametersKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetEncodedVideoSessionParametersKHR-pVideoSessionParametersInfo-parameter", - "text": " pVideoSessionParametersInfo must be a valid pointer to a valid VkVideoEncodeSessionParametersGetInfoKHR structure" + "text": "pVideoSessionParametersInfo must be a valid pointer to a valid VkVideoEncodeSessionParametersGetInfoKHR structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetEncodedVideoSessionParametersKHR-pFeedbackInfo-parameter", - "text": " If pFeedbackInfo is not NULL, pFeedbackInfo must be a valid pointer to a VkVideoEncodeSessionParametersFeedbackInfoKHR structure" + "text": "If pFeedbackInfo is not NULL, pFeedbackInfo must be a valid pointer to a VkVideoEncodeSessionParametersFeedbackInfoKHR structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetEncodedVideoSessionParametersKHR-pDataSize-parameter", - "text": " pDataSize must be a valid pointer to a size_t value" + "text": "pDataSize must be a valid pointer to a size_t value", + "page": "vkspec" }, { "vuid": "VUID-vkGetEncodedVideoSessionParametersKHR-pData-parameter", - "text": " If the value referenced by pDataSize is not 0, and pData is not NULL, pData must be a valid pointer to an array of pDataSize bytes" + "text": "If the value referenced by pDataSize is not 0, and pData is not NULL, pData must be a valid pointer to an array of pDataSize bytes", + "page": "vkspec" } ] }, @@ -70778,19 +91247,23 @@ "core": [ { "vuid": "VUID-VkVideoEncodeSessionParametersGetInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_GET_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_GET_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkVideoEncodeSessionParametersGetInfoKHR-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 VkVideoEncodeH264SessionParametersGetInfoEXT or VkVideoEncodeH265SessionParametersGetInfoEXT" + "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 VkVideoEncodeH264SessionParametersGetInfoEXT or VkVideoEncodeH265SessionParametersGetInfoEXT", + "page": "vkspec" }, { "vuid": "VUID-VkVideoEncodeSessionParametersGetInfoKHR-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" }, { "vuid": "VUID-VkVideoEncodeSessionParametersGetInfoKHR-videoSessionParameters-parameter", - "text": " videoSessionParameters must be a valid VkVideoSessionParametersKHR handle" + "text": "videoSessionParameters must be a valid VkVideoSessionParametersKHR handle", + "page": "vkspec" } ] }, @@ -70798,15 +91271,18 @@ "core": [ { "vuid": "VUID-VkVideoEncodeSessionParametersFeedbackInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_FEEDBACK_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_FEEDBACK_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkVideoEncodeSessionParametersFeedbackInfoKHR-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 VkVideoEncodeH264SessionParametersFeedbackInfoEXT or VkVideoEncodeH265SessionParametersFeedbackInfoEXT" + "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 VkVideoEncodeH264SessionParametersFeedbackInfoEXT or VkVideoEncodeH265SessionParametersFeedbackInfoEXT", + "page": "vkspec" }, { "vuid": "VUID-VkVideoEncodeSessionParametersFeedbackInfoKHR-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" } ] }, @@ -70814,35 +91290,43 @@ "core": [ { "vuid": "VUID-vkCmdEncodeVideoKHR-opCount-07174", - "text": " For each active query, the active query index corresponding to the query type of that query plus opCount must be less than or equal to the last activatable query index corresponding to the query type of that query plus one" + "text": "For each active query, the active query index corresponding to the query type of that query plus opCount must be less than or equal to the last activatable query index corresponding to the query type of that query plus one", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEncodeVideoKHR-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEncodeVideoKHR-pEncodeInfo-parameter", - "text": " pEncodeInfo must be a valid pointer to a valid VkVideoEncodeInfoKHR structure" + "text": "pEncodeInfo must be a valid pointer to a valid VkVideoEncodeInfoKHR structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEncodeVideoKHR-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEncodeVideoKHR-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support encode operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support encode operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEncodeVideoKHR-renderpass", - "text": " This command must only be called outside of a render pass instance" + "text": "This command must only be called outside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEncodeVideoKHR-videocoding", - "text": " This command must only be called inside of a video coding scope" + "text": "This command must only be called inside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEncodeVideoKHR-bufferlevel", - "text": " commandBuffer must be a primary VkCommandBuffer" + "text": "commandBuffer must be a primary VkCommandBuffer", + "page": "vkspec" } ] }, @@ -70850,39 +91334,48 @@ "core": [ { "vuid": "VUID-VkVideoEncodeInfoKHR-None-07012", - "text": " The bound video session must not be in uninitialized state at the time the command is executed on the device" + "text": "The bound video session must not be in uninitialized state at the time the command is executed on the device", + "page": "vkspec" }, { "vuid": "VUID-VkVideoEncodeInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkVideoEncodeInfoKHR-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 VkVideoEncodeH264PictureInfoEXT or VkVideoEncodeH265PictureInfoEXT" + "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 VkVideoEncodeH264PictureInfoEXT or VkVideoEncodeH265PictureInfoEXT", + "page": "vkspec" }, { "vuid": "VUID-VkVideoEncodeInfoKHR-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" }, { "vuid": "VUID-VkVideoEncodeInfoKHR-flags-zerobitmask", - "text": " flags must be 0" + "text": "flags must be 0", + "page": "vkspec" }, { "vuid": "VUID-VkVideoEncodeInfoKHR-dstBuffer-parameter", - "text": " dstBuffer must be a valid VkBuffer handle" + "text": "dstBuffer must be a valid VkBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-VkVideoEncodeInfoKHR-srcPictureResource-parameter", - "text": " srcPictureResource must be a valid VkVideoPictureResourceInfoKHR structure" + "text": "srcPictureResource must be a valid VkVideoPictureResourceInfoKHR structure", + "page": "vkspec" }, { "vuid": "VUID-VkVideoEncodeInfoKHR-pSetupReferenceSlot-parameter", - "text": " If pSetupReferenceSlot is not NULL, pSetupReferenceSlot must be a valid pointer to a valid VkVideoReferenceSlotInfoKHR structure" + "text": "If pSetupReferenceSlot is not NULL, pSetupReferenceSlot must be a valid pointer to a valid VkVideoReferenceSlotInfoKHR structure", + "page": "vkspec" }, { "vuid": "VUID-VkVideoEncodeInfoKHR-pReferenceSlots-parameter", - "text": " If referenceSlotCount is not 0, pReferenceSlots must be a valid pointer to an array of referenceSlotCount valid VkVideoReferenceSlotInfoKHR structures" + "text": "If referenceSlotCount is not 0, pReferenceSlots must be a valid pointer to an array of referenceSlotCount valid VkVideoReferenceSlotInfoKHR structures", + "page": "vkspec" } ] }, @@ -70890,19 +91383,23 @@ "core": [ { "vuid": "VUID-VkVideoEncodeRateControlInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkVideoEncodeRateControlInfoKHR-flags-zerobitmask", - "text": " flags must be 0" + "text": "flags must be 0", + "page": "vkspec" }, { "vuid": "VUID-VkVideoEncodeRateControlInfoKHR-rateControlMode-parameter", - "text": " If rateControlMode is not 0, rateControlMode must be a valid VkVideoEncodeRateControlModeFlagBitsKHR value" + "text": "If rateControlMode is not 0, rateControlMode must be a valid VkVideoEncodeRateControlModeFlagBitsKHR value", + "page": "vkspec" }, { "vuid": "VUID-VkVideoEncodeRateControlInfoKHR-pLayers-parameter", - "text": " If layerCount is not 0, pLayers must be a valid pointer to an array of layerCount valid VkVideoEncodeRateControlLayerInfoKHR structures" + "text": "If layerCount is not 0, pLayers must be a valid pointer to an array of layerCount valid VkVideoEncodeRateControlLayerInfoKHR structures", + "page": "vkspec" } ] }, @@ -70910,15 +91407,18 @@ "core": [ { "vuid": "VUID-VkVideoEncodeRateControlLayerInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkVideoEncodeRateControlLayerInfoKHR-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 VkVideoEncodeH264RateControlLayerInfoEXT or VkVideoEncodeH265RateControlLayerInfoEXT" + "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 VkVideoEncodeH264RateControlLayerInfoEXT or VkVideoEncodeH265RateControlLayerInfoEXT", + "page": "vkspec" }, { "vuid": "VUID-VkVideoEncodeRateControlLayerInfoKHR-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" } ] }, @@ -70926,7 +91426,8 @@ "core": [ { "vuid": "VUID-VkVideoEncodeH264ProfileInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_INFO_EXT", + "page": "vkspec" } ] }, @@ -70934,7 +91435,8 @@ "core": [ { "vuid": "VUID-VkVideoEncodeH264CapabilitiesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT", + "page": "vkspec" } ] }, @@ -70942,7 +91444,8 @@ "core": [ { "vuid": "VUID-VkVideoEncodeH264QualityLevelPropertiesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_QUALITY_LEVEL_PROPERTIES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_QUALITY_LEVEL_PROPERTIES_EXT", + "page": "vkspec" } ] }, @@ -70950,7 +91453,8 @@ "core": [ { "vuid": "VUID-VkVideoEncodeH264SessionCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_EXT", + "page": "vkspec" } ] }, @@ -70958,11 +91462,13 @@ "core": [ { "vuid": "VUID-VkVideoEncodeH264SessionParametersCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkVideoEncodeH264SessionParametersCreateInfoEXT-pParametersAddInfo-parameter", - "text": " If pParametersAddInfo is not NULL, pParametersAddInfo must be a valid pointer to a valid VkVideoEncodeH264SessionParametersAddInfoEXT structure" + "text": "If pParametersAddInfo is not NULL, pParametersAddInfo must be a valid pointer to a valid VkVideoEncodeH264SessionParametersAddInfoEXT structure", + "page": "vkspec" } ] }, @@ -70970,51 +91476,53 @@ "core": [ { "vuid": "VUID-VkVideoEncodeH264SessionParametersAddInfoEXT-stdSPSCount-04837", - "text": " The values of stdSPSCount and stdPPSCount must be less than or equal to the values of maxStdSPSCount and maxStdPPSCount, respectively" + "text": "The values of stdSPSCount and stdPPSCount must be less than or equal to the values of maxStdSPSCount and maxStdPPSCount, respectively", + "page": "vkspec" }, { "vuid": "VUID-VkVideoEncodeH264SessionParametersAddInfoEXT-maxStdSPSCount-04838", - "text": " When the maxStdSPSCount number of parameters of type StdVideoH264SequenceParameterSet in the Video Session Parameters object is reached, no additional parameters of that type can be added to the object. VK_ERROR_TOO_MANY_OBJECTS will be returned if an attempt is made to add additional data to this object at this point" + "text": "When the maxStdSPSCount number of parameters of type StdVideoH264SequenceParameterSet in the Video Session Parameters object is reached, no additional parameters of that type can be added to the object. VK_ERROR_TOO_MANY_OBJECTS will be returned if an attempt is made to add additional data to this object at this point", + "page": "vkspec" }, { "vuid": "VUID-VkVideoEncodeH264SessionParametersAddInfoEXT-maxStdPPSCount-04839", - "text": " When the maxStdPPSCount number of parameters of type StdVideoH264PictureParameterSet in the Video Session Parameters object is reached, no additional parameters of that type can be added to the object. VK_ERROR_TOO_MANY_OBJECTS will be returned if an attempt is made to add additional data to this object at this point" + "text": "When the maxStdPPSCount number of parameters of type StdVideoH264PictureParameterSet in the Video Session Parameters object is reached, no additional parameters of that type can be added to the object. VK_ERROR_TOO_MANY_OBJECTS will be returned if an attempt is made to add additional data to this object at this point", + "page": "vkspec" }, { "vuid": "VUID-VkVideoEncodeH264SessionParametersAddInfoEXT-None-04840", - "text": " Each entry to be added must have a unique, to the rest of the parameter array entries and the existing parameters in the Video Session Parameters Object that is being updated, SPS-PPS IDs" + "text": "Each entry to be added must have a unique, to the rest of the parameter array entries and the existing parameters in the Video Session Parameters Object that is being updated, SPS-PPS IDs", + "page": "vkspec" }, { "vuid": "VUID-VkVideoEncodeH264SessionParametersAddInfoEXT-None-04841", - "text": " Parameter entries that already exist in Video Session Parameters object with a particular SPS-PPS IDs cannot be replaced nor updated" + "text": "Parameter entries that already exist in Video Session Parameters object with a particular SPS-PPS IDs cannot be replaced nor updated", + "page": "vkspec" }, { "vuid": "VUID-VkVideoEncodeH264SessionParametersAddInfoEXT-None-04842", - "text": " When creating a new object using a Video Session Parameters as a template, the array’s parameters with the same SPS-PPS IDs as the ones from the template take precedence" + "text": "When creating a new object using a Video Session Parameters as a template, the array’s parameters with the same SPS-PPS IDs as the ones from the template take precedence", + "page": "vkspec" }, { "vuid": "VUID-VkVideoEncodeH264SessionParametersAddInfoEXT-None-04843", - "text": " SPS/PPS parameters must comply with the limits specified in VkVideoSessionCreateInfoKHR during Video Session creation" + "text": "SPS/PPS parameters must comply with the limits specified in VkVideoSessionCreateInfoKHR during Video Session creation", + "page": "vkspec" }, { "vuid": "VUID-VkVideoEncodeH264SessionParametersAddInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkVideoEncodeH264SessionParametersAddInfoEXT-pStdSPSs-parameter", - "text": " If pStdSPSs is not NULL, pStdSPSs must be a valid pointer to an array of stdSPSCount StdVideoH264SequenceParameterSet values" + "text": "If stdSPSCount is not 0, and pStdSPSs is not NULL, pStdSPSs must be a valid pointer to an array of stdSPSCount StdVideoH264SequenceParameterSet values", + "page": "vkspec" }, { "vuid": "VUID-VkVideoEncodeH264SessionParametersAddInfoEXT-pStdPPSs-parameter", - "text": " If pStdPPSs is not NULL, pStdPPSs must be a valid pointer to an array of stdPPSCount StdVideoH264PictureParameterSet values" - }, - { - "vuid": "VUID-VkVideoEncodeH264SessionParametersAddInfoEXT-stdSPSCount-arraylength", - "text": " stdSPSCount must be greater than 0" - }, - { - "vuid": "VUID-VkVideoEncodeH264SessionParametersAddInfoEXT-stdPPSCount-arraylength", - "text": " stdPPSCount must be greater than 0" + "text": "If stdPPSCount is not 0, and pStdPPSs is not NULL, pStdPPSs must be a valid pointer to an array of stdPPSCount StdVideoH264PictureParameterSet values", + "page": "vkspec" } ] }, @@ -71022,7 +91530,8 @@ "core": [ { "vuid": "VUID-VkVideoEncodeH264SessionParametersGetInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_GET_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_GET_INFO_EXT", + "page": "vkspec" } ] }, @@ -71030,7 +91539,8 @@ "core": [ { "vuid": "VUID-VkVideoEncodeH264SessionParametersFeedbackInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_FEEDBACK_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_FEEDBACK_INFO_EXT", + "page": "vkspec" } ] }, @@ -71038,19 +91548,23 @@ "core": [ { "vuid": "VUID-VkVideoEncodeH264PictureInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PICTURE_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PICTURE_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkVideoEncodeH264PictureInfoEXT-pNaluSliceEntries-parameter", - "text": " pNaluSliceEntries must be a valid pointer to an array of naluSliceEntryCount valid VkVideoEncodeH264NaluSliceInfoEXT structures" + "text": "pNaluSliceEntries must be a valid pointer to an array of naluSliceEntryCount valid VkVideoEncodeH264NaluSliceInfoEXT structures", + "page": "vkspec" }, { "vuid": "VUID-VkVideoEncodeH264PictureInfoEXT-pStdPictureInfo-parameter", - "text": " pStdPictureInfo must be a valid pointer to a valid StdVideoEncodeH264PictureInfo value" + "text": "pStdPictureInfo must be a valid pointer to a valid StdVideoEncodeH264PictureInfo value", + "page": "vkspec" }, { "vuid": "VUID-VkVideoEncodeH264PictureInfoEXT-naluSliceEntryCount-arraylength", - "text": " naluSliceEntryCount must be greater than 0" + "text": "naluSliceEntryCount must be greater than 0", + "page": "vkspec" } ] }, @@ -71058,15 +91572,18 @@ "core": [ { "vuid": "VUID-VkVideoEncodeH264NaluSliceInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkVideoEncodeH264NaluSliceInfoEXT-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkVideoEncodeH264NaluSliceInfoEXT-pStdSliceHeader-parameter", - "text": " pStdSliceHeader must be a valid pointer to a valid StdVideoEncodeH264SliceHeader value" + "text": "pStdSliceHeader must be a valid pointer to a valid StdVideoEncodeH264SliceHeader value", + "page": "vkspec" } ] }, @@ -71074,11 +91591,13 @@ "core": [ { "vuid": "VUID-VkVideoEncodeH264DpbSlotInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkVideoEncodeH264DpbSlotInfoEXT-pStdReferenceInfo-parameter", - "text": " pStdReferenceInfo must be a valid pointer to a valid StdVideoEncodeH264ReferenceInfo value" + "text": "pStdReferenceInfo must be a valid pointer to a valid StdVideoEncodeH264ReferenceInfo value", + "page": "vkspec" } ] }, @@ -71086,15 +91605,13 @@ "core": [ { "vuid": "VUID-VkVideoEncodeH264RateControlInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkVideoEncodeH264RateControlInfoEXT-flags-parameter", - "text": " flags must be a valid combination of VkVideoEncodeH264RateControlFlagBitsEXT values" - }, - { - "vuid": "VUID-VkVideoEncodeH264RateControlInfoEXT-flags-requiredbitmask", - "text": " flags must not be 0" + "text": "flags must be a valid combination of VkVideoEncodeH264RateControlFlagBitsEXT values", + "page": "vkspec" } ] }, @@ -71102,19 +91619,23 @@ "core": [ { "vuid": "VUID-VkVideoEncodeH264RateControlLayerInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkVideoEncodeH264RateControlLayerInfoEXT-minQp-parameter", - "text": " minQp must be a valid VkVideoEncodeH264QpEXT structure" + "text": "minQp must be a valid VkVideoEncodeH264QpEXT structure", + "page": "vkspec" }, { "vuid": "VUID-VkVideoEncodeH264RateControlLayerInfoEXT-maxQp-parameter", - "text": " maxQp must be a valid VkVideoEncodeH264QpEXT structure" + "text": "maxQp must be a valid VkVideoEncodeH264QpEXT structure", + "page": "vkspec" }, { "vuid": "VUID-VkVideoEncodeH264RateControlLayerInfoEXT-maxFrameSize-parameter", - "text": " maxFrameSize must be a valid VkVideoEncodeH264FrameSizeEXT structure" + "text": "maxFrameSize must be a valid VkVideoEncodeH264FrameSizeEXT structure", + "page": "vkspec" } ] }, @@ -71122,7 +91643,8 @@ "core": [ { "vuid": "VUID-VkVideoEncodeH264GopRemainingFrameInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_GOP_REMAINING_FRAME_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_GOP_REMAINING_FRAME_INFO_EXT", + "page": "vkspec" } ] }, @@ -71130,7 +91652,8 @@ "core": [ { "vuid": "VUID-VkVideoEncodeH265ProfileInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_EXT", + "page": "vkspec" } ] }, @@ -71138,7 +91661,8 @@ "core": [ { "vuid": "VUID-VkVideoEncodeH265CapabilitiesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT", + "page": "vkspec" } ] }, @@ -71146,7 +91670,8 @@ "core": [ { "vuid": "VUID-VkVideoEncodeH265QualityLevelPropertiesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_QUALITY_LEVEL_PROPERTIES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_QUALITY_LEVEL_PROPERTIES_EXT", + "page": "vkspec" } ] }, @@ -71154,7 +91679,8 @@ "core": [ { "vuid": "VUID-VkVideoEncodeH265SessionCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_CREATE_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_CREATE_INFO_EXT", + "page": "vkspec" } ] }, @@ -71162,11 +91688,13 @@ "core": [ { "vuid": "VUID-VkVideoEncodeH265SessionParametersCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkVideoEncodeH265SessionParametersCreateInfoEXT-pParametersAddInfo-parameter", - "text": " If pParametersAddInfo is not NULL, pParametersAddInfo must be a valid pointer to a valid VkVideoEncodeH265SessionParametersAddInfoEXT structure" + "text": "If pParametersAddInfo is not NULL, pParametersAddInfo must be a valid pointer to a valid VkVideoEncodeH265SessionParametersAddInfoEXT structure", + "page": "vkspec" } ] }, @@ -71174,63 +91702,63 @@ "core": [ { "vuid": "VUID-VkVideoEncodeH265SessionParametersAddInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkVideoEncodeH265SessionParametersAddInfoEXT-pStdVPSs-parameter", - "text": " If pStdVPSs is not NULL, pStdVPSs must be a valid pointer to an array of stdVPSCount StdVideoH265VideoParameterSet values" + "text": "If stdVPSCount is not 0, and pStdVPSs is not NULL, pStdVPSs must be a valid pointer to an array of stdVPSCount StdVideoH265VideoParameterSet values", + "page": "vkspec" }, { "vuid": "VUID-VkVideoEncodeH265SessionParametersAddInfoEXT-pStdSPSs-parameter", - "text": " If pStdSPSs is not NULL, pStdSPSs must be a valid pointer to an array of stdSPSCount StdVideoH265SequenceParameterSet values" + "text": "If stdSPSCount is not 0, and pStdSPSs is not NULL, pStdSPSs must be a valid pointer to an array of stdSPSCount StdVideoH265SequenceParameterSet values", + "page": "vkspec" }, { "vuid": "VUID-VkVideoEncodeH265SessionParametersAddInfoEXT-pStdPPSs-parameter", - "text": " If pStdPPSs is not NULL, pStdPPSs must be a valid pointer to an array of stdPPSCount StdVideoH265PictureParameterSet values" - }, - { - "vuid": "VUID-VkVideoEncodeH265SessionParametersAddInfoEXT-stdVPSCount-arraylength", - "text": " stdVPSCount must be greater than 0" - }, - { - "vuid": "VUID-VkVideoEncodeH265SessionParametersAddInfoEXT-stdSPSCount-arraylength", - "text": " stdSPSCount must be greater than 0" - }, - { - "vuid": "VUID-VkVideoEncodeH265SessionParametersAddInfoEXT-stdPPSCount-arraylength", - "text": " stdPPSCount must be greater than 0" + "text": "If stdPPSCount is not 0, and pStdPPSs is not NULL, pStdPPSs must be a valid pointer to an array of stdPPSCount StdVideoH265PictureParameterSet values", + "page": "vkspec" }, { "vuid": "VUID-VkVideoEncodeH265SessionParametersAddInfoEXT-stdVPSCount-06438", - "text": " The values of stdVPSCount, stdSPSCount and stdPPSCount must be less than or equal to the values of VkVideoEncodeH265SessionParametersCreateInfoEXT::maxStdVPSCount, VkVideoEncodeH265SessionParametersCreateInfoEXT:maxStdSPSCount, and VkVideoEncodeH265SessionParametersCreateInfoEXT:maxStdPPSCount, respectively" + "text": "The values of stdVPSCount, stdSPSCount and stdPPSCount must be less than or equal to the values of VkVideoEncodeH265SessionParametersCreateInfoEXT::maxStdVPSCount, VkVideoEncodeH265SessionParametersCreateInfoEXT:maxStdSPSCount, and VkVideoEncodeH265SessionParametersCreateInfoEXT:maxStdPPSCount, respectively", + "page": "vkspec" }, { "vuid": "VUID-VkVideoEncodeH265SessionParametersAddInfoEXT-pStdVPSs-06439", - "text": " Each StdVideoH265VideoParameterSet entry in pStdVPSs must have a unique H.265 VPS ID" + "text": "Each StdVideoH265VideoParameterSet entry in pStdVPSs must have a unique H.265 VPS ID", + "page": "vkspec" }, { "vuid": "VUID-VkVideoEncodeH265SessionParametersAddInfoEXT-pStdSPSs-06440", - "text": " Each StdVideoH265SequenceParameterSet entry in pStdSPSs must have a unique H.265 VPS-SPS ID pair" + "text": "Each StdVideoH265SequenceParameterSet entry in pStdSPSs must have a unique H.265 VPS-SPS ID pair", + "page": "vkspec" }, { "vuid": "VUID-VkVideoEncodeH265SessionParametersAddInfoEXT-pStdPPSs-06441", - "text": " Each StdVideoH265PictureParameterSet entry in pStdPPSs must have a unique H.265 VPS-SPS-PPS ID tuple" + "text": "Each StdVideoH265PictureParameterSet entry in pStdPPSs must have a unique H.265 VPS-SPS-PPS ID tuple", + "page": "vkspec" }, { "vuid": "VUID-VkVideoEncodeH265SessionParametersAddInfoEXT-None-06442", - "text": " Each entry to be added must have a unique, to the rest of the parameter array entries and the existing parameters in the Video Session Parameters Object that is being updated, VPS-SPS-PPS IDs" + "text": "Each entry to be added must have a unique, to the rest of the parameter array entries and the existing parameters in the Video Session Parameters Object that is being updated, VPS-SPS-PPS IDs", + "page": "vkspec" }, { "vuid": "VUID-VkVideoEncodeH265SessionParametersAddInfoEXT-None-06443", - "text": " Parameter entries that already exist in Video Session Parameters object with a particular VPS-SPS-PPS IDs must not be replaced nor updated" + "text": "Parameter entries that already exist in Video Session Parameters object with a particular VPS-SPS-PPS IDs must not be replaced nor updated", + "page": "vkspec" }, { "vuid": "VUID-VkVideoEncodeH265SessionParametersAddInfoEXT-None-06444", - "text": " When creating a new object using a Video Session Parameters as a template, the array’s parameters with the same VPS-SPS-PPS IDs as the ones from the template take precedence" + "text": "When creating a new object using a Video Session Parameters as a template, the array’s parameters with the same VPS-SPS-PPS IDs as the ones from the template take precedence", + "page": "vkspec" }, { "vuid": "VUID-VkVideoEncodeH265SessionParametersAddInfoEXT-None-06445", - "text": " VPS/SPS/PPS parameters must comply with the limits specified in VkVideoSessionCreateInfoKHR during Video Session creation" + "text": "VPS/SPS/PPS parameters must comply with the limits specified in VkVideoSessionCreateInfoKHR during Video Session creation", + "page": "vkspec" } ] }, @@ -71238,7 +91766,8 @@ "core": [ { "vuid": "VUID-VkVideoEncodeH265SessionParametersGetInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_GET_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_GET_INFO_EXT", + "page": "vkspec" } ] }, @@ -71246,7 +91775,8 @@ "core": [ { "vuid": "VUID-VkVideoEncodeH265SessionParametersFeedbackInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_FEEDBACK_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_FEEDBACK_INFO_EXT", + "page": "vkspec" } ] }, @@ -71254,19 +91784,23 @@ "core": [ { "vuid": "VUID-VkVideoEncodeH265PictureInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PICTURE_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PICTURE_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkVideoEncodeH265PictureInfoEXT-pNaluSliceSegmentEntries-parameter", - "text": " pNaluSliceSegmentEntries must be a valid pointer to an array of naluSliceSegmentEntryCount valid VkVideoEncodeH265NaluSliceSegmentInfoEXT structures" + "text": "pNaluSliceSegmentEntries must be a valid pointer to an array of naluSliceSegmentEntryCount valid VkVideoEncodeH265NaluSliceSegmentInfoEXT structures", + "page": "vkspec" }, { "vuid": "VUID-VkVideoEncodeH265PictureInfoEXT-pStdPictureInfo-parameter", - "text": " pStdPictureInfo must be a valid pointer to a valid StdVideoEncodeH265PictureInfo value" + "text": "pStdPictureInfo must be a valid pointer to a valid StdVideoEncodeH265PictureInfo value", + "page": "vkspec" }, { "vuid": "VUID-VkVideoEncodeH265PictureInfoEXT-naluSliceSegmentEntryCount-arraylength", - "text": " naluSliceSegmentEntryCount must be greater than 0" + "text": "naluSliceSegmentEntryCount must be greater than 0", + "page": "vkspec" } ] }, @@ -71274,15 +91808,18 @@ "core": [ { "vuid": "VUID-VkVideoEncodeH265NaluSliceSegmentInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkVideoEncodeH265NaluSliceSegmentInfoEXT-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkVideoEncodeH265NaluSliceSegmentInfoEXT-pStdSliceSegmentHeader-parameter", - "text": " pStdSliceSegmentHeader must be a valid pointer to a valid StdVideoEncodeH265SliceSegmentHeader value" + "text": "pStdSliceSegmentHeader must be a valid pointer to a valid StdVideoEncodeH265SliceSegmentHeader value", + "page": "vkspec" } ] }, @@ -71290,11 +91827,13 @@ "core": [ { "vuid": "VUID-VkVideoEncodeH265DpbSlotInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkVideoEncodeH265DpbSlotInfoEXT-pStdReferenceInfo-parameter", - "text": " pStdReferenceInfo must be a valid pointer to a valid StdVideoEncodeH265ReferenceInfo value" + "text": "pStdReferenceInfo must be a valid pointer to a valid StdVideoEncodeH265ReferenceInfo value", + "page": "vkspec" } ] }, @@ -71302,15 +91841,13 @@ "core": [ { "vuid": "VUID-VkVideoEncodeH265RateControlInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkVideoEncodeH265RateControlInfoEXT-flags-parameter", - "text": " flags must be a valid combination of VkVideoEncodeH265RateControlFlagBitsEXT values" - }, - { - "vuid": "VUID-VkVideoEncodeH265RateControlInfoEXT-flags-requiredbitmask", - "text": " flags must not be 0" + "text": "flags must be a valid combination of VkVideoEncodeH265RateControlFlagBitsEXT values", + "page": "vkspec" } ] }, @@ -71318,19 +91855,23 @@ "core": [ { "vuid": "VUID-VkVideoEncodeH265RateControlLayerInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkVideoEncodeH265RateControlLayerInfoEXT-minQp-parameter", - "text": " minQp must be a valid VkVideoEncodeH265QpEXT structure" + "text": "minQp must be a valid VkVideoEncodeH265QpEXT structure", + "page": "vkspec" }, { "vuid": "VUID-VkVideoEncodeH265RateControlLayerInfoEXT-maxQp-parameter", - "text": " maxQp must be a valid VkVideoEncodeH265QpEXT structure" + "text": "maxQp must be a valid VkVideoEncodeH265QpEXT structure", + "page": "vkspec" }, { "vuid": "VUID-VkVideoEncodeH265RateControlLayerInfoEXT-maxFrameSize-parameter", - "text": " maxFrameSize must be a valid VkVideoEncodeH265FrameSizeEXT structure" + "text": "maxFrameSize must be a valid VkVideoEncodeH265FrameSizeEXT structure", + "page": "vkspec" } ] }, @@ -71338,7 +91879,8 @@ "core": [ { "vuid": "VUID-VkVideoEncodeH265GopRemainingFrameInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_GOP_REMAINING_FRAME_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_GOP_REMAINING_FRAME_INFO_EXT", + "page": "vkspec" } ] }, @@ -71346,19 +91888,23 @@ "core": [ { "vuid": "VUID-vkGetPhysicalDeviceOpticalFlowImageFormatsNV-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": "physicalDevice must be a valid VkPhysicalDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceOpticalFlowImageFormatsNV-pOpticalFlowImageFormatInfo-parameter", - "text": " pOpticalFlowImageFormatInfo must be a valid pointer to a valid VkOpticalFlowImageFormatInfoNV structure" + "text": "pOpticalFlowImageFormatInfo must be a valid pointer to a valid VkOpticalFlowImageFormatInfoNV structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceOpticalFlowImageFormatsNV-pFormatCount-parameter", - "text": " pFormatCount must be a valid pointer to a uint32_t value" + "text": "pFormatCount must be a valid pointer to a uint32_t value", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceOpticalFlowImageFormatsNV-pImageFormatProperties-parameter", - "text": " If the value referenced by pFormatCount is not 0, and pImageFormatProperties is not NULL, pImageFormatProperties must be a valid pointer to an array of pFormatCount VkOpticalFlowImageFormatPropertiesNV structures" + "text": "If the value referenced by pFormatCount is not 0, and pImageFormatProperties is not NULL, pImageFormatProperties must be a valid pointer to an array of pFormatCount VkOpticalFlowImageFormatPropertiesNV structures", + "page": "vkspec" } ] }, @@ -71366,15 +91912,18 @@ "core": [ { "vuid": "VUID-VkOpticalFlowImageFormatInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV" + "text": "sType must be VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV", + "page": "vkspec" }, { "vuid": "VUID-VkOpticalFlowImageFormatInfoNV-usage-parameter", - "text": " usage must be a valid combination of VkOpticalFlowUsageFlagBitsNV values" + "text": "usage must be a valid combination of VkOpticalFlowUsageFlagBitsNV values", + "page": "vkspec" }, { "vuid": "VUID-VkOpticalFlowImageFormatInfoNV-usage-requiredbitmask", - "text": " usage must not be 0" + "text": "usage must not be 0", + "page": "vkspec" } ] }, @@ -71382,11 +91931,13 @@ "core": [ { "vuid": "VUID-VkOpticalFlowImageFormatPropertiesNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV" + "text": "sType must be VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV", + "page": "vkspec" }, { "vuid": "VUID-VkOpticalFlowImageFormatPropertiesNV-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" } ] }, @@ -71394,19 +91945,23 @@ "core": [ { "vuid": "VUID-vkCreateOpticalFlowSessionNV-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkCreateOpticalFlowSessionNV-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkOpticalFlowSessionCreateInfoNV structure" + "text": "pCreateInfo must be a valid pointer to a valid VkOpticalFlowSessionCreateInfoNV structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateOpticalFlowSessionNV-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateOpticalFlowSessionNV-pSession-parameter", - "text": " pSession must be a valid pointer to a VkOpticalFlowSessionNV handle" + "text": "pSession must be a valid pointer to a VkOpticalFlowSessionNV handle", + "page": "vkspec" } ] }, @@ -71414,95 +91969,118 @@ "core": [ { "vuid": "VUID-VkOpticalFlowSessionCreateInfoNV-width-07581", - "text": " width must be greater than or equal to VkPhysicalDeviceOpticalFlowPropertiesNV::minWidth and less than or equal to VkPhysicalDeviceOpticalFlowPropertiesNV::maxWidth" + "text": "width must be greater than or equal to VkPhysicalDeviceOpticalFlowPropertiesNV::minWidth and less than or equal to VkPhysicalDeviceOpticalFlowPropertiesNV::maxWidth", + "page": "vkspec" }, { "vuid": "VUID-VkOpticalFlowSessionCreateInfoNV-height-07582", - "text": " height must be greater than or equal to VkPhysicalDeviceOpticalFlowPropertiesNV::minHeight and less than or equal to VkPhysicalDeviceOpticalFlowPropertiesNV::maxHeight" + "text": "height must be greater than or equal to VkPhysicalDeviceOpticalFlowPropertiesNV::minHeight and less than or equal to VkPhysicalDeviceOpticalFlowPropertiesNV::maxHeight", + "page": "vkspec" }, { "vuid": "VUID-VkOpticalFlowSessionCreateInfoNV-imageFormat-07583", - "text": " imageFormat must be one of the formats returned by vkGetPhysicalDeviceOpticalFlowImageFormatsNV for VK_OPTICAL_FLOW_USAGE_INPUT_BIT_NV" + "text": "imageFormat must be one of the formats returned by vkGetPhysicalDeviceOpticalFlowImageFormatsNV for VK_OPTICAL_FLOW_USAGE_INPUT_BIT_NV", + "page": "vkspec" }, { "vuid": "VUID-VkOpticalFlowSessionCreateInfoNV-flowVectorFormat-07584", - "text": " flowVectorFormat must be one of the formats returned by vkGetPhysicalDeviceOpticalFlowImageFormatsNV for VK_OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV" + "text": "flowVectorFormat must be one of the formats returned by vkGetPhysicalDeviceOpticalFlowImageFormatsNV for VK_OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV", + "page": "vkspec" }, { "vuid": "VUID-VkOpticalFlowSessionCreateInfoNV-costFormat-07585", - "text": " costFormat must be one of the formats returned by vkGetPhysicalDeviceOpticalFlowImageFormatsNV for VK_OPTICAL_FLOW_USAGE_COST_BIT_NV if VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV is set in flags" + "text": "costFormat must be one of the formats returned by vkGetPhysicalDeviceOpticalFlowImageFormatsNV for VK_OPTICAL_FLOW_USAGE_COST_BIT_NV if VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV is set in flags", + "page": "vkspec" }, { "vuid": "VUID-VkOpticalFlowSessionCreateInfoNV-outputGridSize-07586", - "text": " outputGridSize must be exactly one of the bits reported in VkPhysicalDeviceOpticalFlowPropertiesNV::supportedOutputGridSizes" + "text": "outputGridSize must be exactly one of the bits reported in VkPhysicalDeviceOpticalFlowPropertiesNV::supportedOutputGridSizes", + "page": "vkspec" }, { "vuid": "VUID-VkOpticalFlowSessionCreateInfoNV-hintGridSize-07587", - "text": " hintGridSize must be exactly one of the bits reported in VkPhysicalDeviceOpticalFlowPropertiesNV::supportedHintGridSizes if VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV is set in flags" + "text": "hintGridSize must be exactly one of the bits reported in VkPhysicalDeviceOpticalFlowPropertiesNV::supportedHintGridSizes if VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV is set in flags", + "page": "vkspec" }, { "vuid": "VUID-VkOpticalFlowSessionCreateInfoNV-flags-07588", - "text": " VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV must not be set in flags if VkPhysicalDeviceOpticalFlowPropertiesNV::hintSupported is VK_FALSE" + "text": "VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV must not be set in flags if VkPhysicalDeviceOpticalFlowPropertiesNV::hintSupported is VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-VkOpticalFlowSessionCreateInfoNV-flags-07589", - "text": " VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV must not be set in flags if VkPhysicalDeviceOpticalFlowPropertiesNV::costSupported is VK_FALSE" + "text": "VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV must not be set in flags if VkPhysicalDeviceOpticalFlowPropertiesNV::costSupported is VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-VkOpticalFlowSessionCreateInfoNV-flags-07590", - "text": " VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV must not be set in flags if VkPhysicalDeviceOpticalFlowPropertiesNV::globalFlowSupported is VK_FALSE" + "text": "VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV must not be set in flags if VkPhysicalDeviceOpticalFlowPropertiesNV::globalFlowSupported is VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-VkOpticalFlowSessionCreateInfoNV-flags-07591", - "text": " VK_OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV must not be set in flags if VkPhysicalDeviceOpticalFlowPropertiesNV::maxNumRegionsOfInterest is 0" + "text": "VK_OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV must not be set in flags if VkPhysicalDeviceOpticalFlowPropertiesNV::maxNumRegionsOfInterest is 0", + "page": "vkspec" }, { "vuid": "VUID-VkOpticalFlowSessionCreateInfoNV-flags-07592", - "text": " VK_OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV must not be set in flags if VkPhysicalDeviceOpticalFlowPropertiesNV::bidirectionalFlowSupported is VK_FALSE" + "text": "VK_OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV must not be set in flags if VkPhysicalDeviceOpticalFlowPropertiesNV::bidirectionalFlowSupported is VK_FALSE", + "page": "vkspec" }, { "vuid": "VUID-VkOpticalFlowSessionCreateInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV" + "text": "sType must be VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV", + "page": "vkspec" }, { "vuid": "VUID-VkOpticalFlowSessionCreateInfoNV-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkOpticalFlowSessionCreatePrivateDataInfoNV" + "text": "pNext must be NULL or a pointer to a valid instance of VkOpticalFlowSessionCreatePrivateDataInfoNV", + "page": "vkspec" }, { "vuid": "VUID-VkOpticalFlowSessionCreateInfoNV-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" }, { "vuid": "VUID-VkOpticalFlowSessionCreateInfoNV-imageFormat-parameter", - "text": " imageFormat must be a valid VkFormat value" + "text": "imageFormat must be a valid VkFormat value", + "page": "vkspec" }, { "vuid": "VUID-VkOpticalFlowSessionCreateInfoNV-flowVectorFormat-parameter", - "text": " flowVectorFormat must be a valid VkFormat value" + "text": "flowVectorFormat must be a valid VkFormat value", + "page": "vkspec" }, { "vuid": "VUID-VkOpticalFlowSessionCreateInfoNV-costFormat-parameter", - "text": " If costFormat is not 0, costFormat must be a valid VkFormat value" + "text": "If costFormat is not 0, costFormat must be a valid VkFormat value", + "page": "vkspec" }, { "vuid": "VUID-VkOpticalFlowSessionCreateInfoNV-outputGridSize-parameter", - "text": " outputGridSize must be a valid combination of VkOpticalFlowGridSizeFlagBitsNV values" + "text": "outputGridSize must be a valid combination of VkOpticalFlowGridSizeFlagBitsNV values", + "page": "vkspec" }, { "vuid": "VUID-VkOpticalFlowSessionCreateInfoNV-outputGridSize-requiredbitmask", - "text": " outputGridSize must not be 0" + "text": "outputGridSize must not be 0", + "page": "vkspec" }, { "vuid": "VUID-VkOpticalFlowSessionCreateInfoNV-hintGridSize-parameter", - "text": " hintGridSize must be a valid combination of VkOpticalFlowGridSizeFlagBitsNV values" + "text": "hintGridSize must be a valid combination of VkOpticalFlowGridSizeFlagBitsNV values", + "page": "vkspec" }, { "vuid": "VUID-VkOpticalFlowSessionCreateInfoNV-performanceLevel-parameter", - "text": " If performanceLevel is not 0, performanceLevel must be a valid VkOpticalFlowPerformanceLevelNV value" + "text": "If performanceLevel is not 0, performanceLevel must be a valid VkOpticalFlowPerformanceLevelNV value", + "page": "vkspec" }, { "vuid": "VUID-VkOpticalFlowSessionCreateInfoNV-flags-parameter", - "text": " flags must be a valid combination of VkOpticalFlowSessionCreateFlagBitsNV values" + "text": "flags must be a valid combination of VkOpticalFlowSessionCreateFlagBitsNV values", + "page": "vkspec" } ] }, @@ -71510,11 +92088,13 @@ "core": [ { "vuid": "VUID-VkOpticalFlowSessionCreatePrivateDataInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV" + "text": "sType must be VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV", + "page": "vkspec" }, { "vuid": "VUID-VkOpticalFlowSessionCreatePrivateDataInfoNV-pPrivateData-parameter", - "text": " pPrivateData must be a pointer value" + "text": "pPrivateData must be a pointer value", + "page": "vkspec" } ] }, @@ -71522,19 +92102,23 @@ "core": [ { "vuid": "VUID-vkDestroyOpticalFlowSessionNV-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyOpticalFlowSessionNV-session-parameter", - "text": " session must be a valid VkOpticalFlowSessionNV handle" + "text": "session must be a valid VkOpticalFlowSessionNV handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyOpticalFlowSessionNV-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyOpticalFlowSessionNV-session-parent", - "text": " session must have been created, allocated, or retrieved from device" + "text": "session must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -71542,31 +92126,38 @@ "core": [ { "vuid": "VUID-vkBindOpticalFlowSessionImageNV-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkBindOpticalFlowSessionImageNV-session-parameter", - "text": " session must be a valid VkOpticalFlowSessionNV handle" + "text": "session must be a valid VkOpticalFlowSessionNV handle", + "page": "vkspec" }, { "vuid": "VUID-vkBindOpticalFlowSessionImageNV-bindingPoint-parameter", - "text": " bindingPoint must be a valid VkOpticalFlowSessionBindingPointNV value" + "text": "bindingPoint must be a valid VkOpticalFlowSessionBindingPointNV value", + "page": "vkspec" }, { "vuid": "VUID-vkBindOpticalFlowSessionImageNV-view-parameter", - "text": " If view is not VK_NULL_HANDLE, view must be a valid VkImageView handle" + "text": "If view is not VK_NULL_HANDLE, view must be a valid VkImageView handle", + "page": "vkspec" }, { "vuid": "VUID-vkBindOpticalFlowSessionImageNV-layout-parameter", - "text": " layout must be a valid VkImageLayout value" + "text": "layout must be a valid VkImageLayout value", + "page": "vkspec" }, { "vuid": "VUID-vkBindOpticalFlowSessionImageNV-session-parent", - "text": " session must have been created, allocated, or retrieved from device" + "text": "session must have been created, allocated, or retrieved from device", + "page": "vkspec" }, { "vuid": "VUID-vkBindOpticalFlowSessionImageNV-view-parent", - "text": " If view is a valid handle, it must have been created, allocated, or retrieved from device" + "text": "If view is a valid handle, it must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -71574,35 +92165,43 @@ "core": [ { "vuid": "VUID-vkCmdOpticalFlowExecuteNV-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdOpticalFlowExecuteNV-session-parameter", - "text": " session must be a valid VkOpticalFlowSessionNV handle" + "text": "session must be a valid VkOpticalFlowSessionNV handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdOpticalFlowExecuteNV-pExecuteInfo-parameter", - "text": " pExecuteInfo must be a valid pointer to a valid VkOpticalFlowExecuteInfoNV structure" + "text": "pExecuteInfo must be a valid pointer to a valid VkOpticalFlowExecuteInfoNV structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdOpticalFlowExecuteNV-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdOpticalFlowExecuteNV-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support optical flow operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support optical flow operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdOpticalFlowExecuteNV-renderpass", - "text": " This command must only be called outside of a render pass instance" + "text": "This command must only be called outside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdOpticalFlowExecuteNV-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdOpticalFlowExecuteNV-commonparent", - "text": " Both of commandBuffer, and session must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of commandBuffer, and session must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -71610,23 +92209,28 @@ "core": [ { "vuid": "VUID-VkOpticalFlowExecuteInfoNV-regionCount-07593", - "text": " regionCount must be 0 if VK_OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV was not set for VkOpticalFlowSessionNV on which this command is operating" + "text": "regionCount must be 0 if VK_OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV was not set for VkOpticalFlowSessionNV on which this command is operating", + "page": "vkspec" }, { "vuid": "VUID-VkOpticalFlowExecuteInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV" + "text": "sType must be VK_STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV", + "page": "vkspec" }, { "vuid": "VUID-VkOpticalFlowExecuteInfoNV-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkOpticalFlowExecuteInfoNV-flags-parameter", - "text": " flags must be a valid combination of VkOpticalFlowExecuteFlagBitsNV values" + "text": "flags must be a valid combination of VkOpticalFlowExecuteFlagBitsNV values", + "page": "vkspec" }, { "vuid": "VUID-VkOpticalFlowExecuteInfoNV-pRegions-parameter", - "text": " If regionCount is not 0, pRegions must be a valid pointer to an array of regionCount VkRect2D structures" + "text": "If regionCount is not 0, pRegions must be a valid pointer to an array of regionCount VkRect2D structures", + "page": "vkspec" } ] }, @@ -71634,47 +92238,58 @@ "core": [ { "vuid": "VUID-vkCreateExecutionGraphPipelinesAMDX-shaderEnqueue-09124", - "text": " The shaderEnqueue feature must be enabled" + "text": "The shaderEnqueue feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-vkCreateExecutionGraphPipelinesAMDX-flags-09125", - "text": " If the flags member of any element of pCreateInfos contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and the basePipelineIndex member of that same element is not -1, basePipelineIndex must be less than the index into pCreateInfos that corresponds to that element" + "text": "If the flags member of any element of pCreateInfos contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and the basePipelineIndex member of that same element is not -1, basePipelineIndex must be less than the index into pCreateInfos that corresponds to that element", + "page": "vkspec" }, { "vuid": "VUID-vkCreateExecutionGraphPipelinesAMDX-flags-09126", - "text": " If the flags member of any element of pCreateInfos contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, the base pipeline must have been created with the VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT flag set" + "text": "If the flags member of any element of pCreateInfos contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, the base pipeline must have been created with the VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT flag set", + "page": "vkspec" }, { "vuid": "VUID-vkCreateExecutionGraphPipelinesAMDX-pipelineCache-09127", - "text": " If pipelineCache was created with VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT, host access to pipelineCache must be externally synchronized" + "text": "If pipelineCache was created with VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT, host access to pipelineCache must be externally synchronized", + "page": "vkspec" }, { "vuid": "VUID-vkCreateExecutionGraphPipelinesAMDX-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkCreateExecutionGraphPipelinesAMDX-pipelineCache-parameter", - "text": " If pipelineCache is not VK_NULL_HANDLE, pipelineCache must be a valid VkPipelineCache handle" + "text": "If pipelineCache is not VK_NULL_HANDLE, pipelineCache must be a valid VkPipelineCache handle", + "page": "vkspec" }, { "vuid": "VUID-vkCreateExecutionGraphPipelinesAMDX-pCreateInfos-parameter", - "text": " pCreateInfos must be a valid pointer to an array of createInfoCount valid VkExecutionGraphPipelineCreateInfoAMDX structures" + "text": "pCreateInfos must be a valid pointer to an array of createInfoCount valid VkExecutionGraphPipelineCreateInfoAMDX structures", + "page": "vkspec" }, { "vuid": "VUID-vkCreateExecutionGraphPipelinesAMDX-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateExecutionGraphPipelinesAMDX-pPipelines-parameter", - "text": " pPipelines must be a valid pointer to an array of createInfoCount VkPipeline handles" + "text": "pPipelines must be a valid pointer to an array of createInfoCount VkPipeline handles", + "page": "vkspec" }, { "vuid": "VUID-vkCreateExecutionGraphPipelinesAMDX-createInfoCount-arraylength", - "text": " createInfoCount must be greater than 0" + "text": "createInfoCount must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-vkCreateExecutionGraphPipelinesAMDX-pipelineCache-parent", - "text": " If pipelineCache is a valid handle, it must have been created, allocated, or retrieved from device" + "text": "If pipelineCache is a valid handle, it must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -71682,155 +92297,193 @@ "core": [ { "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-07984", - "text": " If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineIndex is -1, basePipelineHandle must be a valid handle to a ray tracing VkPipeline" + "text": "If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineIndex is -1, basePipelineHandle must be a valid execution graph VkPipeline handle", + "page": "vkspec" }, { "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-07985", - "text": " If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineHandle is VK_NULL_HANDLE, basePipelineIndex must be a valid index into the calling command’s pCreateInfos parameter" + "text": "If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineHandle is VK_NULL_HANDLE, basePipelineIndex must be a valid index into the calling command’s pCreateInfos parameter", + "page": "vkspec" }, { "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-07986", - "text": " If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, basePipelineIndex must be -1 or basePipelineHandle must be VK_NULL_HANDLE" + "text": "If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, basePipelineIndex must be -1 or basePipelineHandle must be VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-layout-07987", - "text": " If a push constant block is declared in a shader, a push constant range in layout must match both the shader stage and range" + "text": "If a push constant block is declared in a shader, a push constant range in layout must match both the shader stage and range", + "page": "vkspec" }, { "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-layout-07988", - "text": " If a resource variables is declared in a shader, a descriptor slot in layout must match the shader stage" + "text": "If a resource variables is declared in a shader, a descriptor slot in layout must match the shader stage", + "page": "vkspec" }, { "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-layout-07990", - "text": " If a resource variables is declared in a shader, and the descriptor type is not VK_DESCRIPTOR_TYPE_MUTABLE_EXT, a descriptor slot in layout must match the descriptor type" + "text": "If a resource variables is declared in a shader, and the descriptor type is not VK_DESCRIPTOR_TYPE_MUTABLE_EXT, a descriptor slot in layout must match the descriptor type", + "page": "vkspec" }, { "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-layout-07991", - "text": " If a resource variables is declared in a shader as an array, a descriptor slot in layout must match the descriptor count" + "text": "If a resource variables is declared in a shader as an array, a descriptor slot in layout must match the descriptor count", + "page": "vkspec" }, { "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-03365", - "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR" + "text": "flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-03366", - "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR" + "text": "flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-03367", - "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR" + "text": "flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-03368", - "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR" + "text": "flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-03369", - "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR" + "text": "flags must not include VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-03370", - "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR" + "text": "flags must not include VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-03576", - "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR" + "text": "flags must not include VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR", + "page": "vkspec" }, { "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-04945", - "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV" + "text": "flags must not include VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV", + "page": "vkspec" }, { "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-09007", - "text": " If flags includes VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV, then the VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV::deviceGeneratedComputePipelines feature must be enabled" + "text": "If flags includes VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV, then the VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV::deviceGeneratedComputePipelines feature must be enabled", + "page": "vkspec" }, { "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-09008", - "text": " If flags includes VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV, then the pNext chain must include a pointer to a valid instance of VkComputePipelineIndirectBufferInfoNV specifying the address where the pipeline’s metadata will be saved" + "text": "If flags includes VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV, then the pNext chain must include a pointer to a valid instance of VkComputePipelineIndirectBufferInfoNV specifying the address where the pipeline’s metadata will be saved", + "page": "vkspec" }, { "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-pipelineCreationCacheControl-02875", - "text": " If the pipelineCreationCacheControl feature is not enabled, flags must not include VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT or VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT" + "text": "If the pipelineCreationCacheControl feature is not enabled, flags must not include VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT or VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-stage-09128", - "text": " The stage member of any element of pStages must be VK_SHADER_STAGE_COMPUTE_BIT" + "text": "The stage member of any element of pStages must be VK_SHADER_STAGE_COMPUTE_BIT", + "page": "vkspec" }, { "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-pStages-09129", - "text": " The shader code for the entry point identified by each element of pStages and the rest of the state identified by this structure must adhere to the pipeline linking rules described in the Shader Interfaces chapter" + "text": "The shader code for the entry point identified by each element of pStages and the rest of the state identified by this structure must adhere to the pipeline linking rules described in the Shader Interfaces chapter", + "page": "vkspec" }, { "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-layout-09130", - "text": " layout must be consistent with the layout of the shaders specified in pStages" + "text": "layout must be consistent with the layout of the shaders specified in pStages", + "page": "vkspec" }, { "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-pLibraryInfo-09131", - "text": " If pLibraryInfo is not NULL, each element of its pLibraries member must have been created with a layout that is compatible with the layout in this pipeline" + "text": "If pLibraryInfo is not NULL, each element of its pLibraries member must have been created with a layout that is compatible with the layout in this pipeline", + "page": "vkspec" }, { "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-layout-09132", - "text": " The number of resources in layout accessible to each shader stage that is used by the pipeline must be less than or equal to VkPhysicalDeviceLimits::maxPerStageResources" + "text": "The number of resources in layout accessible to each shader stage that is used by the pipeline must be less than or equal to VkPhysicalDeviceLimits::maxPerStageResources", + "page": "vkspec" }, { "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-pLibraryInfo-09133", - "text": " If pLibraryInfo is not NULL, each element of pLibraryInfo->libraries must be either a compute pipeline or an execution graph pipeline" + "text": "If pLibraryInfo is not NULL, each element of pLibraryInfo->libraries must be either a compute pipeline or an execution graph pipeline", + "page": "vkspec" }, { "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-None-09134", - "text": " There must be no two nodes in the pipeline that share both the same shader name and index, as specified by VkPipelineShaderStageNodeCreateInfoAMDX" + "text": "There must be no two nodes in the pipeline that share both the same shader name and index, as specified by VkPipelineShaderStageNodeCreateInfoAMDX", + "page": "vkspec" }, { "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-None-09135", - "text": " There must be no two nodes in the pipeline that share the same shader name and have input payload declarations with different sizes" + "text": "There must be no two nodes in the pipeline that share the same shader name and have input payload declarations with different sizes", + "page": "vkspec" }, { "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-None-09136", - "text": " There must be no two nodes in the pipeline that share the same name but have different execution models" + "text": "There must be no two nodes in the pipeline that share the same name but have different execution models", + "page": "vkspec" }, { "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-CoalescedInputCountAMDX-09137", - "text": " There must be no two nodes in the pipeline that share the same name where one includes CoalescedInputCountAMDX and the other does not" + "text": "There must be no two nodes in the pipeline that share the same name where one includes CoalescedInputCountAMDX and the other does not", + "page": "vkspec" }, { "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-StaticNumWorkgroupsAMDX-09138", - "text": " There must be no two nodes in the pipeline that share the same name where one includes StaticNumWorkgroupsAMDX and the other does not" + "text": "There must be no two nodes in the pipeline that share the same name where one includes StaticNumWorkgroupsAMDX and the other does not", + "page": "vkspec" }, { "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-PayloadNodeNameAMDX-09139", - "text": " If an output payload declared in any shader in the pipeline has a PayloadNodeNameAMDX decoration with a Node Name that matches the shader name of any other node in the graph, the size of the output payload must match the size of the input payload in the matching node" + "text": "If an output payload declared in any shader in the pipeline has a PayloadNodeNameAMDX decoration with a Node Name that matches the shader name of any other node in the graph, the size of the output payload must match the size of the input payload in the matching node", + "page": "vkspec" }, { "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX" + "text": "sType must be VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX", + "page": "vkspec" }, { "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-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 VkPipelineCompilerControlCreateInfoAMD or VkPipelineCreationFeedbackCreateInfo" + "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 VkPipelineCompilerControlCreateInfoAMD or VkPipelineCreationFeedbackCreateInfo", + "page": "vkspec" }, { "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" }, { "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-parameter", - "text": " flags must be a valid combination of VkPipelineCreateFlagBits values" + "text": "flags must be a valid combination of VkPipelineCreateFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-pStages-parameter", - "text": " If stageCount is not 0, and pStages is not NULL, pStages must be a valid pointer to an array of stageCount valid VkPipelineShaderStageCreateInfo structures" + "text": "If stageCount is not 0, and pStages is not NULL, pStages must be a valid pointer to an array of stageCount valid VkPipelineShaderStageCreateInfo structures", + "page": "vkspec" }, { "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-pLibraryInfo-parameter", - "text": " If pLibraryInfo is not NULL, pLibraryInfo must be a valid pointer to a valid VkPipelineLibraryCreateInfoKHR structure" + "text": "If pLibraryInfo is not NULL, pLibraryInfo must be a valid pointer to a valid VkPipelineLibraryCreateInfoKHR structure", + "page": "vkspec" }, { "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-layout-parameter", - "text": " layout must be a valid VkPipelineLayout handle" + "text": "layout must be a valid VkPipelineLayout handle", + "page": "vkspec" }, { "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-commonparent", - "text": " Both of basePipelineHandle, and layout that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" + "text": "Both of basePipelineHandle, and layout that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -71838,11 +92491,13 @@ "core": [ { "vuid": "VUID-VkPipelineShaderStageNodeCreateInfoAMDX-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX" + "text": "sType must be VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX", + "page": "vkspec" }, { "vuid": "VUID-VkPipelineShaderStageNodeCreateInfoAMDX-pName-parameter", - "text": " If pName is not NULL, pName must be a null-terminated UTF-8 string" + "text": "If pName is not NULL, pName must be a null-terminated UTF-8 string", + "page": "vkspec" } ] }, @@ -71850,35 +92505,43 @@ "core": [ { "vuid": "VUID-vkGetExecutionGraphPipelineNodeIndexAMDX-pNodeInfo-09140", - "text": " pNodeInfo->pName must not be NULL" + "text": "pNodeInfo->pName must not be NULL", + "page": "vkspec" }, { "vuid": "VUID-vkGetExecutionGraphPipelineNodeIndexAMDX-pNodeInfo-09141", - "text": " pNodeInfo->index must not be VK_SHADER_INDEX_UNUSED_AMDX" + "text": "pNodeInfo->index must not be VK_SHADER_INDEX_UNUSED_AMDX", + "page": "vkspec" }, { "vuid": "VUID-vkGetExecutionGraphPipelineNodeIndexAMDX-executionGraph-09142", - "text": " There must be a node in executionGraph with a shader name and index equal to pNodeInfo->pName and pNodeInfo->index" + "text": "There must be a node in executionGraph with a shader name and index equal to pNodeInfo->pName and pNodeInfo->index", + "page": "vkspec" }, { "vuid": "VUID-vkGetExecutionGraphPipelineNodeIndexAMDX-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetExecutionGraphPipelineNodeIndexAMDX-executionGraph-parameter", - "text": " executionGraph must be a valid VkPipeline handle" + "text": "executionGraph must be a valid VkPipeline handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetExecutionGraphPipelineNodeIndexAMDX-pNodeInfo-parameter", - "text": " pNodeInfo must be a valid pointer to a valid VkPipelineShaderStageNodeCreateInfoAMDX structure" + "text": "pNodeInfo must be a valid pointer to a valid VkPipelineShaderStageNodeCreateInfoAMDX structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetExecutionGraphPipelineNodeIndexAMDX-pNodeIndex-parameter", - "text": " pNodeIndex must be a valid pointer to a uint32_t value" + "text": "pNodeIndex must be a valid pointer to a uint32_t value", + "page": "vkspec" }, { "vuid": "VUID-vkGetExecutionGraphPipelineNodeIndexAMDX-executionGraph-parent", - "text": " executionGraph must have been created, allocated, or retrieved from device" + "text": "executionGraph must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -71886,19 +92549,23 @@ "core": [ { "vuid": "VUID-vkGetExecutionGraphPipelineScratchSizeAMDX-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetExecutionGraphPipelineScratchSizeAMDX-executionGraph-parameter", - "text": " executionGraph must be a valid VkPipeline handle" + "text": "executionGraph must be a valid VkPipeline handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetExecutionGraphPipelineScratchSizeAMDX-pSizeInfo-parameter", - "text": " pSizeInfo must be a valid pointer to a VkExecutionGraphPipelineScratchSizeAMDX structure" + "text": "pSizeInfo must be a valid pointer to a VkExecutionGraphPipelineScratchSizeAMDX structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetExecutionGraphPipelineScratchSizeAMDX-executionGraph-parent", - "text": " executionGraph must have been created, allocated, or retrieved from device" + "text": "executionGraph must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -71906,7 +92573,8 @@ "core": [ { "vuid": "VUID-VkExecutionGraphPipelineScratchSizeAMDX-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX" + "text": "sType must be VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX", + "page": "vkspec" } ] }, @@ -71914,35 +92582,43 @@ "core": [ { "vuid": "VUID-vkCmdInitializeGraphScratchMemoryAMDX-scratch-09143", - "text": " scratch must be the device address of an allocated memory range at least as large as the value of VkExecutionGraphPipelineScratchSizeAMDX::size returned by VkExecutionGraphPipelineScratchSizeAMDX for the currently bound execution graph pipeline." + "text": "scratch must be the device address of an allocated memory range at least as large as the value of VkExecutionGraphPipelineScratchSizeAMDX::size returned by VkExecutionGraphPipelineScratchSizeAMDX for the currently bound execution graph pipeline.", + "page": "vkspec" }, { "vuid": "VUID-vkCmdInitializeGraphScratchMemoryAMDX-scratch-09144", - "text": " scratch must be a multiple of 64" + "text": "scratch must be a multiple of 64", + "page": "vkspec" }, { "vuid": "VUID-vkCmdInitializeGraphScratchMemoryAMDX-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdInitializeGraphScratchMemoryAMDX-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdInitializeGraphScratchMemoryAMDX-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdInitializeGraphScratchMemoryAMDX-renderpass", - "text": " This command must only be called outside of a render pass instance" + "text": "This command must only be called outside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdInitializeGraphScratchMemoryAMDX-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdInitializeGraphScratchMemoryAMDX-bufferlevel", - "text": " commandBuffer must be a primary VkCommandBuffer" + "text": "commandBuffer must be a primary VkCommandBuffer", + "page": "vkspec" } ] }, @@ -71950,311 +92626,418 @@ "core": [ { "vuid": "VUID-vkCmdDispatchGraphAMDX-magFilter-04553", - "text": " If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + "text": "If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-mipmapMode-04770", - "text": " If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + "text": "If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-None-06479", - "text": " If a VkImageView is sampled with depth comparison, the image view’s format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT" + "text": "If a VkImageView is sampled with depth comparison, the image view’s format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-None-02691", - "text": " If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT" + "text": "If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-None-07888", - "text": " If a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer’s format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT" + "text": "If a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer’s format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-None-02692", - "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" + "text": "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-None-02693", - "text": " If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" + "text": "If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-filterCubic-02694", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" + "text": "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-filterCubicMinmax-02695", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" + "text": "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDispatchGraphAMDX-cubicRangeClamp-09212", + "text": "If the cubicRangeClamp feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command
\n
\n
must not have a VkSamplerReductionModeCreateInfo
\n
\n

reductionMode equal to\nVK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM

\n
\n
\n
", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDispatchGraphAMDX-reductionMode-09213", + "text": "Any VkImageView being sampled with a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM as a result of this command must sample with VK_FILTER_CUBIC_EXT", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDispatchGraphAMDX-selectableCubicWeights-09214", + "text": "If the selectableCubicWeights feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have VkSamplerCubicWeightsCreateInfoQCOM::cubicWeights equal to VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-flags-02696", - "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE" + "text": "Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-OpTypeImage-07027", - "text": " For any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT" + "text": "For any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-OpTypeImage-07028", - "text": " For any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT" + "text": "For any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-OpTypeImage-07029", - "text": " For any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT" + "text": "For any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-OpTypeImage-07030", - "text": " Any VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT" + "text": "Any VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-None-08600", - "text": " For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-None-08601", - "text": " For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-maintenance4-08602", - "text": " If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-None-08114", - "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-None-08115", - "text": " If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-None-08116", - "text": " Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-None-08604", - "text": " Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command" + "text": "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-None-08117", - "text": " If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-None-08119", - "text": " If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident" + "text": "If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-None-08605", - "text": " If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident" + "text": "If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-None-08606", - "text": " If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command" + "text": "If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-None-08607", - "text": " If the shaderObject is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command" + "text": "If the shaderObject is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-None-08608", - "text": " If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound" + "text": "If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-None-08609", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-None-08610", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-None-08611", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-uniformBuffers-06935", - "text": " If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-None-08612", - "text": " If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-storageBuffers-06936", - "text": " If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-None-08613", - "text": " If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-commandBuffer-02707", - "text": " If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource" + "text": "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-None-06550", - "text": " If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions" + "text": "If a bound shader accesses a VkSampler or VkImageView object that enables sampler Y′CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-ConstOffset-06551", - "text": " If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands" + "text": "If a bound shader accesses a VkSampler or VkImageView object that enables sampler Y′CBCR conversion, that object must not use the ConstOffset and Offset operands", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-viewType-07752", - "text": " If a VkImageView is accessed as a result of this command, then the image view’s viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation" + "text": "If a VkImageView is accessed as a result of this command, then the image view’s viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-format-07753", - "text": " If a VkImageView is accessed as a result of this command, then the numeric type of the image view’s format and the Sampled Type operand of the OpTypeImage must match" + "text": "If a VkImageView is accessed as a result of this command, then the numeric type of the image view’s format and the Sampled Type operand of the OpTypeImage must match", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-OpImageWrite-08795", - "text": " If a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format" + "text": "If a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-OpImageWrite-08796", - "text": " If a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components" + "text": "If a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-OpImageWrite-04469", - "text": " If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view’s format" + "text": "If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view’s format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-SampledType-04470", - "text": " If a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64" + "text": "If a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-SampledType-04471", - "text": " If a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32" + "text": "If a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-SampledType-04472", - "text": " If a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64" + "text": "If a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-SampledType-04473", - "text": " If a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32" + "text": "If a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-sparseImageInt64Atomics-04474", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command" + "text": "If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-sparseImageInt64Atomics-04475", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command" + "text": "If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-OpImageWeightedSampleQCOM-06971", - "text": " If OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-OpImageWeightedSampleQCOM-06972", - "text": " If OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-OpImageBoxFilterQCOM-06973", - "text": " If OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM" + "text": "If OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-OpImageBlockMatchSSDQCOM-06974", - "text": " If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM" + "text": "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-OpImageBlockMatchSADQCOM-06975", - "text": " If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM" + "text": "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-OpImageBlockMatchSADQCOM-06976", - "text": " If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation" + "text": "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-OpImageWeightedSampleQCOM-06977", - "text": " If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-OpImageWeightedSampleQCOM-06978", - "text": " If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM" + "text": "If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDispatchGraphAMDX-OpImageBlockMatchWindow-09215", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDispatchGraphAMDX-OpImageBlockMatchWindow-09216", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view’s format must be a single-component format.", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDispatchGraphAMDX-OpImageBlockMatchWindow-09217", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-None-07288", - "text": " Any shader invocation executed by this command must terminate" + "text": "Any shader invocation executed by this command must terminate", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-commandBuffer-09181", - "text": " commandBuffer must not be a protected command buffer" + "text": "commandBuffer must not be a protected command buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-commandBuffer-09182", - "text": " commandBuffer must be a primary command buffer" + "text": "commandBuffer must be a primary command buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-scratch-09183", - "text": " scratch must be the device address of an allocated memory range at least as large as the value of VkExecutionGraphPipelineScratchSizeAMDX::size returned by VkExecutionGraphPipelineScratchSizeAMDX for the currently bound execution graph pipeline" + "text": "scratch must be the device address of an allocated memory range at least as large as the value of VkExecutionGraphPipelineScratchSizeAMDX::size returned by VkExecutionGraphPipelineScratchSizeAMDX for the currently bound execution graph pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-scratch-09184", - "text": " scratch must be a device address within a VkBuffer created with the VK_BUFFER_USAGE_EXECUTION_GRAPH_SCRATCH_BIT_AMDX or VK_BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX flag" + "text": "scratch must be a device address within a VkBuffer created with the VK_BUFFER_USAGE_EXECUTION_GRAPH_SCRATCH_BIT_AMDX or VK_BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX flag", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-scratch-09185", - "text": " Device memory in the range [scratch,scratch
VkExecutionGraphPipelineScratchSizeAMDX::size) must have been initialized with vkCmdInitializeGraphScratchMemoryAMDX using the currently bound execution graph pipeline, and not modified after that by anything other than another execution graph dispatch command" + "text": "Device memory in the range [scratch,scratch
VkExecutionGraphPipelineScratchSizeAMDX::size) must have been initialized with vkCmdInitializeGraphScratchMemoryAMDX using the currently bound execution graph pipeline, and not modified after that by anything other than another execution graph dispatch command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-maxComputeWorkGroupCount-09186", - "text": " Execution of this command must not cause a node to be dispatched with a larger number of workgroups than that specified by either a MaxNumWorkgroupsAMDX decoration in the dispatched node or maxComputeWorkGroupCount" + "text": "Execution of this command must not cause a node to be dispatched with a larger number of workgroups than that specified by either a MaxNumWorkgroupsAMDX decoration in the dispatched node or maxComputeWorkGroupCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-maxExecutionGraphShaderPayloadCount-09187", - "text": " Execution of this command must not cause any shader to initialize more than maxExecutionGraphShaderPayloadCount output payloads" + "text": "Execution of this command must not cause any shader to initialize more than maxExecutionGraphShaderPayloadCount output payloads", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-NodeMaxPayloadsAMDX-09188", - "text": " Execution of this command must not cause any shader that declares NodeMaxPayloadsAMDX to initialize more output payloads than specified by the max number of payloads for that decoration. This requirement applies to each NodeMaxPayloadsAMDX decoration separately" + "text": "Execution of this command must not cause any shader that declares NodeMaxPayloadsAMDX to initialize more output payloads than specified by the max number of payloads for that decoration. This requirement applies to each NodeMaxPayloadsAMDX decoration separately", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-pCountInfo-09145", - "text": " pCountInfo->infos must be a host pointer to a memory allocation at least as large as the product of count and stride" + "text": "pCountInfo->infos must be a host pointer to a memory allocation at least as large as the product of count and stride", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-infos-09146", - "text": " Host memory locations at indexes in the range [infos, infos + (count*stride)), at a granularity of stride must contain valid VkDispatchGraphInfoAMDX structures in the first 24 bytes" + "text": "Host memory locations at indexes in the range [infos, infos + (count*stride)), at a granularity of stride must contain valid VkDispatchGraphInfoAMDX structures in the first 24 bytes", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-pCountInfo-09147", - "text": " For each VkDispatchGraphInfoAMDX structure in pCountInfo->infos, payloads must be a host pointer to a memory allocation at least as large as the product of payloadCount and payloadStride" + "text": "For each VkDispatchGraphInfoAMDX structure in pCountInfo->infos, payloads must be a host pointer to a memory allocation at least as large as the product of payloadCount and payloadStride", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-pCountInfo-09148", - "text": " For each VkDispatchGraphInfoAMDX structure in pCountInfo->infos, nodeIndex must be a valid node index in the currently bound execution graph pipeline, as returned by vkGetExecutionGraphPipelineNodeIndexAMDX" + "text": "For each VkDispatchGraphInfoAMDX structure in pCountInfo->infos, nodeIndex must be a valid node index in the currently bound execution graph pipeline, as returned by vkGetExecutionGraphPipelineNodeIndexAMDX", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-pCountInfo-09149", - "text": " For each VkDispatchGraphInfoAMDX structure in pCountInfo->infos, host memory locations at indexes in the range [payloads, payloads + (payloadCount * payloadStride)), at a granularity of payloadStride must contain a payload matching the size of the input payload expected by the node in nodeIndex in the first bytes" + "text": "For each VkDispatchGraphInfoAMDX structure in pCountInfo->infos, host memory locations at indexes in the range [payloads, payloads + (payloadCount * payloadStride)), at a granularity of payloadStride must contain a payload matching the size of the input payload expected by the node in nodeIndex in the first bytes", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-pCountInfo-parameter", - "text": " pCountInfo must be a valid pointer to a valid VkDispatchGraphCountInfoAMDX structure" + "text": "pCountInfo must be a valid pointer to a valid VkDispatchGraphCountInfoAMDX structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-renderpass", - "text": " This command must only be called outside of a render pass instance" + "text": "This command must only be called outside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-bufferlevel", - "text": " commandBuffer must be a primary VkCommandBuffer" + "text": "commandBuffer must be a primary VkCommandBuffer", + "page": "vkspec" } ] }, @@ -72262,327 +93045,438 @@ "core": [ { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-magFilter-04553", - "text": " If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + "text": "If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-mipmapMode-04770", - "text": " If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + "text": "If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-None-06479", - "text": " If a VkImageView is sampled with depth comparison, the image view’s format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT" + "text": "If a VkImageView is sampled with depth comparison, the image view’s format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-None-02691", - "text": " If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT" + "text": "If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-None-07888", - "text": " If a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer’s format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT" + "text": "If a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer’s format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-None-02692", - "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" + "text": "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-None-02693", - "text": " If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" + "text": "If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-filterCubic-02694", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" + "text": "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-filterCubicMinmax-02695", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" + "text": "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-cubicRangeClamp-09212", + "text": "If the cubicRangeClamp feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command
\n
\n
must not have a VkSamplerReductionModeCreateInfo
\n
\n

reductionMode equal to\nVK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM

\n
\n
\n
", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-reductionMode-09213", + "text": "Any VkImageView being sampled with a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM as a result of this command must sample with VK_FILTER_CUBIC_EXT", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-selectableCubicWeights-09214", + "text": "If the selectableCubicWeights feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have VkSamplerCubicWeightsCreateInfoQCOM::cubicWeights equal to VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-flags-02696", - "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE" + "text": "Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-OpTypeImage-07027", - "text": " For any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT" + "text": "For any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-OpTypeImage-07028", - "text": " For any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT" + "text": "For any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-OpTypeImage-07029", - "text": " For any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT" + "text": "For any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-OpTypeImage-07030", - "text": " Any VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT" + "text": "Any VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-None-08600", - "text": " For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-None-08601", - "text": " For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-maintenance4-08602", - "text": " If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-None-08114", - "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-None-08115", - "text": " If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-None-08116", - "text": " Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-None-08604", - "text": " Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command" + "text": "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-None-08117", - "text": " If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-None-08119", - "text": " If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident" + "text": "If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-None-08605", - "text": " If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident" + "text": "If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-None-08606", - "text": " If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command" + "text": "If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-None-08607", - "text": " If the shaderObject is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command" + "text": "If the shaderObject is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-None-08608", - "text": " If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound" + "text": "If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-None-08609", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-None-08610", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-None-08611", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-uniformBuffers-06935", - "text": " If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-None-08612", - "text": " If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-storageBuffers-06936", - "text": " If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-None-08613", - "text": " If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-commandBuffer-02707", - "text": " If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource" + "text": "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-None-06550", - "text": " If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions" + "text": "If a bound shader accesses a VkSampler or VkImageView object that enables sampler Y′CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-ConstOffset-06551", - "text": " If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands" + "text": "If a bound shader accesses a VkSampler or VkImageView object that enables sampler Y′CBCR conversion, that object must not use the ConstOffset and Offset operands", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-viewType-07752", - "text": " If a VkImageView is accessed as a result of this command, then the image view’s viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation" + "text": "If a VkImageView is accessed as a result of this command, then the image view’s viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-format-07753", - "text": " If a VkImageView is accessed as a result of this command, then the numeric type of the image view’s format and the Sampled Type operand of the OpTypeImage must match" + "text": "If a VkImageView is accessed as a result of this command, then the numeric type of the image view’s format and the Sampled Type operand of the OpTypeImage must match", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-OpImageWrite-08795", - "text": " If a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format" + "text": "If a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-OpImageWrite-08796", - "text": " If a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components" + "text": "If a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-OpImageWrite-04469", - "text": " If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view’s format" + "text": "If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view’s format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-SampledType-04470", - "text": " If a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64" + "text": "If a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-SampledType-04471", - "text": " If a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32" + "text": "If a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-SampledType-04472", - "text": " If a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64" + "text": "If a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-SampledType-04473", - "text": " If a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32" + "text": "If a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-sparseImageInt64Atomics-04474", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command" + "text": "If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-sparseImageInt64Atomics-04475", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command" + "text": "If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-OpImageWeightedSampleQCOM-06971", - "text": " If OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-OpImageWeightedSampleQCOM-06972", - "text": " If OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-OpImageBoxFilterQCOM-06973", - "text": " If OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM" + "text": "If OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-OpImageBlockMatchSSDQCOM-06974", - "text": " If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM" + "text": "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-OpImageBlockMatchSADQCOM-06975", - "text": " If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM" + "text": "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-OpImageBlockMatchSADQCOM-06976", - "text": " If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation" + "text": "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-OpImageWeightedSampleQCOM-06977", - "text": " If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-OpImageWeightedSampleQCOM-06978", - "text": " If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM" + "text": "If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-OpImageBlockMatchWindow-09215", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-OpImageBlockMatchWindow-09216", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view’s format must be a single-component format.", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-OpImageBlockMatchWindow-09217", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-None-07288", - "text": " Any shader invocation executed by this command must terminate" + "text": "Any shader invocation executed by this command must terminate", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-commandBuffer-09181", - "text": " commandBuffer must not be a protected command buffer" + "text": "commandBuffer must not be a protected command buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-commandBuffer-09182", - "text": " commandBuffer must be a primary command buffer" + "text": "commandBuffer must be a primary command buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-scratch-09183", - "text": " scratch must be the device address of an allocated memory range at least as large as the value of VkExecutionGraphPipelineScratchSizeAMDX::size returned by VkExecutionGraphPipelineScratchSizeAMDX for the currently bound execution graph pipeline" + "text": "scratch must be the device address of an allocated memory range at least as large as the value of VkExecutionGraphPipelineScratchSizeAMDX::size returned by VkExecutionGraphPipelineScratchSizeAMDX for the currently bound execution graph pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-scratch-09184", - "text": " scratch must be a device address within a VkBuffer created with the VK_BUFFER_USAGE_EXECUTION_GRAPH_SCRATCH_BIT_AMDX or VK_BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX flag" + "text": "scratch must be a device address within a VkBuffer created with the VK_BUFFER_USAGE_EXECUTION_GRAPH_SCRATCH_BIT_AMDX or VK_BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX flag", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-scratch-09185", - "text": " Device memory in the range [scratch,scratch
VkExecutionGraphPipelineScratchSizeAMDX::size) must have been initialized with vkCmdInitializeGraphScratchMemoryAMDX using the currently bound execution graph pipeline, and not modified after that by anything other than another execution graph dispatch command" + "text": "Device memory in the range [scratch,scratch
VkExecutionGraphPipelineScratchSizeAMDX::size) must have been initialized with vkCmdInitializeGraphScratchMemoryAMDX using the currently bound execution graph pipeline, and not modified after that by anything other than another execution graph dispatch command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-maxComputeWorkGroupCount-09186", - "text": " Execution of this command must not cause a node to be dispatched with a larger number of workgroups than that specified by either a MaxNumWorkgroupsAMDX decoration in the dispatched node or maxComputeWorkGroupCount" + "text": "Execution of this command must not cause a node to be dispatched with a larger number of workgroups than that specified by either a MaxNumWorkgroupsAMDX decoration in the dispatched node or maxComputeWorkGroupCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-maxExecutionGraphShaderPayloadCount-09187", - "text": " Execution of this command must not cause any shader to initialize more than maxExecutionGraphShaderPayloadCount output payloads" + "text": "Execution of this command must not cause any shader to initialize more than maxExecutionGraphShaderPayloadCount output payloads", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-NodeMaxPayloadsAMDX-09188", - "text": " Execution of this command must not cause any shader that declares NodeMaxPayloadsAMDX to initialize more output payloads than specified by the max number of payloads for that decoration. This requirement applies to each NodeMaxPayloadsAMDX decoration separately" + "text": "Execution of this command must not cause any shader that declares NodeMaxPayloadsAMDX to initialize more output payloads than specified by the max number of payloads for that decoration. This requirement applies to each NodeMaxPayloadsAMDX decoration separately", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-pCountInfo-09150", - "text": " pCountInfo->infos must be a device pointer to a memory allocation at least as large as the product of count and stride when this command is executed on the device" + "text": "pCountInfo->infos must be a device pointer to a memory allocation at least as large as the product of count and stride when this command is executed on the device", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-pCountInfo-09151", - "text": " pCountInfo->infos must be a device address within a VkBuffer created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT flag" + "text": "pCountInfo->infos must be a device address within a VkBuffer created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT flag", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-pCountInfo-09152", - "text": " pCountInfo->infos must be a multiple of executionGraphDispatchAddressAlignment" + "text": "pCountInfo->infos must be a multiple of executionGraphDispatchAddressAlignment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-infos-09153", - "text": " Device memory locations at indexes in the range [infos, infos + (count*stride)), at a granularity of stride must contain valid VkDispatchGraphInfoAMDX structures in the first 24 bytes when this command is executed on the device" + "text": "Device memory locations at indexes in the range [infos, infos + (count*stride)), at a granularity of stride must contain valid VkDispatchGraphInfoAMDX structures in the first 24 bytes when this command is executed on the device", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-pCountInfo-09154", - "text": " For each VkDispatchGraphInfoAMDX structure in pCountInfo->infos, payloads must be a device pointer to a memory allocation at least as large as the product of payloadCount and payloadStride when this command is executed on the device" + "text": "For each VkDispatchGraphInfoAMDX structure in pCountInfo->infos, payloads must be a device pointer to a memory allocation at least as large as the product of payloadCount and payloadStride when this command is executed on the device", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-pCountInfo-09155", - "text": " For each VkDispatchGraphInfoAMDX structure in pCountInfo->infos, payloads must be a device address within a VkBuffer created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT flag" + "text": "For each VkDispatchGraphInfoAMDX structure in pCountInfo->infos, payloads must be a device address within a VkBuffer created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT flag", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-pCountInfo-09156", - "text": " For each VkDispatchGraphInfoAMDX structure in pCountInfo->infos, payloads must be a multiple of executionGraphDispatchAddressAlignment" + "text": "For each VkDispatchGraphInfoAMDX structure in pCountInfo->infos, payloads must be a multiple of executionGraphDispatchAddressAlignment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-pCountInfo-09157", - "text": " For each VkDispatchGraphInfoAMDX structure in pCountInfo->infos, nodeIndex must be a valid node index in the currently bound execution graph pipeline, as returned by vkGetExecutionGraphPipelineNodeIndexAMDX when this command is executed on the device" + "text": "For each VkDispatchGraphInfoAMDX structure in pCountInfo->infos, nodeIndex must be a valid node index in the currently bound execution graph pipeline, as returned by vkGetExecutionGraphPipelineNodeIndexAMDX when this command is executed on the device", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-pCountInfo-09158", - "text": " For each VkDispatchGraphInfoAMDX structure in pCountInfo->infos, device memory locations at indexes in the range [payloads, payloads + (payloadCount * payloadStride)), at a granularity of payloadStride must contain a payload matching the size of the input payload expected by the node in nodeIndex in the first bytes when this command is executed on the device" + "text": "For each VkDispatchGraphInfoAMDX structure in pCountInfo->infos, device memory locations at indexes in the range [payloads, payloads + (payloadCount * payloadStride)), at a granularity of payloadStride must contain a payload matching the size of the input payload expected by the node in nodeIndex in the first bytes when this command is executed on the device", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-pCountInfo-parameter", - "text": " pCountInfo must be a valid pointer to a valid VkDispatchGraphCountInfoAMDX structure" + "text": "pCountInfo must be a valid pointer to a valid VkDispatchGraphCountInfoAMDX structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-renderpass", - "text": " This command must only be called outside of a render pass instance" + "text": "This command must only be called outside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-bufferlevel", - "text": " commandBuffer must be a primary VkCommandBuffer" + "text": "commandBuffer must be a primary VkCommandBuffer", + "page": "vkspec" } ] }, @@ -72590,335 +93484,448 @@ "core": [ { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-magFilter-04553", - "text": " If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + "text": "If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-mipmapMode-04770", - "text": " If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + "text": "If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-None-06479", - "text": " If a VkImageView is sampled with depth comparison, the image view’s format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT" + "text": "If a VkImageView is sampled with depth comparison, the image view’s format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-None-02691", - "text": " If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT" + "text": "If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-None-07888", - "text": " If a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer’s format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT" + "text": "If a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer’s format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-None-02692", - "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" + "text": "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-None-02693", - "text": " If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" + "text": "If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-filterCubic-02694", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" + "text": "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-filterCubicMinmax-02695", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" + "text": "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-cubicRangeClamp-09212", + "text": "If the cubicRangeClamp feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command
\n
\n
must not have a VkSamplerReductionModeCreateInfo
\n
\n

reductionMode equal to\nVK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM

\n
\n
\n
", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-reductionMode-09213", + "text": "Any VkImageView being sampled with a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM as a result of this command must sample with VK_FILTER_CUBIC_EXT", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-selectableCubicWeights-09214", + "text": "If the selectableCubicWeights feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have VkSamplerCubicWeightsCreateInfoQCOM::cubicWeights equal to VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-flags-02696", - "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE" + "text": "Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-OpTypeImage-07027", - "text": " For any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT" + "text": "For any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-OpTypeImage-07028", - "text": " For any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT" + "text": "For any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-OpTypeImage-07029", - "text": " For any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT" + "text": "For any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-OpTypeImage-07030", - "text": " Any VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT" + "text": "Any VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08600", - "text": " For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08601", - "text": " For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-maintenance4-08602", - "text": " If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility" + "text": "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08114", - "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08115", - "text": " If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08116", - "text": " Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08604", - "text": " Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command" + "text": "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08117", - "text": " If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT" + "text": "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08119", - "text": " If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident" + "text": "If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08605", - "text": " If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident" + "text": "If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08606", - "text": " If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command" + "text": "If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08607", - "text": " If the shaderObject is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command" + "text": "If the shaderObject is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08608", - "text": " If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound" + "text": "If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08609", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08610", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08611", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" + "text": "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-uniformBuffers-06935", - "text": " If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08612", - "text": " If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-storageBuffers-06936", - "text": " If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08613", - "text": " If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + "text": "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-commandBuffer-02707", - "text": " If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource" + "text": "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-None-06550", - "text": " If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions" + "text": "If a bound shader accesses a VkSampler or VkImageView object that enables sampler Y′CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-ConstOffset-06551", - "text": " If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands" + "text": "If a bound shader accesses a VkSampler or VkImageView object that enables sampler Y′CBCR conversion, that object must not use the ConstOffset and Offset operands", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-viewType-07752", - "text": " If a VkImageView is accessed as a result of this command, then the image view’s viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation" + "text": "If a VkImageView is accessed as a result of this command, then the image view’s viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-format-07753", - "text": " If a VkImageView is accessed as a result of this command, then the numeric type of the image view’s format and the Sampled Type operand of the OpTypeImage must match" + "text": "If a VkImageView is accessed as a result of this command, then the numeric type of the image view’s format and the Sampled Type operand of the OpTypeImage must match", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-OpImageWrite-08795", - "text": " If a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format" + "text": "If a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-OpImageWrite-08796", - "text": " If a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components" + "text": "If a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-OpImageWrite-04469", - "text": " If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view’s format" + "text": "If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view’s format", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-SampledType-04470", - "text": " If a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64" + "text": "If a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-SampledType-04471", - "text": " If a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32" + "text": "If a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-SampledType-04472", - "text": " If a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64" + "text": "If a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-SampledType-04473", - "text": " If a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32" + "text": "If a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-sparseImageInt64Atomics-04474", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command" + "text": "If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-sparseImageInt64Atomics-04475", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command" + "text": "If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-OpImageWeightedSampleQCOM-06971", - "text": " If OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-OpImageWeightedSampleQCOM-06972", - "text": " If OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-OpImageBoxFilterQCOM-06973", - "text": " If OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM" + "text": "If OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-OpImageBlockMatchSSDQCOM-06974", - "text": " If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM" + "text": "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-OpImageBlockMatchSADQCOM-06975", - "text": " If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM" + "text": "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-OpImageBlockMatchSADQCOM-06976", - "text": " If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation" + "text": "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-OpImageWeightedSampleQCOM-06977", - "text": " If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM" + "text": "If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-OpImageWeightedSampleQCOM-06978", - "text": " If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM" + "text": "If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-OpImageBlockMatchWindow-09215", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-OpImageBlockMatchWindow-09216", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view’s format must be a single-component format.", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-OpImageBlockMatchWindow-09217", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-None-07288", - "text": " Any shader invocation executed by this command must terminate" + "text": "Any shader invocation executed by this command must terminate", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-commandBuffer-09181", - "text": " commandBuffer must not be a protected command buffer" + "text": "commandBuffer must not be a protected command buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-commandBuffer-09182", - "text": " commandBuffer must be a primary command buffer" + "text": "commandBuffer must be a primary command buffer", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-scratch-09183", - "text": " scratch must be the device address of an allocated memory range at least as large as the value of VkExecutionGraphPipelineScratchSizeAMDX::size returned by VkExecutionGraphPipelineScratchSizeAMDX for the currently bound execution graph pipeline" + "text": "scratch must be the device address of an allocated memory range at least as large as the value of VkExecutionGraphPipelineScratchSizeAMDX::size returned by VkExecutionGraphPipelineScratchSizeAMDX for the currently bound execution graph pipeline", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-scratch-09184", - "text": " scratch must be a device address within a VkBuffer created with the VK_BUFFER_USAGE_EXECUTION_GRAPH_SCRATCH_BIT_AMDX or VK_BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX flag" + "text": "scratch must be a device address within a VkBuffer created with the VK_BUFFER_USAGE_EXECUTION_GRAPH_SCRATCH_BIT_AMDX or VK_BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX flag", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-scratch-09185", - "text": " Device memory in the range [scratch,scratch
VkExecutionGraphPipelineScratchSizeAMDX::size) must have been initialized with vkCmdInitializeGraphScratchMemoryAMDX using the currently bound execution graph pipeline, and not modified after that by anything other than another execution graph dispatch command" + "text": "Device memory in the range [scratch,scratch
VkExecutionGraphPipelineScratchSizeAMDX::size) must have been initialized with vkCmdInitializeGraphScratchMemoryAMDX using the currently bound execution graph pipeline, and not modified after that by anything other than another execution graph dispatch command", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-maxComputeWorkGroupCount-09186", - "text": " Execution of this command must not cause a node to be dispatched with a larger number of workgroups than that specified by either a MaxNumWorkgroupsAMDX decoration in the dispatched node or maxComputeWorkGroupCount" + "text": "Execution of this command must not cause a node to be dispatched with a larger number of workgroups than that specified by either a MaxNumWorkgroupsAMDX decoration in the dispatched node or maxComputeWorkGroupCount", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-maxExecutionGraphShaderPayloadCount-09187", - "text": " Execution of this command must not cause any shader to initialize more than maxExecutionGraphShaderPayloadCount output payloads" + "text": "Execution of this command must not cause any shader to initialize more than maxExecutionGraphShaderPayloadCount output payloads", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-NodeMaxPayloadsAMDX-09188", - "text": " Execution of this command must not cause any shader that declares NodeMaxPayloadsAMDX to initialize more output payloads than specified by the max number of payloads for that decoration. This requirement applies to each NodeMaxPayloadsAMDX decoration separately" + "text": "Execution of this command must not cause any shader that declares NodeMaxPayloadsAMDX to initialize more output payloads than specified by the max number of payloads for that decoration. This requirement applies to each NodeMaxPayloadsAMDX decoration separately", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-countInfo-09159", - "text": " countInfo must be a device pointer to a memory allocation containing a valid VkDispatchGraphCountInfoAMDX structure when this command is executed on the device" + "text": "countInfo must be a device pointer to a memory allocation containing a valid VkDispatchGraphCountInfoAMDX structure when this command is executed on the device", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-countInfo-09160", - "text": " countInfo must be a device address within a VkBuffer created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT flag" + "text": "countInfo must be a device address within a VkBuffer created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT flag", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-countInfo-09161", - "text": " countInfo must be a multiple of executionGraphDispatchAddressAlignment" + "text": "countInfo must be a multiple of executionGraphDispatchAddressAlignment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-countInfo-09162", - "text": " countInfo->infos must be a device pointer to a memory allocation at least as large as the product of count and stride when this command is executed on the device" + "text": "countInfo->infos must be a device pointer to a memory allocation at least as large as the product of count and stride when this command is executed on the device", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-countInfo-09163", - "text": " countInfo->infos must be a device address within a VkBuffer created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT flag" + "text": "countInfo->infos must be a device address within a VkBuffer created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT flag", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-countInfo-09164", - "text": " countInfo->infos must be a multiple of executionGraphDispatchAddressAlignment" + "text": "countInfo->infos must be a multiple of executionGraphDispatchAddressAlignment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-infos-09165", - "text": " Device memory locations at indexes in the range [infos, infos + (count*stride)), at a granularity of stride must contain valid VkDispatchGraphInfoAMDX structures in the first 24 bytes when this command is executed on the device" + "text": "Device memory locations at indexes in the range [infos, infos + (count*stride)), at a granularity of stride must contain valid VkDispatchGraphInfoAMDX structures in the first 24 bytes when this command is executed on the device", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-countInfo-09166", - "text": " For each VkDispatchGraphInfoAMDX structure in countInfo->infos, payloads must be a device pointer to a memory allocation at least as large as the product of payloadCount and payloadStride when this command is executed on the device" + "text": "For each VkDispatchGraphInfoAMDX structure in countInfo->infos, payloads must be a device pointer to a memory allocation at least as large as the product of payloadCount and payloadStride when this command is executed on the device", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-countInfo-09167", - "text": " For each VkDispatchGraphInfoAMDX structure in countInfo->infos, payloads must be a device address within a VkBuffer created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT flag" + "text": "For each VkDispatchGraphInfoAMDX structure in countInfo->infos, payloads must be a device address within a VkBuffer created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT flag", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-countInfo-09168", - "text": " For each VkDispatchGraphInfoAMDX structure in countInfo->infos, payloads must be a multiple of executionGraphDispatchAddressAlignment" + "text": "For each VkDispatchGraphInfoAMDX structure in countInfo->infos, payloads must be a multiple of executionGraphDispatchAddressAlignment", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-countInfo-09169", - "text": " For each VkDispatchGraphInfoAMDX structure in countInfo->infos, nodeIndex must be a valid node index in the currently bound execution graph pipeline, as returned by vkGetExecutionGraphPipelineNodeIndexAMDX when this command is executed on the device" + "text": "For each VkDispatchGraphInfoAMDX structure in countInfo->infos, nodeIndex must be a valid node index in the currently bound execution graph pipeline, as returned by vkGetExecutionGraphPipelineNodeIndexAMDX when this command is executed on the device", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-countInfo-09170", - "text": " For each VkDispatchGraphInfoAMDX structure in countInfo->infos, device memory locations at indexes in the range [payloads, payloads + (payloadCount * payloadStride)), at a granularity of payloadStride must contain a payload matching the size of the input payload expected by the node in nodeIndex in the first bytes when this command is executed on the device" + "text": "For each VkDispatchGraphInfoAMDX structure in countInfo->infos, device memory locations at indexes in the range [payloads, payloads + (payloadCount * payloadStride)), at a granularity of payloadStride must contain a payload matching the size of the input payload expected by the node in nodeIndex in the first bytes when this command is executed on the device", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-renderpass", - "text": " This command must only be called outside of a render pass instance" + "text": "This command must only be called outside of a render pass instance", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-bufferlevel", - "text": " commandBuffer must be a primary VkCommandBuffer" + "text": "commandBuffer must be a primary VkCommandBuffer", + "page": "vkspec" } ] }, @@ -72926,7 +93933,234 @@ "core": [ { "vuid": "VUID-VkDispatchGraphInfoAMDX-payloadCount-09171", - "text": " payloadCount must be no greater than maxExecutionGraphShaderPayloadCount" + "text": "payloadCount must be no greater than maxExecutionGraphShaderPayloadCount", + "page": "vkspec" + } + ] + }, + "vkSetLatencySleepModeNV": { + "core": [ + { + "vuid": "VUID-vkSetLatencySleepModeNV-device-parameter", + "text": "device must be a valid VkDevice handle", + "page": "vkspec" + }, + { + "vuid": "VUID-vkSetLatencySleepModeNV-swapchain-parameter", + "text": "swapchain must be a valid VkSwapchainKHR handle", + "page": "vkspec" + }, + { + "vuid": "VUID-vkSetLatencySleepModeNV-pSleepModeInfo-parameter", + "text": "pSleepModeInfo must be a valid pointer to a valid VkLatencySleepModeInfoNV structure", + "page": "vkspec" + }, + { + "vuid": "VUID-vkSetLatencySleepModeNV-swapchain-parent", + "text": "swapchain must have been created, allocated, or retrieved from device", + "page": "vkspec" + } + ] + }, + "VkLatencySleepModeInfoNV": { + "core": [ + { + "vuid": "VUID-VkLatencySleepModeInfoNV-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NV", + "page": "vkspec" + } + ] + }, + "vkLatencySleepNV": { + "core": [ + { + "vuid": "VUID-vkLatencySleepNV-device-parameter", + "text": "device must be a valid VkDevice handle", + "page": "vkspec" + }, + { + "vuid": "VUID-vkLatencySleepNV-swapchain-parameter", + "text": "swapchain must be a valid VkSwapchainKHR handle", + "page": "vkspec" + }, + { + "vuid": "VUID-vkLatencySleepNV-pSleepInfo-parameter", + "text": "pSleepInfo must be a valid pointer to a valid VkLatencySleepInfoNV structure", + "page": "vkspec" + }, + { + "vuid": "VUID-vkLatencySleepNV-swapchain-parent", + "text": "swapchain must have been created, allocated, or retrieved from device", + "page": "vkspec" + } + ] + }, + "VkLatencySleepInfoNV": { + "core": [ + { + "vuid": "VUID-VkLatencySleepInfoNV-signalSemaphore-09361", + "text": "signalSemaphore must be a timeline semaphore", + "page": "vkspec" + }, + { + "vuid": "VUID-VkLatencySleepInfoNV-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_LATENCY_SLEEP_INFO_NV", + "page": "vkspec" + }, + { + "vuid": "VUID-VkLatencySleepInfoNV-signalSemaphore-parameter", + "text": "signalSemaphore must be a valid VkSemaphore handle", + "page": "vkspec" + } + ] + }, + "vkSetLatencyMarkerNV": { + "core": [ + { + "vuid": "VUID-vkSetLatencyMarkerNV-device-parameter", + "text": "device must be a valid VkDevice handle", + "page": "vkspec" + }, + { + "vuid": "VUID-vkSetLatencyMarkerNV-swapchain-parameter", + "text": "swapchain must be a valid VkSwapchainKHR handle", + "page": "vkspec" + }, + { + "vuid": "VUID-vkSetLatencyMarkerNV-pLatencyMarkerInfo-parameter", + "text": "pLatencyMarkerInfo must be a valid pointer to a valid VkSetLatencyMarkerInfoNV structure", + "page": "vkspec" + }, + { + "vuid": "VUID-vkSetLatencyMarkerNV-swapchain-parent", + "text": "swapchain must have been created, allocated, or retrieved from device", + "page": "vkspec" + } + ] + }, + "VkSetLatencyMarkerInfoNV": { + "core": [ + { + "vuid": "VUID-VkSetLatencyMarkerInfoNV-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NV", + "page": "vkspec" + }, + { + "vuid": "VUID-VkSetLatencyMarkerInfoNV-marker-parameter", + "text": "marker must be a valid VkLatencyMarkerNV value", + "page": "vkspec" + } + ] + }, + "vkGetLatencyTimingsNV": { + "core": [ + { + "vuid": "VUID-vkGetLatencyTimingsNV-device-parameter", + "text": "device must be a valid VkDevice handle", + "page": "vkspec" + }, + { + "vuid": "VUID-vkGetLatencyTimingsNV-swapchain-parameter", + "text": "swapchain must be a valid VkSwapchainKHR handle", + "page": "vkspec" + }, + { + "vuid": "VUID-vkGetLatencyTimingsNV-pTimingCount-parameter", + "text": "pTimingCount must be a valid pointer to a uint32_t value", + "page": "vkspec" + }, + { + "vuid": "VUID-vkGetLatencyTimingsNV-pLatencyMarkerInfo-parameter", + "text": "pLatencyMarkerInfo must be a valid pointer to a VkGetLatencyMarkerInfoNV structure", + "page": "vkspec" + }, + { + "vuid": "VUID-vkGetLatencyTimingsNV-swapchain-parent", + "text": "swapchain must have been created, allocated, or retrieved from device", + "page": "vkspec" + } + ] + }, + "VkGetLatencyMarkerInfoNV": { + "core": [ + { + "vuid": "VUID-VkGetLatencyMarkerInfoNV-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NV", + "page": "vkspec" + }, + { + "vuid": "VUID-VkGetLatencyMarkerInfoNV-pTimings-parameter", + "text": "pTimings must be a valid pointer to a VkLatencyTimingsFrameReportNV structure", + "page": "vkspec" + } + ] + }, + "VkLatencyTimingsFrameReportNV": { + "core": [ + { + "vuid": "VUID-VkLatencyTimingsFrameReportNV-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NV", + "page": "vkspec" + } + ] + }, + "VkLatencySubmissionPresentIdNV": { + "core": [ + { + "vuid": "VUID-VkLatencySubmissionPresentIdNV-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV", + "page": "vkspec" + } + ] + }, + "vkQueueNotifyOutOfBandNV": { + "core": [ + { + "vuid": "VUID-vkQueueNotifyOutOfBandNV-queue-parameter", + "text": "queue must be a valid VkQueue handle", + "page": "vkspec" + }, + { + "vuid": "VUID-vkQueueNotifyOutOfBandNV-pQueueTypeInfo-parameter", + "text": "pQueueTypeInfo must be a valid pointer to a valid VkOutOfBandQueueTypeInfoNV structure", + "page": "vkspec" + } + ] + }, + "VkOutOfBandQueueTypeInfoNV": { + "core": [ + { + "vuid": "VUID-VkOutOfBandQueueTypeInfoNV-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NV", + "page": "vkspec" + }, + { + "vuid": "VUID-VkOutOfBandQueueTypeInfoNV-queueType-parameter", + "text": "queueType must be a valid VkOutOfBandQueueTypeNV value", + "page": "vkspec" + } + ] + }, + "VkSwapchainLatencyCreateInfoNV": { + "core": [ + { + "vuid": "VUID-VkSwapchainLatencyCreateInfoNV-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV", + "page": "vkspec" + } + ] + }, + "VkLatencySurfaceCapabilitiesNV": { + "core": [ + { + "vuid": "VUID-VkLatencySurfaceCapabilitiesNV-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV", + "page": "vkspec" + }, + { + "vuid": "VUID-VkLatencySurfaceCapabilitiesNV-pPresentModes-parameter", + "text": "If presentModeCount is not 0, and pPresentModes is not NULL, pPresentModes must be a valid pointer to an array of presentModeCount VkPresentModeKHR values", + "page": "vkspec" } ] }, @@ -72934,11 +94168,13 @@ "core": [ { "vuid": "VUID-vkEnumerateInstanceLayerProperties-pPropertyCount-parameter", - "text": " pPropertyCount must be a valid pointer to a uint32_t value" + "text": "pPropertyCount must be a valid pointer to a uint32_t value", + "page": "vkspec" }, { "vuid": "VUID-vkEnumerateInstanceLayerProperties-pProperties-parameter", - "text": " If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkLayerProperties structures" + "text": "If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkLayerProperties structures", + "page": "vkspec" } ] }, @@ -72946,15 +94182,18 @@ "core": [ { "vuid": "VUID-vkEnumerateDeviceLayerProperties-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": "physicalDevice must be a valid VkPhysicalDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkEnumerateDeviceLayerProperties-pPropertyCount-parameter", - "text": " pPropertyCount must be a valid pointer to a uint32_t value" + "text": "pPropertyCount must be a valid pointer to a uint32_t value", + "page": "vkspec" }, { "vuid": "VUID-vkEnumerateDeviceLayerProperties-pProperties-parameter", - "text": " If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkLayerProperties structures" + "text": "If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkLayerProperties structures", + "page": "vkspec" } ] }, @@ -72962,15 +94201,18 @@ "core": [ { "vuid": "VUID-vkEnumerateInstanceExtensionProperties-pLayerName-parameter", - "text": " If pLayerName is not NULL, pLayerName must be a null-terminated UTF-8 string" + "text": "If pLayerName is not NULL, pLayerName must be a null-terminated UTF-8 string", + "page": "vkspec" }, { "vuid": "VUID-vkEnumerateInstanceExtensionProperties-pPropertyCount-parameter", - "text": " pPropertyCount must be a valid pointer to a uint32_t value" + "text": "pPropertyCount must be a valid pointer to a uint32_t value", + "page": "vkspec" }, { "vuid": "VUID-vkEnumerateInstanceExtensionProperties-pProperties-parameter", - "text": " If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkExtensionProperties structures" + "text": "If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkExtensionProperties structures", + "page": "vkspec" } ] }, @@ -72978,19 +94220,23 @@ "core": [ { "vuid": "VUID-vkEnumerateDeviceExtensionProperties-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": "physicalDevice must be a valid VkPhysicalDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkEnumerateDeviceExtensionProperties-pLayerName-parameter", - "text": " If pLayerName is not NULL, pLayerName must be a null-terminated UTF-8 string" + "text": "If pLayerName is not NULL, pLayerName must be a null-terminated UTF-8 string", + "page": "vkspec" }, { "vuid": "VUID-vkEnumerateDeviceExtensionProperties-pPropertyCount-parameter", - "text": " pPropertyCount must be a valid pointer to a uint32_t value" + "text": "pPropertyCount must be a valid pointer to a uint32_t value", + "page": "vkspec" }, { "vuid": "VUID-vkEnumerateDeviceExtensionProperties-pProperties-parameter", - "text": " If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkExtensionProperties structures" + "text": "If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkExtensionProperties structures", + "page": "vkspec" } ] }, @@ -72998,11 +94244,13 @@ "core": [ { "vuid": "VUID-vkGetPhysicalDeviceFeatures-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": "physicalDevice must be a valid VkPhysicalDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceFeatures-pFeatures-parameter", - "text": " pFeatures must be a valid pointer to a VkPhysicalDeviceFeatures structure" + "text": "pFeatures must be a valid pointer to a VkPhysicalDeviceFeatures structure", + "page": "vkspec" } ] }, @@ -73010,11 +94258,13 @@ "core": [ { "vuid": "VUID-vkGetPhysicalDeviceFeatures2-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": "physicalDevice must be a valid VkPhysicalDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceFeatures2-pFeatures-parameter", - "text": " pFeatures must be a valid pointer to a VkPhysicalDeviceFeatures2 structure" + "text": "pFeatures must be a valid pointer to a VkPhysicalDeviceFeatures2 structure", + "page": "vkspec" } ] }, @@ -73022,7 +94272,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceFeatures2-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2", + "page": "vkspec" } ] }, @@ -73030,7 +94281,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceVulkan11Features-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES", + "page": "vkspec" } ] }, @@ -73038,7 +94290,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceVulkan12Features-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES", + "page": "vkspec" } ] }, @@ -73046,7 +94299,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceVulkan13Features-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES", + "page": "vkspec" } ] }, @@ -73054,11 +94308,13 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceVariablePointersFeatures-variablePointers-01431", - "text": " If variablePointers is enabled then variablePointersStorageBuffer must also be enabled" + "text": "If variablePointers is enabled then variablePointersStorageBuffer must also be enabled", + "page": "vkspec" }, { "vuid": "VUID-VkPhysicalDeviceVariablePointersFeatures-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES", + "page": "vkspec" } ] }, @@ -73066,15 +94322,18 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceMultiviewFeatures-multiviewGeometryShader-00580", - "text": " If multiviewGeometryShader is enabled then multiview must also be enabled" + "text": "If multiviewGeometryShader is enabled then multiview must also be enabled", + "page": "vkspec" }, { "vuid": "VUID-VkPhysicalDeviceMultiviewFeatures-multiviewTessellationShader-00581", - "text": " If multiviewTessellationShader is enabled then multiview must also be enabled" + "text": "If multiviewTessellationShader is enabled then multiview must also be enabled", + "page": "vkspec" }, { "vuid": "VUID-VkPhysicalDeviceMultiviewFeatures-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES", + "page": "vkspec" } ] }, @@ -73082,7 +94341,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceShaderAtomicFloatFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT", + "page": "vkspec" } ] }, @@ -73090,7 +94350,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT", + "page": "vkspec" } ] }, @@ -73098,7 +94359,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceShaderAtomicInt64Features-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES", + "page": "vkspec" } ] }, @@ -73106,7 +94368,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT", + "page": "vkspec" } ] }, @@ -73114,7 +94377,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDevice8BitStorageFeatures-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES", + "page": "vkspec" } ] }, @@ -73122,7 +94386,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDevice16BitStorageFeatures-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES", + "page": "vkspec" } ] }, @@ -73130,7 +94395,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceShaderFloat16Int8Features-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES", + "page": "vkspec" } ] }, @@ -73138,7 +94404,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceShaderClockFeaturesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR", + "page": "vkspec" } ] }, @@ -73146,7 +94413,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceSamplerYcbcrConversionFeatures-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES", + "page": "vkspec" } ] }, @@ -73154,7 +94422,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceProtectedMemoryFeatures-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES", + "page": "vkspec" } ] }, @@ -73162,7 +94431,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT", + "page": "vkspec" } ] }, @@ -73170,7 +94440,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceConditionalRenderingFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT", + "page": "vkspec" } ] }, @@ -73178,7 +94449,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceShaderDrawParametersFeatures-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES", + "page": "vkspec" } ] }, @@ -73186,7 +94458,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceMeshShaderFeaturesNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV", + "page": "vkspec" } ] }, @@ -73194,15 +94467,18 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceMeshShaderFeaturesEXT-multiviewMeshShader-07032", - "text": " If multiviewMeshShader is enabled then VkPhysicalDeviceMultiviewFeaturesKHR::multiview must also be enabled" + "text": "If multiviewMeshShader is enabled then VkPhysicalDeviceMultiviewFeaturesKHR::multiview must also be enabled", + "page": "vkspec" }, { "vuid": "VUID-VkPhysicalDeviceMeshShaderFeaturesEXT-primitiveFragmentShadingRateMeshShader-07033", - "text": " If primitiveFragmentShadingRateMeshShader is enabled then VkPhysicalDeviceFragmentShadingRateFeaturesKHR::primitiveFragmentShadingRate must also be enabled" + "text": "If primitiveFragmentShadingRateMeshShader is enabled then VkPhysicalDeviceFragmentShadingRateFeaturesKHR::primitiveFragmentShadingRate must also be enabled", + "page": "vkspec" }, { "vuid": "VUID-VkPhysicalDeviceMeshShaderFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT", + "page": "vkspec" } ] }, @@ -73210,7 +94486,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceMemoryDecompressionFeaturesNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV", + "page": "vkspec" } ] }, @@ -73218,7 +94495,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceDescriptorIndexingFeatures-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES", + "page": "vkspec" } ] }, @@ -73226,7 +94504,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceCopyMemoryIndirectFeaturesNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV", + "page": "vkspec" } ] }, @@ -73234,7 +94513,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT", + "page": "vkspec" } ] }, @@ -73242,7 +94522,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceASTCDecodeFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT", + "page": "vkspec" } ] }, @@ -73250,7 +94531,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceTransformFeedbackFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT", + "page": "vkspec" } ] }, @@ -73258,7 +94540,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceVulkanMemoryModelFeatures-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES", + "page": "vkspec" } ] }, @@ -73266,7 +94549,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceInlineUniformBlockFeatures-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES", + "page": "vkspec" } ] }, @@ -73274,7 +94558,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV", + "page": "vkspec" } ] }, @@ -73282,7 +94567,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceExclusiveScissorFeaturesNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV", + "page": "vkspec" } ] }, @@ -73290,7 +94576,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceCornerSampledImageFeaturesNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV", + "page": "vkspec" } ] }, @@ -73298,7 +94585,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceComputeShaderDerivativesFeaturesNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV", + "page": "vkspec" } ] }, @@ -73306,7 +94594,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR", + "page": "vkspec" } ] }, @@ -73314,7 +94603,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceShaderImageFootprintFeaturesNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV", + "page": "vkspec" } ] }, @@ -73322,7 +94612,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceShadingRateImageFeaturesNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV", + "page": "vkspec" } ] }, @@ -73330,7 +94621,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceFragmentDensityMapFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT", + "page": "vkspec" } ] }, @@ -73338,7 +94630,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceFragmentDensityMap2FeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT", + "page": "vkspec" } ] }, @@ -73346,7 +94639,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM", + "page": "vkspec" } ] }, @@ -73354,7 +94648,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceInvocationMaskFeaturesHUAWEI-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI", + "page": "vkspec" } ] }, @@ -73362,7 +94657,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceScalarBlockLayoutFeatures-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES", + "page": "vkspec" } ] }, @@ -73370,7 +94666,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceUniformBufferStandardLayoutFeatures-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES", + "page": "vkspec" } ] }, @@ -73378,7 +94675,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceDepthClipEnableFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT", + "page": "vkspec" } ] }, @@ -73386,7 +94684,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceMemoryPriorityFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT", + "page": "vkspec" } ] }, @@ -73394,7 +94693,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceBufferDeviceAddressFeatures-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES", + "page": "vkspec" } ] }, @@ -73402,7 +94702,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceBufferDeviceAddressFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT", + "page": "vkspec" } ] }, @@ -73410,7 +94711,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV", + "page": "vkspec" } ] }, @@ -73418,7 +94720,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceImagelessFramebufferFeatures-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES", + "page": "vkspec" } ] }, @@ -73426,7 +94729,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT", + "page": "vkspec" } ] }, @@ -73434,7 +94738,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceCooperativeMatrixFeaturesNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV", + "page": "vkspec" } ] }, @@ -73442,7 +94747,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceCooperativeMatrixFeaturesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR", + "page": "vkspec" } ] }, @@ -73450,7 +94756,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceYcbcrImageArraysFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT", + "page": "vkspec" } ] }, @@ -73458,7 +94765,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES", + "page": "vkspec" } ] }, @@ -73466,7 +94774,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceHostQueryResetFeatures-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES", + "page": "vkspec" } ] }, @@ -73474,7 +94783,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL", + "page": "vkspec" } ] }, @@ -73482,7 +94792,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceCoverageReductionModeFeaturesNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV", + "page": "vkspec" } ] }, @@ -73490,7 +94801,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceTimelineSemaphoreFeatures-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES", + "page": "vkspec" } ] }, @@ -73498,7 +94810,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX", + "page": "vkspec" } ] }, @@ -73506,7 +94819,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceIndexTypeUint8FeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT", + "page": "vkspec" } ] }, @@ -73514,7 +94828,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT", + "page": "vkspec" } ] }, @@ -73522,7 +94837,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceShaderSMBuiltinsFeaturesNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV", + "page": "vkspec" } ] }, @@ -73530,7 +94846,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES", + "page": "vkspec" } ] }, @@ -73538,7 +94855,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR", + "page": "vkspec" } ] }, @@ -73546,7 +94864,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES", + "page": "vkspec" } ] }, @@ -73554,7 +94873,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT", + "page": "vkspec" } ] }, @@ -73562,7 +94882,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT", + "page": "vkspec" } ] }, @@ -73570,7 +94891,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceTextureCompressionASTCHDRFeatures-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES", + "page": "vkspec" } ] }, @@ -73578,7 +94900,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceLineRasterizationFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT", + "page": "vkspec" } ] }, @@ -73586,7 +94909,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceSubgroupSizeControlFeatures-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES", + "page": "vkspec" } ] }, @@ -73594,7 +94918,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceCoherentMemoryFeaturesAMD-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD", + "page": "vkspec" } ] }, @@ -73602,7 +94927,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceAccelerationStructureFeaturesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR", + "page": "vkspec" } ] }, @@ -73610,11 +94936,13 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceRayTracingPipelineFeaturesKHR-rayTracingPipelineShaderGroupHandleCaptureReplayMixed-03575", - "text": " If rayTracingPipelineShaderGroupHandleCaptureReplayMixed is VK_TRUE, rayTracingPipelineShaderGroupHandleCaptureReplay must also be VK_TRUE" + "text": "If rayTracingPipelineShaderGroupHandleCaptureReplayMixed is VK_TRUE, rayTracingPipelineShaderGroupHandleCaptureReplay must also be VK_TRUE", + "page": "vkspec" }, { "vuid": "VUID-VkPhysicalDeviceRayTracingPipelineFeaturesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR", + "page": "vkspec" } ] }, @@ -73622,7 +94950,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceRayQueryFeaturesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR", + "page": "vkspec" } ] }, @@ -73630,7 +94959,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR", + "page": "vkspec" } ] }, @@ -73638,7 +94968,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceExtendedDynamicStateFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT", + "page": "vkspec" } ] }, @@ -73646,7 +94977,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceExtendedDynamicState2FeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT", + "page": "vkspec" } ] }, @@ -73654,7 +94986,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceExtendedDynamicState3FeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT", + "page": "vkspec" } ] }, @@ -73662,7 +94995,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV", + "page": "vkspec" } ] }, @@ -73670,7 +95004,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV", + "page": "vkspec" } ] }, @@ -73678,7 +95013,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceDiagnosticsConfigFeaturesNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV", + "page": "vkspec" } ] }, @@ -73686,7 +95022,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceDeviceMemoryReportFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT", + "page": "vkspec" } ] }, @@ -73694,7 +95031,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR", + "page": "vkspec" } ] }, @@ -73702,7 +95040,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDevicePipelineCreationCacheControlFeatures-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES", + "page": "vkspec" } ] }, @@ -73710,7 +95049,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES", + "page": "vkspec" } ] }, @@ -73718,7 +95058,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDevicePrivateDataFeatures-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES", + "page": "vkspec" } ] }, @@ -73726,7 +95067,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR", + "page": "vkspec" } ] }, @@ -73734,11 +95076,13 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceRobustness2FeaturesEXT-robustBufferAccess2-04000", - "text": " If robustBufferAccess2 is enabled then robustBufferAccess must also be enabled" + "text": "If robustBufferAccess2 is enabled then robustBufferAccess must also be enabled", + "page": "vkspec" }, { "vuid": "VUID-VkPhysicalDeviceRobustness2FeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT", + "page": "vkspec" } ] }, @@ -73746,7 +95090,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceImageRobustnessFeatures-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES", + "page": "vkspec" } ] }, @@ -73754,7 +95099,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceShaderTerminateInvocationFeatures-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES", + "page": "vkspec" } ] }, @@ -73762,7 +95108,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceCustomBorderColorFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT", + "page": "vkspec" } ] }, @@ -73770,7 +95117,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceBorderColorSwizzleFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT", + "page": "vkspec" } ] }, @@ -73778,7 +95126,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDevicePortabilitySubsetFeaturesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR", + "page": "vkspec" } ] }, @@ -73786,7 +95135,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDevicePerformanceQueryFeaturesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR", + "page": "vkspec" } ] }, @@ -73794,7 +95144,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDevice4444FormatsFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT", + "page": "vkspec" } ] }, @@ -73802,7 +95153,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT", + "page": "vkspec" } ] }, @@ -73810,7 +95162,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceDepthClipControlFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT", + "page": "vkspec" } ] }, @@ -73818,7 +95171,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR", + "page": "vkspec" } ] }, @@ -73826,7 +95180,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceSynchronization2Features-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES", + "page": "vkspec" } ] }, @@ -73834,7 +95189,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT", + "page": "vkspec" } ] }, @@ -73842,7 +95198,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT", + "page": "vkspec" } ] }, @@ -73850,7 +95207,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceFragmentShadingRateFeaturesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR", + "page": "vkspec" } ] }, @@ -73858,7 +95216,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceLegacyDitheringFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT", + "page": "vkspec" } ] }, @@ -73866,7 +95225,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV", + "page": "vkspec" } ] }, @@ -73874,7 +95234,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceInheritedViewportScissorFeaturesNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV", + "page": "vkspec" } ] }, @@ -73882,7 +95243,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDevicePipelineProtectedAccessFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT", + "page": "vkspec" } ] }, @@ -73890,7 +95252,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT", + "page": "vkspec" } ] }, @@ -73898,7 +95261,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceColorWriteEnableFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT", + "page": "vkspec" } ] }, @@ -73906,7 +95270,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDevicePipelinePropertiesFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT", + "page": "vkspec" } ] }, @@ -73914,7 +95279,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceProvokingVertexFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT", + "page": "vkspec" } ] }, @@ -73922,7 +95288,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceDescriptorBufferFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT", + "page": "vkspec" } ] }, @@ -73930,7 +95297,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT", + "page": "vkspec" } ] }, @@ -73938,7 +95306,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceMultiDrawFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT", + "page": "vkspec" } ] }, @@ -73946,7 +95315,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceRayTracingMotionBlurFeaturesNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV", + "page": "vkspec" } ] }, @@ -73954,7 +95324,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceOpacityMicromapFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT", + "page": "vkspec" } ] }, @@ -73962,7 +95333,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceDisplacementMicromapFeaturesNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV", + "page": "vkspec" } ] }, @@ -73970,7 +95342,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceSubpassShadingFeaturesHUAWEI-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI", + "page": "vkspec" } ] }, @@ -73978,7 +95351,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceExternalMemoryRDMAFeaturesNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV", + "page": "vkspec" } ] }, @@ -73986,7 +95360,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDevicePresentIdFeaturesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR", + "page": "vkspec" } ] }, @@ -73994,7 +95369,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDevicePresentWaitFeaturesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR", + "page": "vkspec" } ] }, @@ -74002,7 +95378,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceHostImageCopyFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT", + "page": "vkspec" } ] }, @@ -74010,7 +95387,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDevicePresentBarrierFeaturesNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV", + "page": "vkspec" } ] }, @@ -74018,7 +95396,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceShaderIntegerDotProductFeatures-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES", + "page": "vkspec" } ] }, @@ -74026,7 +95405,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceMaintenance4Features-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES", + "page": "vkspec" } ] }, @@ -74034,7 +95414,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceMaintenance5FeaturesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR", + "page": "vkspec" } ] }, @@ -74042,7 +95423,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceDynamicRenderingFeatures-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES", + "page": "vkspec" } ] }, @@ -74050,7 +95432,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT", + "page": "vkspec" } ] }, @@ -74058,7 +95441,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDevicePipelineRobustnessFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT", + "page": "vkspec" } ] }, @@ -74066,7 +95450,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceImageViewMinLodFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT", + "page": "vkspec" } ] }, @@ -74074,7 +95459,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT", + "page": "vkspec" } ] }, @@ -74082,7 +95468,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT", + "page": "vkspec" } ] }, @@ -74090,7 +95477,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceLinearColorAttachmentFeaturesNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV", + "page": "vkspec" } ] }, @@ -74098,7 +95486,17 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT", + "page": "vkspec" + } + ] + }, + "VkPhysicalDeviceNestedCommandBufferFeaturesEXT": { + "core": [ + { + "vuid": "VUID-VkPhysicalDeviceNestedCommandBufferFeaturesEXT-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT", + "page": "vkspec" } ] }, @@ -74106,7 +95504,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT", + "page": "vkspec" } ] }, @@ -74114,7 +95513,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT", + "page": "vkspec" } ] }, @@ -74122,7 +95522,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceImage2DViewOf3DFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT", + "page": "vkspec" } ] }, @@ -74130,7 +95531,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT", + "page": "vkspec" } ] }, @@ -74138,7 +95540,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceImageCompressionControlFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT", + "page": "vkspec" } ] }, @@ -74146,7 +95549,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT", + "page": "vkspec" } ] }, @@ -74154,7 +95558,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR", + "page": "vkspec" } ] }, @@ -74162,7 +95567,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD", + "page": "vkspec" } ] }, @@ -74170,7 +95576,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT", + "page": "vkspec" } ] }, @@ -74178,7 +95585,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT", + "page": "vkspec" } ] }, @@ -74186,7 +95594,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceTilePropertiesFeaturesQCOM-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM", + "page": "vkspec" } ] }, @@ -74194,7 +95603,17 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceImageProcessingFeaturesQCOM-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM", + "page": "vkspec" + } + ] + }, + "VkPhysicalDeviceImageProcessing2FeaturesQCOM": { + "core": [ + { + "vuid": "VUID-VkPhysicalDeviceImageProcessing2FeaturesQCOM-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM", + "page": "vkspec" } ] }, @@ -74202,7 +95621,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceDepthClampZeroOneFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT", + "page": "vkspec" } ] }, @@ -74210,7 +95630,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceShaderTileImageFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT", + "page": "vkspec" } ] }, @@ -74218,7 +95639,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceDepthBiasControlFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT", + "page": "vkspec" } ] }, @@ -74226,7 +95648,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceAddressBindingReportFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT", + "page": "vkspec" } ] }, @@ -74234,7 +95657,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceOpticalFlowFeaturesNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV", + "page": "vkspec" } ] }, @@ -74242,7 +95666,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceFaultFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT", + "page": "vkspec" } ] }, @@ -74250,7 +95675,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT", + "page": "vkspec" } ] }, @@ -74258,7 +95684,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceShaderObjectFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT", + "page": "vkspec" } ] }, @@ -74266,7 +95693,17 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM", + "page": "vkspec" + } + ] + }, + "VkPhysicalDeviceFrameBoundaryFeaturesEXT": { + "core": [ + { + "vuid": "VUID-VkPhysicalDeviceFrameBoundaryFeaturesEXT-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT", + "page": "vkspec" } ] }, @@ -74274,7 +95711,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT", + "page": "vkspec" } ] }, @@ -74282,7 +95720,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT", + "page": "vkspec" } ] }, @@ -74290,7 +95729,17 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV", + "page": "vkspec" + } + ] + }, + "VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV": { + "core": [ + { + "vuid": "VUID-VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV", + "page": "vkspec" } ] }, @@ -74298,7 +95747,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM", + "page": "vkspec" } ] }, @@ -74306,7 +95756,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM", + "page": "vkspec" } ] }, @@ -74314,7 +95765,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI", + "page": "vkspec" } ] }, @@ -74322,7 +95774,53 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceShaderEnqueueFeaturesAMDX-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX", + "page": "vkspec" + } + ] + }, + "VkPhysicalDeviceCubicClampFeaturesQCOM": { + "core": [ + { + "vuid": "VUID-VkPhysicalDeviceCubicClampFeaturesQCOM-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM", + "page": "vkspec" + } + ] + }, + "VkPhysicalDeviceYcbcrDegammaFeaturesQCOM": { + "core": [ + { + "vuid": "VUID-VkPhysicalDeviceYcbcrDegammaFeaturesQCOM-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM", + "page": "vkspec" + } + ] + }, + "VkPhysicalDeviceCubicWeightsFeaturesQCOM": { + "core": [ + { + "vuid": "VUID-VkPhysicalDeviceCubicWeightsFeaturesQCOM-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM", + "page": "vkspec" + } + ] + }, + "VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV": { + "core": [ + { + "vuid": "VUID-VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV", + "page": "vkspec" + } + ] + }, + "VkPhysicalDeviceExternalFormatResolveFeaturesANDROID": { + "core": [ + { + "vuid": "VUID-VkPhysicalDeviceExternalFormatResolveFeaturesANDROID-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID", + "page": "vkspec" } ] }, @@ -74330,7 +95828,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDevicePushDescriptorPropertiesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR", + "page": "vkspec" } ] }, @@ -74338,7 +95837,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceMultiviewProperties-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES", + "page": "vkspec" } ] }, @@ -74346,7 +95846,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceFloatControlsProperties-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES", + "page": "vkspec" } ] }, @@ -74354,7 +95855,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceDiscardRectanglePropertiesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT", + "page": "vkspec" } ] }, @@ -74362,7 +95864,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceSampleLocationsPropertiesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT", + "page": "vkspec" } ] }, @@ -74370,7 +95873,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceExternalMemoryHostPropertiesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT", + "page": "vkspec" } ] }, @@ -74378,7 +95882,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX", + "page": "vkspec" } ] }, @@ -74386,7 +95891,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDevicePointClippingProperties-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES", + "page": "vkspec" } ] }, @@ -74394,7 +95900,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceSubgroupProperties-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES", + "page": "vkspec" } ] }, @@ -74402,7 +95909,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceSubgroupSizeControlProperties-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES", + "page": "vkspec" } ] }, @@ -74410,7 +95918,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT", + "page": "vkspec" } ] }, @@ -74418,7 +95927,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT", + "page": "vkspec" } ] }, @@ -74426,7 +95936,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceSamplerFilterMinmaxProperties-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES", + "page": "vkspec" } ] }, @@ -74434,7 +95945,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceProtectedMemoryProperties-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES", + "page": "vkspec" } ] }, @@ -74442,7 +95954,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceMaintenance3Properties-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES", + "page": "vkspec" } ] }, @@ -74450,7 +95963,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceMaintenance4Properties-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES", + "page": "vkspec" } ] }, @@ -74458,7 +95972,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceMaintenance5PropertiesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR", + "page": "vkspec" } ] }, @@ -74466,7 +95981,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceMeshShaderPropertiesNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV", + "page": "vkspec" } ] }, @@ -74474,7 +95990,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceMeshShaderPropertiesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT", + "page": "vkspec" } ] }, @@ -74482,7 +95999,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceDescriptorIndexingProperties-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES", + "page": "vkspec" } ] }, @@ -74490,7 +96008,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceInlineUniformBlockProperties-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES", + "page": "vkspec" } ] }, @@ -74498,7 +96017,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceConservativeRasterizationPropertiesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT", + "page": "vkspec" } ] }, @@ -74506,7 +96026,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceFragmentDensityMapPropertiesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT", + "page": "vkspec" } ] }, @@ -74514,7 +96035,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceFragmentDensityMap2PropertiesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT", + "page": "vkspec" } ] }, @@ -74522,7 +96044,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM", + "page": "vkspec" } ] }, @@ -74530,7 +96053,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceShaderCorePropertiesAMD-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD", + "page": "vkspec" } ] }, @@ -74538,7 +96062,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceShaderCoreProperties2AMD-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD", + "page": "vkspec" } ] }, @@ -74546,7 +96071,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceDepthStencilResolveProperties-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES", + "page": "vkspec" } ] }, @@ -74554,7 +96080,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDevicePerformanceQueryPropertiesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR", + "page": "vkspec" } ] }, @@ -74562,7 +96089,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceShadingRateImagePropertiesNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV", + "page": "vkspec" } ] }, @@ -74570,7 +96098,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceMemoryDecompressionPropertiesNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV", + "page": "vkspec" } ] }, @@ -74578,7 +96107,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceTransformFeedbackPropertiesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT", + "page": "vkspec" } ] }, @@ -74586,7 +96116,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceCopyMemoryIndirectPropertiesNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV", + "page": "vkspec" } ] }, @@ -74594,7 +96125,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceRayTracingPropertiesNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV", + "page": "vkspec" } ] }, @@ -74602,7 +96134,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceAccelerationStructurePropertiesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR", + "page": "vkspec" } ] }, @@ -74610,7 +96143,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceRayTracingPipelinePropertiesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR", + "page": "vkspec" } ] }, @@ -74618,7 +96152,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceCooperativeMatrixPropertiesNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV", + "page": "vkspec" } ] }, @@ -74626,7 +96161,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceCooperativeMatrixPropertiesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR", + "page": "vkspec" } ] }, @@ -74634,7 +96170,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceShaderSMBuiltinsPropertiesNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV", + "page": "vkspec" } ] }, @@ -74642,7 +96179,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceTexelBufferAlignmentProperties-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES", + "page": "vkspec" } ] }, @@ -74650,7 +96188,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceTimelineSemaphoreProperties-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES", + "page": "vkspec" } ] }, @@ -74658,7 +96197,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceLineRasterizationPropertiesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT", + "page": "vkspec" } ] }, @@ -74666,7 +96206,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceRobustness2PropertiesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT", + "page": "vkspec" } ] }, @@ -74674,7 +96215,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV", + "page": "vkspec" } ] }, @@ -74682,7 +96224,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDevicePortabilitySubsetPropertiesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR", + "page": "vkspec" } ] }, @@ -74690,7 +96233,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceFragmentShadingRatePropertiesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR", + "page": "vkspec" } ] }, @@ -74698,11 +96242,13 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV", + "page": "vkspec" }, { "vuid": "VUID-VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV-maxFragmentShadingRateInvocationCount-parameter", - "text": " maxFragmentShadingRateInvocationCount must be a valid VkSampleCountFlagBits value" + "text": "maxFragmentShadingRateInvocationCount must be a valid VkSampleCountFlagBits value", + "page": "vkspec" } ] }, @@ -74710,7 +96256,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceCustomBorderColorPropertiesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT", + "page": "vkspec" } ] }, @@ -74718,7 +96265,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceProvokingVertexPropertiesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT", + "page": "vkspec" } ] }, @@ -74726,7 +96274,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceDescriptorBufferPropertiesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT", + "page": "vkspec" } ] }, @@ -74734,7 +96283,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT", + "page": "vkspec" } ] }, @@ -74742,15 +96292,18 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceHostImageCopyPropertiesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkPhysicalDeviceHostImageCopyPropertiesEXT-pCopySrcLayouts-parameter", - "text": " If copySrcLayoutCount is not 0, and pCopySrcLayouts is not NULL, pCopySrcLayouts must be a valid pointer to an array of copySrcLayoutCount VkImageLayout values" + "text": "If copySrcLayoutCount is not 0, and pCopySrcLayouts is not NULL, pCopySrcLayouts must be a valid pointer to an array of copySrcLayoutCount VkImageLayout values", + "page": "vkspec" }, { "vuid": "VUID-VkPhysicalDeviceHostImageCopyPropertiesEXT-pCopyDstLayouts-parameter", - "text": " If copyDstLayoutCount is not 0, and pCopyDstLayouts is not NULL, pCopyDstLayouts must be a valid pointer to an array of copyDstLayoutCount VkImageLayout values" + "text": "If copyDstLayoutCount is not 0, and pCopyDstLayouts is not NULL, pCopyDstLayouts must be a valid pointer to an array of copyDstLayoutCount VkImageLayout values", + "page": "vkspec" } ] }, @@ -74758,7 +96311,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceSubpassShadingPropertiesHUAWEI-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI", + "page": "vkspec" } ] }, @@ -74766,7 +96320,17 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceMultiDrawPropertiesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT", + "page": "vkspec" + } + ] + }, + "VkPhysicalDeviceNestedCommandBufferPropertiesEXT": { + "core": [ + { + "vuid": "VUID-VkPhysicalDeviceNestedCommandBufferPropertiesEXT-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT", + "page": "vkspec" } ] }, @@ -74774,7 +96338,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT", + "page": "vkspec" } ] }, @@ -74782,7 +96347,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR", + "page": "vkspec" } ] }, @@ -74790,7 +96356,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT", + "page": "vkspec" } ] }, @@ -74798,7 +96365,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDevicePipelineRobustnessPropertiesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT", + "page": "vkspec" } ] }, @@ -74806,7 +96374,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceExtendedDynamicState3PropertiesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT", + "page": "vkspec" } ] }, @@ -74814,7 +96383,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceOpticalFlowPropertiesNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV", + "page": "vkspec" } ] }, @@ -74822,7 +96392,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceOpacityMicromapPropertiesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT", + "page": "vkspec" } ] }, @@ -74830,7 +96401,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceDisplacementMicromapPropertiesNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV", + "page": "vkspec" } ] }, @@ -74838,7 +96410,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM", + "page": "vkspec" } ] }, @@ -74846,7 +96419,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV", + "page": "vkspec" } ] }, @@ -74854,7 +96428,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI", + "page": "vkspec" } ] }, @@ -74862,7 +96437,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceShaderCorePropertiesARM-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM", + "page": "vkspec" } ] }, @@ -74870,7 +96446,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceShaderObjectPropertiesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT", + "page": "vkspec" } ] }, @@ -74878,7 +96455,26 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceShaderEnqueuePropertiesAMDX-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX", + "page": "vkspec" + } + ] + }, + "VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV": { + "core": [ + { + "vuid": "VUID-VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV", + "page": "vkspec" + } + ] + }, + "VkPhysicalDeviceExternalFormatResolvePropertiesANDROID": { + "core": [ + { + "vuid": "VUID-VkPhysicalDeviceExternalFormatResolvePropertiesANDROID-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID", + "page": "vkspec" } ] }, @@ -74886,15 +96482,18 @@ "core": [ { "vuid": "VUID-vkGetPhysicalDeviceMultisamplePropertiesEXT-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": "physicalDevice must be a valid VkPhysicalDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceMultisamplePropertiesEXT-samples-parameter", - "text": " samples must be a valid VkSampleCountFlagBits value" + "text": "samples must be a valid VkSampleCountFlagBits value", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceMultisamplePropertiesEXT-pMultisampleProperties-parameter", - "text": " pMultisampleProperties must be a valid pointer to a VkMultisamplePropertiesEXT structure" + "text": "pMultisampleProperties must be a valid pointer to a VkMultisamplePropertiesEXT structure", + "page": "vkspec" } ] }, @@ -74902,11 +96501,13 @@ "core": [ { "vuid": "VUID-VkMultisamplePropertiesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkMultisamplePropertiesEXT-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" } ] }, @@ -74914,15 +96515,18 @@ "core": [ { "vuid": "VUID-vkGetPhysicalDeviceFormatProperties-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": "physicalDevice must be a valid VkPhysicalDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceFormatProperties-format-parameter", - "text": " format must be a valid VkFormat value" + "text": "format must be a valid VkFormat value", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceFormatProperties-pFormatProperties-parameter", - "text": " pFormatProperties must be a valid pointer to a VkFormatProperties structure" + "text": "pFormatProperties must be a valid pointer to a VkFormatProperties structure", + "page": "vkspec" } ] }, @@ -74930,15 +96534,18 @@ "core": [ { "vuid": "VUID-vkGetPhysicalDeviceFormatProperties2-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": "physicalDevice must be a valid VkPhysicalDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceFormatProperties2-format-parameter", - "text": " format must be a valid VkFormat value" + "text": "format must be a valid VkFormat value", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceFormatProperties2-pFormatProperties-parameter", - "text": " pFormatProperties must be a valid pointer to a VkFormatProperties2 structure" + "text": "pFormatProperties must be a valid pointer to a VkFormatProperties2 structure", + "page": "vkspec" } ] }, @@ -74946,15 +96553,18 @@ "core": [ { "vuid": "VUID-VkFormatProperties2-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2" + "text": "sType must be VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2", + "page": "vkspec" }, { "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, or VkSubpassResolvePerformanceQueryEXT", + "page": "vkspec" }, { "vuid": "VUID-VkFormatProperties2-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" } ] }, @@ -74962,7 +96572,8 @@ "core": [ { "vuid": "VUID-VkDrmFormatModifierPropertiesListEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT", + "page": "vkspec" } ] }, @@ -74970,7 +96581,8 @@ "core": [ { "vuid": "VUID-VkDrmFormatModifierPropertiesList2EXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT", + "page": "vkspec" } ] }, @@ -74978,7 +96590,8 @@ "core": [ { "vuid": "VUID-VkFormatProperties3-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3" + "text": "sType must be VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3", + "page": "vkspec" } ] }, @@ -74986,7 +96599,8 @@ "core": [ { "vuid": "VUID-VkSubpassResolvePerformanceQueryEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT", + "page": "vkspec" } ] }, @@ -74994,39 +96608,48 @@ "core": [ { "vuid": "VUID-vkGetPhysicalDeviceImageFormatProperties-tiling-02248", - "text": " tiling must not be VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT. (Use vkGetPhysicalDeviceImageFormatProperties2 instead)" + "text": "tiling must not be VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT. (Use vkGetPhysicalDeviceImageFormatProperties2 instead)", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceImageFormatProperties-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": "physicalDevice must be a valid VkPhysicalDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceImageFormatProperties-format-parameter", - "text": " format must be a valid VkFormat value" + "text": "format must be a valid VkFormat value", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceImageFormatProperties-type-parameter", - "text": " type must be a valid VkImageType value" + "text": "type must be a valid VkImageType value", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceImageFormatProperties-tiling-parameter", - "text": " tiling must be a valid VkImageTiling value" + "text": "tiling must be a valid VkImageTiling value", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceImageFormatProperties-usage-parameter", - "text": " usage must be a valid combination of VkImageUsageFlagBits values" + "text": "usage must be a valid combination of VkImageUsageFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceImageFormatProperties-usage-requiredbitmask", - "text": " usage must not be 0" + "text": "usage must not be 0", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceImageFormatProperties-flags-parameter", - "text": " flags must be a valid combination of VkImageCreateFlagBits values" + "text": "flags must be a valid combination of VkImageCreateFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceImageFormatProperties-pImageFormatProperties-parameter", - "text": " pImageFormatProperties must be a valid pointer to a VkImageFormatProperties structure" + "text": "pImageFormatProperties must be a valid pointer to a VkImageFormatProperties structure", + "page": "vkspec" } ] }, @@ -75034,43 +96657,53 @@ "core": [ { "vuid": "VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-externalHandleType-07721", - "text": " externalHandleType must not have more than one bit set" + "text": "externalHandleType must not have more than one bit set", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": "physicalDevice must be a valid VkPhysicalDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-format-parameter", - "text": " format must be a valid VkFormat value" + "text": "format must be a valid VkFormat value", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-type-parameter", - "text": " type must be a valid VkImageType value" + "text": "type must be a valid VkImageType value", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-tiling-parameter", - "text": " tiling must be a valid VkImageTiling value" + "text": "tiling must be a valid VkImageTiling value", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-usage-parameter", - "text": " usage must be a valid combination of VkImageUsageFlagBits values" + "text": "usage must be a valid combination of VkImageUsageFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-usage-requiredbitmask", - "text": " usage must not be 0" + "text": "usage must not be 0", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-flags-parameter", - "text": " flags must be a valid combination of VkImageCreateFlagBits values" + "text": "flags must be a valid combination of VkImageCreateFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-externalHandleType-parameter", - "text": " externalHandleType must be a valid combination of VkExternalMemoryHandleTypeFlagBitsNV values" + "text": "externalHandleType must be a valid combination of VkExternalMemoryHandleTypeFlagBitsNV values", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-pExternalImageFormatProperties-parameter", - "text": " pExternalImageFormatProperties must be a valid pointer to a VkExternalImageFormatPropertiesNV structure" + "text": "pExternalImageFormatProperties must be a valid pointer to a VkExternalImageFormatPropertiesNV structure", + "page": "vkspec" } ] }, @@ -75078,23 +96711,28 @@ "core": [ { "vuid": "VUID-vkGetPhysicalDeviceImageFormatProperties2-pNext-01868", - "text": " If the pNext chain of pImageFormatProperties includes a VkAndroidHardwareBufferUsageANDROID structure, the pNext chain of pImageFormatInfo must include a VkPhysicalDeviceExternalImageFormatInfo structure with handleType set to VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID" + "text": "If the pNext chain of pImageFormatProperties includes a VkAndroidHardwareBufferUsageANDROID structure, the pNext chain of pImageFormatInfo must include a VkPhysicalDeviceExternalImageFormatInfo structure with handleType set to VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceImageFormatProperties2-pNext-09004", - "text": " If the pNext chain of pImageFormatProperties includes a VkHostImageCopyDevicePerformanceQueryEXT structure, pImageFormatInfo->usage must contain VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT" + "text": "If the pNext chain of pImageFormatProperties includes a VkHostImageCopyDevicePerformanceQueryEXT structure, pImageFormatInfo->usage must contain VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceImageFormatProperties2-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": "physicalDevice must be a valid VkPhysicalDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceImageFormatProperties2-pImageFormatInfo-parameter", - "text": " pImageFormatInfo must be a valid pointer to a valid VkPhysicalDeviceImageFormatInfo2 structure" + "text": "pImageFormatInfo must be a valid pointer to a valid VkPhysicalDeviceImageFormatInfo2 structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceImageFormatProperties2-pImageFormatProperties-parameter", - "text": " pImageFormatProperties must be a valid pointer to a VkImageFormatProperties2 structure" + "text": "pImageFormatProperties must be a valid pointer to a VkImageFormatProperties2 structure", + "page": "vkspec" } ] }, @@ -75102,67 +96740,77 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceImageFormatInfo2-tiling-02249", - "text": " tiling must be VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT if and only if the pNext chain includes VkPhysicalDeviceImageDrmFormatModifierInfoEXT" + "text": "tiling must be VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT if and only if the pNext chain includes VkPhysicalDeviceImageDrmFormatModifierInfoEXT", + "page": "vkspec" }, { "vuid": "VUID-VkPhysicalDeviceImageFormatInfo2-tiling-02313", - "text": " If tiling is VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT and flags contains VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT, then the pNext chain must include a VkImageFormatListCreateInfo structure with non-zero viewFormatCount" + "text": "If tiling is VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT and flags contains VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT, then the pNext chain must include a VkImageFormatListCreateInfo structure with non-zero viewFormatCount", + "page": "vkspec" }, { "vuid": "VUID-VkPhysicalDeviceImageFormatInfo2-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2", + "page": "vkspec" }, { "vuid": "VUID-VkPhysicalDeviceImageFormatInfo2-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 VkImageCompressionControlEXT, VkImageFormatListCreateInfo, VkImageStencilUsageCreateInfo, VkOpticalFlowImageFormatInfoNV, VkPhysicalDeviceExternalImageFormatInfo, VkPhysicalDeviceImageDrmFormatModifierInfoEXT, VkPhysicalDeviceImageViewImageFormatInfoEXT, or VkVideoProfileListInfoKHR" + "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 VkImageCompressionControlEXT, VkImageFormatListCreateInfo, VkImageStencilUsageCreateInfo, VkOpticalFlowImageFormatInfoNV, VkPhysicalDeviceExternalImageFormatInfo, VkPhysicalDeviceImageDrmFormatModifierInfoEXT, VkPhysicalDeviceImageViewImageFormatInfoEXT, or VkVideoProfileListInfoKHR", + "page": "vkspec" }, { "vuid": "VUID-VkPhysicalDeviceImageFormatInfo2-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" }, { "vuid": "VUID-VkPhysicalDeviceImageFormatInfo2-format-parameter", - "text": " format must be a valid VkFormat value" + "text": "format must be a valid VkFormat value", + "page": "vkspec" }, { "vuid": "VUID-VkPhysicalDeviceImageFormatInfo2-type-parameter", - "text": " type must be a valid VkImageType value" + "text": "type must be a valid VkImageType value", + "page": "vkspec" }, { "vuid": "VUID-VkPhysicalDeviceImageFormatInfo2-tiling-parameter", - "text": " tiling must be a valid VkImageTiling value" + "text": "tiling must be a valid VkImageTiling value", + "page": "vkspec" }, { "vuid": "VUID-VkPhysicalDeviceImageFormatInfo2-usage-parameter", - "text": " usage must be a valid combination of VkImageUsageFlagBits values" + "text": "usage must be a valid combination of VkImageUsageFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkPhysicalDeviceImageFormatInfo2-usage-requiredbitmask", - "text": " usage must not be 0" + "text": "usage must not be 0", + "page": "vkspec" }, { "vuid": "VUID-VkPhysicalDeviceImageFormatInfo2-flags-parameter", - "text": " flags must be a valid combination of VkImageCreateFlagBits values" + "text": "flags must be a valid combination of VkImageCreateFlagBits values", + "page": "vkspec" } ] }, "VkImageFormatProperties2": { "core": [ - { - "vuid": "VUID-VkImageFormatProperties2-pNext-09005", - "text": " If VkHostImageCopyDevicePerformanceQueryEXT is included in a pNext chain, the hostImageCopy feature must be enabled" - }, { "vuid": "VUID-VkImageFormatProperties2-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2" + "text": "sType must be VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2", + "page": "vkspec" }, { "vuid": "VUID-VkImageFormatProperties2-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 VkAndroidHardwareBufferUsageANDROID, VkExternalImageFormatProperties, VkFilterCubicImageViewImageFormatPropertiesEXT, VkHostImageCopyDevicePerformanceQueryEXT, VkImageCompressionPropertiesEXT, VkSamplerYcbcrConversionImageFormatProperties, or VkTextureLODGatherFormatPropertiesAMD" + "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 VkAndroidHardwareBufferUsageANDROID, VkExternalImageFormatProperties, VkFilterCubicImageViewImageFormatPropertiesEXT, VkHostImageCopyDevicePerformanceQueryEXT, VkImageCompressionPropertiesEXT, VkSamplerYcbcrConversionImageFormatProperties, or VkTextureLODGatherFormatPropertiesAMD", + "page": "vkspec" }, { "vuid": "VUID-VkImageFormatProperties2-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" } ] }, @@ -75170,7 +96818,8 @@ "core": [ { "vuid": "VUID-VkTextureLODGatherFormatPropertiesAMD-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD" + "text": "sType must be VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD", + "page": "vkspec" } ] }, @@ -75178,11 +96827,13 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceExternalImageFormatInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkPhysicalDeviceExternalImageFormatInfo-handleType-parameter", - "text": " If handleType is not 0, handleType must be a valid VkExternalMemoryHandleTypeFlagBits value" + "text": "If handleType is not 0, handleType must be a valid VkExternalMemoryHandleTypeFlagBits value", + "page": "vkspec" } ] }, @@ -75190,7 +96841,8 @@ "core": [ { "vuid": "VUID-VkExternalImageFormatProperties-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES" + "text": "sType must be VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES", + "page": "vkspec" } ] }, @@ -75198,23 +96850,28 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceImageDrmFormatModifierInfoEXT-sharingMode-02314", - "text": " If sharingMode is VK_SHARING_MODE_CONCURRENT, then pQueueFamilyIndices must be a valid pointer to an array of queueFamilyIndexCount uint32_t values" + "text": "If sharingMode is VK_SHARING_MODE_CONCURRENT, then pQueueFamilyIndices must be a valid pointer to an array of queueFamilyIndexCount uint32_t values", + "page": "vkspec" }, { "vuid": "VUID-VkPhysicalDeviceImageDrmFormatModifierInfoEXT-sharingMode-02315", - "text": " If sharingMode is VK_SHARING_MODE_CONCURRENT, then queueFamilyIndexCount must be greater than 1" + "text": "If sharingMode is VK_SHARING_MODE_CONCURRENT, then queueFamilyIndexCount must be greater than 1", + "page": "vkspec" }, { "vuid": "VUID-VkPhysicalDeviceImageDrmFormatModifierInfoEXT-sharingMode-02316", - "text": " If sharingMode is VK_SHARING_MODE_CONCURRENT, each element of pQueueFamilyIndices must be unique and must be less than the pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties2 for the physicalDevice that was used to create device" + "text": "If sharingMode is VK_SHARING_MODE_CONCURRENT, each element of pQueueFamilyIndices must be unique and must be less than the pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties2 for the physicalDevice that was used to create device", + "page": "vkspec" }, { "vuid": "VUID-VkPhysicalDeviceImageDrmFormatModifierInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkPhysicalDeviceImageDrmFormatModifierInfoEXT-sharingMode-parameter", - "text": " sharingMode must be a valid VkSharingMode value" + "text": "sharingMode must be a valid VkSharingMode value", + "page": "vkspec" } ] }, @@ -75222,7 +96879,8 @@ "core": [ { "vuid": "VUID-VkSamplerYcbcrConversionImageFormatProperties-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES" + "text": "sType must be VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES", + "page": "vkspec" } ] }, @@ -75230,7 +96888,8 @@ "core": [ { "vuid": "VUID-VkAndroidHardwareBufferUsageANDROID-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID" + "text": "sType must be VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID", + "page": "vkspec" } ] }, @@ -75238,7 +96897,8 @@ "core": [ { "vuid": "VUID-VkHostImageCopyDevicePerformanceQueryEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT", + "page": "vkspec" } ] }, @@ -75246,11 +96906,13 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceImageViewImageFormatInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkPhysicalDeviceImageViewImageFormatInfoEXT-imageViewType-parameter", - "text": " imageViewType must be a valid VkImageViewType value" + "text": "imageViewType must be a valid VkImageViewType value", + "page": "vkspec" } ] }, @@ -75258,11 +96920,13 @@ "core": [ { "vuid": "VUID-VkFilterCubicImageViewImageFormatPropertiesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkFilterCubicImageViewImageFormatPropertiesEXT-pNext-02627", - "text": " If the pNext chain of the VkImageFormatProperties2 structure includes a VkFilterCubicImageViewImageFormatPropertiesEXT structure, the pNext chain of the VkPhysicalDeviceImageFormatInfo2 structure must include a VkPhysicalDeviceImageViewImageFormatInfoEXT structure with an imageViewType that is compatible with imageType" + "text": "If the pNext chain of the VkImageFormatProperties2 structure includes a VkFilterCubicImageViewImageFormatPropertiesEXT structure, the pNext chain of the VkPhysicalDeviceImageFormatInfo2 structure must include a VkPhysicalDeviceImageViewImageFormatInfoEXT structure with an imageViewType that is compatible with imageType", + "page": "vkspec" } ] }, @@ -75270,15 +96934,18 @@ "core": [ { "vuid": "VUID-vkGetPhysicalDeviceExternalBufferProperties-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": "physicalDevice must be a valid VkPhysicalDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceExternalBufferProperties-pExternalBufferInfo-parameter", - "text": " pExternalBufferInfo must be a valid pointer to a valid VkPhysicalDeviceExternalBufferInfo structure" + "text": "pExternalBufferInfo must be a valid pointer to a valid VkPhysicalDeviceExternalBufferInfo structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceExternalBufferProperties-pExternalBufferProperties-parameter", - "text": " pExternalBufferProperties must be a valid pointer to a VkExternalBufferProperties structure" + "text": "pExternalBufferProperties must be a valid pointer to a VkExternalBufferProperties structure", + "page": "vkspec" } ] }, @@ -75286,31 +96953,38 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceExternalBufferInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkPhysicalDeviceExternalBufferInfo-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkBufferUsageFlags2CreateInfoKHR" + "text": "pNext must be NULL or a pointer to a valid instance of VkBufferUsageFlags2CreateInfoKHR", + "page": "vkspec" }, { "vuid": "VUID-VkPhysicalDeviceExternalBufferInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" }, { "vuid": "VUID-VkPhysicalDeviceExternalBufferInfo-flags-parameter", - "text": " flags must be a valid combination of VkBufferCreateFlagBits values" + "text": "flags must be a valid combination of VkBufferCreateFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkPhysicalDeviceExternalBufferInfo-usage-parameter", - "text": " usage must be a valid combination of VkBufferUsageFlagBits values" + "text": "usage must be a valid combination of VkBufferUsageFlagBits values", + "page": "vkspec" }, { "vuid": "VUID-VkPhysicalDeviceExternalBufferInfo-usage-requiredbitmask", - "text": " usage must not be 0" + "text": "usage must not be 0", + "page": "vkspec" }, { "vuid": "VUID-VkPhysicalDeviceExternalBufferInfo-handleType-parameter", - "text": " handleType must be a valid VkExternalMemoryHandleTypeFlagBits value" + "text": "handleType must be a valid VkExternalMemoryHandleTypeFlagBits value", + "page": "vkspec" } ] }, @@ -75318,11 +96992,13 @@ "core": [ { "vuid": "VUID-VkExternalBufferProperties-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES" + "text": "sType must be VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES", + "page": "vkspec" }, { "vuid": "VUID-VkExternalBufferProperties-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" } ] }, @@ -75330,15 +97006,18 @@ "core": [ { "vuid": "VUID-vkGetPhysicalDeviceExternalSemaphoreProperties-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": "physicalDevice must be a valid VkPhysicalDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceExternalSemaphoreProperties-pExternalSemaphoreInfo-parameter", - "text": " pExternalSemaphoreInfo must be a valid pointer to a valid VkPhysicalDeviceExternalSemaphoreInfo structure" + "text": "pExternalSemaphoreInfo must be a valid pointer to a valid VkPhysicalDeviceExternalSemaphoreInfo structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceExternalSemaphoreProperties-pExternalSemaphoreProperties-parameter", - "text": " pExternalSemaphoreProperties must be a valid pointer to a VkExternalSemaphoreProperties structure" + "text": "pExternalSemaphoreProperties must be a valid pointer to a VkExternalSemaphoreProperties structure", + "page": "vkspec" } ] }, @@ -75346,19 +97025,23 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceExternalSemaphoreInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkPhysicalDeviceExternalSemaphoreInfo-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkSemaphoreTypeCreateInfo" + "text": "pNext must be NULL or a pointer to a valid instance of VkSemaphoreTypeCreateInfo", + "page": "vkspec" }, { "vuid": "VUID-VkPhysicalDeviceExternalSemaphoreInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" }, { "vuid": "VUID-VkPhysicalDeviceExternalSemaphoreInfo-handleType-parameter", - "text": " handleType must be a valid VkExternalSemaphoreHandleTypeFlagBits value" + "text": "handleType must be a valid VkExternalSemaphoreHandleTypeFlagBits value", + "page": "vkspec" } ] }, @@ -75366,11 +97049,13 @@ "core": [ { "vuid": "VUID-VkExternalSemaphoreProperties-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES" + "text": "sType must be VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES", + "page": "vkspec" }, { "vuid": "VUID-VkExternalSemaphoreProperties-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" } ] }, @@ -75378,15 +97063,18 @@ "core": [ { "vuid": "VUID-vkGetPhysicalDeviceExternalFenceProperties-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": "physicalDevice must be a valid VkPhysicalDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceExternalFenceProperties-pExternalFenceInfo-parameter", - "text": " pExternalFenceInfo must be a valid pointer to a valid VkPhysicalDeviceExternalFenceInfo structure" + "text": "pExternalFenceInfo must be a valid pointer to a valid VkPhysicalDeviceExternalFenceInfo structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceExternalFenceProperties-pExternalFenceProperties-parameter", - "text": " pExternalFenceProperties must be a valid pointer to a VkExternalFenceProperties structure" + "text": "pExternalFenceProperties must be a valid pointer to a VkExternalFenceProperties structure", + "page": "vkspec" } ] }, @@ -75394,15 +97082,18 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceExternalFenceInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO", + "page": "vkspec" }, { "vuid": "VUID-VkPhysicalDeviceExternalFenceInfo-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkPhysicalDeviceExternalFenceInfo-handleType-parameter", - "text": " handleType must be a valid VkExternalFenceHandleTypeFlagBits value" + "text": "handleType must be a valid VkExternalFenceHandleTypeFlagBits value", + "page": "vkspec" } ] }, @@ -75410,11 +97101,13 @@ "core": [ { "vuid": "VUID-VkExternalFenceProperties-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES" + "text": "sType must be VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES", + "page": "vkspec" }, { "vuid": "VUID-VkExternalFenceProperties-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" } ] }, @@ -75422,15 +97115,18 @@ "core": [ { "vuid": "VUID-vkGetPhysicalDeviceCalibrateableTimeDomainsEXT-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": "physicalDevice must be a valid VkPhysicalDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceCalibrateableTimeDomainsEXT-pTimeDomainCount-parameter", - "text": " pTimeDomainCount must be a valid pointer to a uint32_t value" + "text": "pTimeDomainCount must be a valid pointer to a uint32_t value", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceCalibrateableTimeDomainsEXT-pTimeDomains-parameter", - "text": " If the value referenced by pTimeDomainCount is not 0, and pTimeDomains is not NULL, pTimeDomains must be a valid pointer to an array of pTimeDomainCount VkTimeDomainEXT values" + "text": "If the value referenced by pTimeDomainCount is not 0, and pTimeDomains is not NULL, pTimeDomains must be a valid pointer to an array of pTimeDomainCount VkTimeDomainEXT values", + "page": "vkspec" } ] }, @@ -75438,31 +97134,38 @@ "core": [ { "vuid": "VUID-vkSetDebugUtilsObjectNameEXT-pNameInfo-02587", - "text": " pNameInfo->objectType must not be VK_OBJECT_TYPE_UNKNOWN" + "text": "pNameInfo->objectType must not be VK_OBJECT_TYPE_UNKNOWN", + "page": "vkspec" }, { "vuid": "VUID-vkSetDebugUtilsObjectNameEXT-pNameInfo-02588", - "text": " pNameInfo->objectHandle must not be VK_NULL_HANDLE" + "text": "pNameInfo->objectHandle must not be VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-vkSetDebugUtilsObjectNameEXT-pNameInfo-07872", - "text": " If pNameInfo->objectHandle is the valid handle of an instance-level object, the VkDevice identified by device must be a descendent of the same VkInstance as the object identified by pNameInfo->objectHandle" + "text": "If pNameInfo->objectHandle is the valid handle of an instance-level object, the VkDevice identified by device must be a descendent of the same VkInstance as the object identified by pNameInfo->objectHandle", + "page": "vkspec" }, { "vuid": "VUID-vkSetDebugUtilsObjectNameEXT-pNameInfo-07873", - "text": " If pNameInfo->objectHandle is the valid handle of a physical-device-level object, the VkDevice identified by device must be a descendant of the same VkPhysicalDevice as the object identified by pNameInfo->objectHandle" + "text": "If pNameInfo->objectHandle is the valid handle of a physical-device-level object, the VkDevice identified by device must be a descendant of the same VkPhysicalDevice as the object identified by pNameInfo->objectHandle", + "page": "vkspec" }, { "vuid": "VUID-vkSetDebugUtilsObjectNameEXT-pNameInfo-07874", - "text": " If pNameInfo->objectHandle is the valid handle of a device-level object, that object must be a descendent of the VkDevice identified by device" + "text": "If pNameInfo->objectHandle is the valid handle of a device-level object, that object must be a descendent of the VkDevice identified by device", + "page": "vkspec" }, { "vuid": "VUID-vkSetDebugUtilsObjectNameEXT-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkSetDebugUtilsObjectNameEXT-pNameInfo-parameter", - "text": " pNameInfo must be a valid pointer to a valid VkDebugUtilsObjectNameInfoEXT structure" + "text": "pNameInfo must be a valid pointer to a valid VkDebugUtilsObjectNameInfoEXT structure", + "page": "vkspec" } ] }, @@ -75470,23 +97173,28 @@ "core": [ { "vuid": "VUID-VkDebugUtilsObjectNameInfoEXT-objectType-02589", - "text": " If objectType is VK_OBJECT_TYPE_UNKNOWN, objectHandle must not be VK_NULL_HANDLE" + "text": "If objectType is VK_OBJECT_TYPE_UNKNOWN, objectHandle must not be VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-VkDebugUtilsObjectNameInfoEXT-objectType-02590", - "text": " If objectType is not VK_OBJECT_TYPE_UNKNOWN, objectHandle must be VK_NULL_HANDLE or a valid Vulkan handle of the type associated with objectType as defined in the VkObjectType and Vulkan Handle Relationship table" + "text": "If objectType is not VK_OBJECT_TYPE_UNKNOWN, objectHandle must be VK_NULL_HANDLE or a valid Vulkan handle of the type associated with objectType as defined in the VkObjectType and Vulkan Handle Relationship table", + "page": "vkspec" }, { "vuid": "VUID-VkDebugUtilsObjectNameInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkDebugUtilsObjectNameInfoEXT-objectType-parameter", - "text": " objectType must be a valid VkObjectType value" + "text": "objectType must be a valid VkObjectType value", + "page": "vkspec" }, { "vuid": "VUID-VkDebugUtilsObjectNameInfoEXT-pObjectName-parameter", - "text": " If pObjectName is not NULL, pObjectName must be a null-terminated UTF-8 string" + "text": "If pObjectName is not NULL, pObjectName must be a null-terminated UTF-8 string", + "page": "vkspec" } ] }, @@ -75494,23 +97202,28 @@ "core": [ { "vuid": "VUID-vkSetDebugUtilsObjectTagEXT-pNameInfo-07875", - "text": " If pNameInfo->objectHandle is the valid handle of an instance-level object, the VkDevice identified by device must be a descendent of the same VkInstance as the object identified by pNameInfo->objectHandle" + "text": "If pNameInfo->objectHandle is the valid handle of an instance-level object, the VkDevice identified by device must be a descendent of the same VkInstance as the object identified by pNameInfo->objectHandle", + "page": "vkspec" }, { "vuid": "VUID-vkSetDebugUtilsObjectTagEXT-pNameInfo-07876", - "text": " If pNameInfo->objectHandle is the valid handle of a physical-device-level object, the VkDevice identified by device must be a descendant of the same VkPhysicalDevice as the object identified by pNameInfo->objectHandle" + "text": "If pNameInfo->objectHandle is the valid handle of a physical-device-level object, the VkDevice identified by device must be a descendant of the same VkPhysicalDevice as the object identified by pNameInfo->objectHandle", + "page": "vkspec" }, { "vuid": "VUID-vkSetDebugUtilsObjectTagEXT-pNameInfo-07877", - "text": " If pNameInfo->objectHandle is the valid handle of a device-level object, that object must be a descendent of the VkDevice identified by device" + "text": "If pNameInfo->objectHandle is the valid handle of a device-level object, that object must be a descendent of the VkDevice identified by device", + "page": "vkspec" }, { "vuid": "VUID-vkSetDebugUtilsObjectTagEXT-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkSetDebugUtilsObjectTagEXT-pTagInfo-parameter", - "text": " pTagInfo must be a valid pointer to a valid VkDebugUtilsObjectTagInfoEXT structure" + "text": "pTagInfo must be a valid pointer to a valid VkDebugUtilsObjectTagInfoEXT structure", + "page": "vkspec" } ] }, @@ -75518,31 +97231,38 @@ "core": [ { "vuid": "VUID-VkDebugUtilsObjectTagInfoEXT-objectType-01908", - "text": " objectType must not be VK_OBJECT_TYPE_UNKNOWN" + "text": "objectType must not be VK_OBJECT_TYPE_UNKNOWN", + "page": "vkspec" }, { "vuid": "VUID-VkDebugUtilsObjectTagInfoEXT-objectHandle-01910", - "text": " objectHandle must be a valid Vulkan handle of the type associated with objectType as defined in the VkObjectType and Vulkan Handle Relationship table" + "text": "objectHandle must be a valid Vulkan handle of the type associated with objectType as defined in the VkObjectType and Vulkan Handle Relationship table", + "page": "vkspec" }, { "vuid": "VUID-VkDebugUtilsObjectTagInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkDebugUtilsObjectTagInfoEXT-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkDebugUtilsObjectTagInfoEXT-objectType-parameter", - "text": " objectType must be a valid VkObjectType value" + "text": "objectType must be a valid VkObjectType value", + "page": "vkspec" }, { "vuid": "VUID-VkDebugUtilsObjectTagInfoEXT-pTag-parameter", - "text": " pTag must be a valid pointer to an array of tagSize bytes" + "text": "pTag must be a valid pointer to an array of tagSize bytes", + "page": "vkspec" }, { "vuid": "VUID-VkDebugUtilsObjectTagInfoEXT-tagSize-arraylength", - "text": " tagSize must be greater than 0" + "text": "tagSize must be greater than 0", + "page": "vkspec" } ] }, @@ -75550,11 +97270,13 @@ "core": [ { "vuid": "VUID-vkQueueBeginDebugUtilsLabelEXT-queue-parameter", - "text": " queue must be a valid VkQueue handle" + "text": "queue must be a valid VkQueue handle", + "page": "vkspec" }, { "vuid": "VUID-vkQueueBeginDebugUtilsLabelEXT-pLabelInfo-parameter", - "text": " pLabelInfo must be a valid pointer to a valid VkDebugUtilsLabelEXT structure" + "text": "pLabelInfo must be a valid pointer to a valid VkDebugUtilsLabelEXT structure", + "page": "vkspec" } ] }, @@ -75562,15 +97284,18 @@ "core": [ { "vuid": "VUID-VkDebugUtilsLabelEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkDebugUtilsLabelEXT-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkDebugUtilsLabelEXT-pLabelName-parameter", - "text": " pLabelName must be a null-terminated UTF-8 string" + "text": "pLabelName must be a null-terminated UTF-8 string", + "page": "vkspec" } ] }, @@ -75578,11 +97303,13 @@ "core": [ { "vuid": "VUID-vkQueueEndDebugUtilsLabelEXT-None-01911", - "text": " There must be an outstanding vkQueueBeginDebugUtilsLabelEXT command prior to the vkQueueEndDebugUtilsLabelEXT on the queue" + "text": "There must be an outstanding vkQueueBeginDebugUtilsLabelEXT command prior to the vkQueueEndDebugUtilsLabelEXT on the queue", + "page": "vkspec" }, { "vuid": "VUID-vkQueueEndDebugUtilsLabelEXT-queue-parameter", - "text": " queue must be a valid VkQueue handle" + "text": "queue must be a valid VkQueue handle", + "page": "vkspec" } ] }, @@ -75590,11 +97317,13 @@ "core": [ { "vuid": "VUID-vkQueueInsertDebugUtilsLabelEXT-queue-parameter", - "text": " queue must be a valid VkQueue handle" + "text": "queue must be a valid VkQueue handle", + "page": "vkspec" }, { "vuid": "VUID-vkQueueInsertDebugUtilsLabelEXT-pLabelInfo-parameter", - "text": " pLabelInfo must be a valid pointer to a valid VkDebugUtilsLabelEXT structure" + "text": "pLabelInfo must be a valid pointer to a valid VkDebugUtilsLabelEXT structure", + "page": "vkspec" } ] }, @@ -75602,23 +97331,28 @@ "core": [ { "vuid": "VUID-vkCmdBeginDebugUtilsLabelEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginDebugUtilsLabelEXT-pLabelInfo-parameter", - "text": " pLabelInfo must be a valid pointer to a valid VkDebugUtilsLabelEXT structure" + "text": "pLabelInfo must be a valid pointer to a valid VkDebugUtilsLabelEXT structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginDebugUtilsLabelEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginDebugUtilsLabelEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdBeginDebugUtilsLabelEXT-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -75626,27 +97360,33 @@ "core": [ { "vuid": "VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-01912", - "text": " There must be an outstanding vkCmdBeginDebugUtilsLabelEXT command prior to the vkCmdEndDebugUtilsLabelEXT on the queue that commandBuffer is submitted to" + "text": "There must be an outstanding vkCmdBeginDebugUtilsLabelEXT command prior to the vkCmdEndDebugUtilsLabelEXT on the queue that commandBuffer is submitted to", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-01913", - "text": " If commandBuffer is a secondary command buffer, there must be an outstanding vkCmdBeginDebugUtilsLabelEXT command recorded to commandBuffer that has not previously been ended by a call to vkCmdEndDebugUtilsLabelEXT" + "text": "If commandBuffer is a secondary command buffer, there must be an outstanding vkCmdBeginDebugUtilsLabelEXT command recorded to commandBuffer that has not previously been ended by a call to vkCmdEndDebugUtilsLabelEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdEndDebugUtilsLabelEXT-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -75654,23 +97394,28 @@ "core": [ { "vuid": "VUID-vkCmdInsertDebugUtilsLabelEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdInsertDebugUtilsLabelEXT-pLabelInfo-parameter", - "text": " pLabelInfo must be a valid pointer to a valid VkDebugUtilsLabelEXT structure" + "text": "pLabelInfo must be a valid pointer to a valid VkDebugUtilsLabelEXT structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdInsertDebugUtilsLabelEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdInsertDebugUtilsLabelEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdInsertDebugUtilsLabelEXT-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -75678,19 +97423,23 @@ "core": [ { "vuid": "VUID-vkCreateDebugUtilsMessengerEXT-instance-parameter", - "text": " instance must be a valid VkInstance handle" + "text": "instance must be a valid VkInstance handle", + "page": "vkspec" }, { "vuid": "VUID-vkCreateDebugUtilsMessengerEXT-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkDebugUtilsMessengerCreateInfoEXT structure" + "text": "pCreateInfo must be a valid pointer to a valid VkDebugUtilsMessengerCreateInfoEXT structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateDebugUtilsMessengerEXT-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateDebugUtilsMessengerEXT-pMessenger-parameter", - "text": " pMessenger must be a valid pointer to a VkDebugUtilsMessengerEXT handle" + "text": "pMessenger must be a valid pointer to a VkDebugUtilsMessengerEXT handle", + "page": "vkspec" } ] }, @@ -75698,35 +97447,43 @@ "core": [ { "vuid": "VUID-VkDebugUtilsMessengerCreateInfoEXT-pfnUserCallback-01914", - "text": " pfnUserCallback must be a valid PFN_vkDebugUtilsMessengerCallbackEXT" + "text": "pfnUserCallback must be a valid PFN_vkDebugUtilsMessengerCallbackEXT", + "page": "vkspec" }, { "vuid": "VUID-VkDebugUtilsMessengerCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkDebugUtilsMessengerCreateInfoEXT-flags-zerobitmask", - "text": " flags must be 0" + "text": "flags must be 0", + "page": "vkspec" }, { "vuid": "VUID-VkDebugUtilsMessengerCreateInfoEXT-messageSeverity-parameter", - "text": " messageSeverity must be a valid combination of VkDebugUtilsMessageSeverityFlagBitsEXT values" + "text": "messageSeverity must be a valid combination of VkDebugUtilsMessageSeverityFlagBitsEXT values", + "page": "vkspec" }, { "vuid": "VUID-VkDebugUtilsMessengerCreateInfoEXT-messageSeverity-requiredbitmask", - "text": " messageSeverity must not be 0" + "text": "messageSeverity must not be 0", + "page": "vkspec" }, { "vuid": "VUID-VkDebugUtilsMessengerCreateInfoEXT-messageType-parameter", - "text": " messageType must be a valid combination of VkDebugUtilsMessageTypeFlagBitsEXT values" + "text": "messageType must be a valid combination of VkDebugUtilsMessageTypeFlagBitsEXT values", + "page": "vkspec" }, { "vuid": "VUID-VkDebugUtilsMessengerCreateInfoEXT-messageType-requiredbitmask", - "text": " messageType must not be 0" + "text": "messageType must not be 0", + "page": "vkspec" }, { "vuid": "VUID-VkDebugUtilsMessengerCreateInfoEXT-pfnUserCallback-parameter", - "text": " pfnUserCallback must be a valid PFN_vkDebugUtilsMessengerCallbackEXT value" + "text": "pfnUserCallback must be a valid PFN_vkDebugUtilsMessengerCallbackEXT value", + "page": "vkspec" } ] }, @@ -75734,7 +97491,8 @@ "core": [ { "vuid": "VUID-PFN_vkDebugUtilsMessengerCallbackEXT-None-04769", - "text": " The callback must not make calls to any Vulkan commands" + "text": "The callback must not make calls to any Vulkan commands", + "page": "vkspec" } ] }, @@ -75742,39 +97500,48 @@ "core": [ { "vuid": "VUID-VkDebugUtilsMessengerCallbackDataEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkDebugUtilsMessengerCallbackDataEXT-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkDeviceAddressBindingCallbackDataEXT" + "text": "pNext must be NULL or a pointer to a valid instance of VkDeviceAddressBindingCallbackDataEXT", + "page": "vkspec" }, { "vuid": "VUID-VkDebugUtilsMessengerCallbackDataEXT-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" + "text": "The sType value of each struct in the pNext chain must be unique", + "page": "vkspec" }, { "vuid": "VUID-VkDebugUtilsMessengerCallbackDataEXT-flags-zerobitmask", - "text": " flags must be 0" + "text": "flags must be 0", + "page": "vkspec" }, { "vuid": "VUID-VkDebugUtilsMessengerCallbackDataEXT-pMessageIdName-parameter", - "text": " If pMessageIdName is not NULL, pMessageIdName must be a null-terminated UTF-8 string" + "text": "If pMessageIdName is not NULL, pMessageIdName must be a null-terminated UTF-8 string", + "page": "vkspec" }, { "vuid": "VUID-VkDebugUtilsMessengerCallbackDataEXT-pMessage-parameter", - "text": " pMessage must be a null-terminated UTF-8 string" + "text": "pMessage must be a null-terminated UTF-8 string", + "page": "vkspec" }, { "vuid": "VUID-VkDebugUtilsMessengerCallbackDataEXT-pQueueLabels-parameter", - "text": " If queueLabelCount is not 0, pQueueLabels must be a valid pointer to an array of queueLabelCount valid VkDebugUtilsLabelEXT structures" + "text": "If queueLabelCount is not 0, pQueueLabels must be a valid pointer to an array of queueLabelCount valid VkDebugUtilsLabelEXT structures", + "page": "vkspec" }, { "vuid": "VUID-VkDebugUtilsMessengerCallbackDataEXT-pCmdBufLabels-parameter", - "text": " If cmdBufLabelCount is not 0, pCmdBufLabels must be a valid pointer to an array of cmdBufLabelCount valid VkDebugUtilsLabelEXT structures" + "text": "If cmdBufLabelCount is not 0, pCmdBufLabels must be a valid pointer to an array of cmdBufLabelCount valid VkDebugUtilsLabelEXT structures", + "page": "vkspec" }, { "vuid": "VUID-VkDebugUtilsMessengerCallbackDataEXT-pObjects-parameter", - "text": " If objectCount is not 0, pObjects must be a valid pointer to an array of objectCount valid VkDebugUtilsObjectNameInfoEXT structures" + "text": "If objectCount is not 0, pObjects must be a valid pointer to an array of objectCount valid VkDebugUtilsObjectNameInfoEXT structures", + "page": "vkspec" } ] }, @@ -75782,15 +97549,18 @@ "core": [ { "vuid": "VUID-VkDeviceAddressBindingCallbackDataEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceAddressBindingCallbackDataEXT-flags-parameter", - "text": " flags must be a valid combination of VkDeviceAddressBindingFlagBitsEXT values" + "text": "flags must be a valid combination of VkDeviceAddressBindingFlagBitsEXT values", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceAddressBindingCallbackDataEXT-bindingType-parameter", - "text": " bindingType must be a valid VkDeviceAddressBindingTypeEXT value" + "text": "bindingType must be a valid VkDeviceAddressBindingTypeEXT value", + "page": "vkspec" } ] }, @@ -75798,27 +97568,33 @@ "core": [ { "vuid": "VUID-vkSubmitDebugUtilsMessageEXT-objectType-02591", - "text": " The objectType member of each element of pCallbackData->pObjects must not be VK_OBJECT_TYPE_UNKNOWN" + "text": "The objectType member of each element of pCallbackData->pObjects must not be VK_OBJECT_TYPE_UNKNOWN", + "page": "vkspec" }, { "vuid": "VUID-vkSubmitDebugUtilsMessageEXT-instance-parameter", - "text": " instance must be a valid VkInstance handle" + "text": "instance must be a valid VkInstance handle", + "page": "vkspec" }, { "vuid": "VUID-vkSubmitDebugUtilsMessageEXT-messageSeverity-parameter", - "text": " messageSeverity must be a valid VkDebugUtilsMessageSeverityFlagBitsEXT value" + "text": "messageSeverity must be a valid VkDebugUtilsMessageSeverityFlagBitsEXT value", + "page": "vkspec" }, { "vuid": "VUID-vkSubmitDebugUtilsMessageEXT-messageTypes-parameter", - "text": " messageTypes must be a valid combination of VkDebugUtilsMessageTypeFlagBitsEXT values" + "text": "messageTypes must be a valid combination of VkDebugUtilsMessageTypeFlagBitsEXT values", + "page": "vkspec" }, { "vuid": "VUID-vkSubmitDebugUtilsMessageEXT-messageTypes-requiredbitmask", - "text": " messageTypes must not be 0" + "text": "messageTypes must not be 0", + "page": "vkspec" }, { "vuid": "VUID-vkSubmitDebugUtilsMessageEXT-pCallbackData-parameter", - "text": " pCallbackData must be a valid pointer to a valid VkDebugUtilsMessengerCallbackDataEXT structure" + "text": "pCallbackData must be a valid pointer to a valid VkDebugUtilsMessengerCallbackDataEXT structure", + "page": "vkspec" } ] }, @@ -75826,27 +97602,33 @@ "core": [ { "vuid": "VUID-vkDestroyDebugUtilsMessengerEXT-messenger-01915", - "text": " If VkAllocationCallbacks were provided when messenger was created, a compatible set of callbacks must be provided here" + "text": "If VkAllocationCallbacks were provided when messenger was created, a compatible set of callbacks must be provided here", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyDebugUtilsMessengerEXT-messenger-01916", - "text": " If no VkAllocationCallbacks were provided when messenger was created, pAllocator must be NULL" + "text": "If no VkAllocationCallbacks were provided when messenger was created, pAllocator must be NULL", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyDebugUtilsMessengerEXT-instance-parameter", - "text": " instance must be a valid VkInstance handle" + "text": "instance must be a valid VkInstance handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyDebugUtilsMessengerEXT-messenger-parameter", - "text": " If messenger is not VK_NULL_HANDLE, messenger must be a valid VkDebugUtilsMessengerEXT handle" + "text": "If messenger is not VK_NULL_HANDLE, messenger must be a valid VkDebugUtilsMessengerEXT handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyDebugUtilsMessengerEXT-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyDebugUtilsMessengerEXT-messenger-parent", - "text": " If messenger is a valid handle, it must have been created, allocated, or retrieved from instance" + "text": "If messenger is a valid handle, it must have been created, allocated, or retrieved from instance", + "page": "vkspec" } ] }, @@ -75854,11 +97636,13 @@ "core": [ { "vuid": "VUID-vkDebugMarkerSetObjectNameEXT-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkDebugMarkerSetObjectNameEXT-pNameInfo-parameter", - "text": " pNameInfo must be a valid pointer to a valid VkDebugMarkerObjectNameInfoEXT structure" + "text": "pNameInfo must be a valid pointer to a valid VkDebugMarkerObjectNameInfoEXT structure", + "page": "vkspec" } ] }, @@ -75866,31 +97650,38 @@ "core": [ { "vuid": "VUID-VkDebugMarkerObjectNameInfoEXT-objectType-01490", - "text": " objectType must not be VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT" + "text": "objectType must not be VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkDebugMarkerObjectNameInfoEXT-object-01491", - "text": " object must not be VK_NULL_HANDLE" + "text": "object must not be VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-VkDebugMarkerObjectNameInfoEXT-object-01492", - "text": " object must be a Vulkan object of the type associated with objectType as defined in VkDebugReportObjectTypeEXT and Vulkan Handle Relationship" + "text": "object must be a Vulkan object of the type associated with objectType as defined in VkDebugReportObjectTypeEXT and Vulkan Handle Relationship", + "page": "vkspec" }, { "vuid": "VUID-VkDebugMarkerObjectNameInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkDebugMarkerObjectNameInfoEXT-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkDebugMarkerObjectNameInfoEXT-objectType-parameter", - "text": " objectType must be a valid VkDebugReportObjectTypeEXT value" + "text": "objectType must be a valid VkDebugReportObjectTypeEXT value", + "page": "vkspec" }, { "vuid": "VUID-VkDebugMarkerObjectNameInfoEXT-pObjectName-parameter", - "text": " pObjectName must be a null-terminated UTF-8 string" + "text": "pObjectName must be a null-terminated UTF-8 string", + "page": "vkspec" } ] }, @@ -75898,11 +97689,13 @@ "core": [ { "vuid": "VUID-vkDebugMarkerSetObjectTagEXT-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkDebugMarkerSetObjectTagEXT-pTagInfo-parameter", - "text": " pTagInfo must be a valid pointer to a valid VkDebugMarkerObjectTagInfoEXT structure" + "text": "pTagInfo must be a valid pointer to a valid VkDebugMarkerObjectTagInfoEXT structure", + "page": "vkspec" } ] }, @@ -75910,35 +97703,43 @@ "core": [ { "vuid": "VUID-VkDebugMarkerObjectTagInfoEXT-objectType-01493", - "text": " objectType must not be VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT" + "text": "objectType must not be VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkDebugMarkerObjectTagInfoEXT-object-01494", - "text": " object must not be VK_NULL_HANDLE" + "text": "object must not be VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-VkDebugMarkerObjectTagInfoEXT-object-01495", - "text": " object must be a Vulkan object of the type associated with objectType as defined in VkDebugReportObjectTypeEXT and Vulkan Handle Relationship" + "text": "object must be a Vulkan object of the type associated with objectType as defined in VkDebugReportObjectTypeEXT and Vulkan Handle Relationship", + "page": "vkspec" }, { "vuid": "VUID-VkDebugMarkerObjectTagInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkDebugMarkerObjectTagInfoEXT-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkDebugMarkerObjectTagInfoEXT-objectType-parameter", - "text": " objectType must be a valid VkDebugReportObjectTypeEXT value" + "text": "objectType must be a valid VkDebugReportObjectTypeEXT value", + "page": "vkspec" }, { "vuid": "VUID-VkDebugMarkerObjectTagInfoEXT-pTag-parameter", - "text": " pTag must be a valid pointer to an array of tagSize bytes" + "text": "pTag must be a valid pointer to an array of tagSize bytes", + "page": "vkspec" }, { "vuid": "VUID-VkDebugMarkerObjectTagInfoEXT-tagSize-arraylength", - "text": " tagSize must be greater than 0" + "text": "tagSize must be greater than 0", + "page": "vkspec" } ] }, @@ -75946,23 +97747,28 @@ "core": [ { "vuid": "VUID-vkCmdDebugMarkerBeginEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDebugMarkerBeginEXT-pMarkerInfo-parameter", - "text": " pMarkerInfo must be a valid pointer to a valid VkDebugMarkerMarkerInfoEXT structure" + "text": "pMarkerInfo must be a valid pointer to a valid VkDebugMarkerMarkerInfoEXT structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDebugMarkerBeginEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDebugMarkerBeginEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDebugMarkerBeginEXT-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -75970,15 +97776,18 @@ "core": [ { "vuid": "VUID-VkDebugMarkerMarkerInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkDebugMarkerMarkerInfoEXT-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkDebugMarkerMarkerInfoEXT-pMarkerName-parameter", - "text": " pMarkerName must be a null-terminated UTF-8 string" + "text": "pMarkerName must be a null-terminated UTF-8 string", + "page": "vkspec" } ] }, @@ -75986,27 +97795,33 @@ "core": [ { "vuid": "VUID-vkCmdDebugMarkerEndEXT-commandBuffer-01239", - "text": " There must be an outstanding vkCmdDebugMarkerBeginEXT command prior to the vkCmdDebugMarkerEndEXT on the queue that commandBuffer is submitted to" + "text": "There must be an outstanding vkCmdDebugMarkerBeginEXT command prior to the vkCmdDebugMarkerEndEXT on the queue that commandBuffer is submitted to", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDebugMarkerEndEXT-commandBuffer-01240", - "text": " If commandBuffer is a secondary command buffer, there must be an outstanding vkCmdDebugMarkerBeginEXT command recorded to commandBuffer that has not previously been ended by a call to vkCmdDebugMarkerEndEXT" + "text": "If commandBuffer is a secondary command buffer, there must be an outstanding vkCmdDebugMarkerBeginEXT command recorded to commandBuffer that has not previously been ended by a call to vkCmdDebugMarkerEndEXT", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDebugMarkerEndEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDebugMarkerEndEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDebugMarkerEndEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDebugMarkerEndEXT-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -76014,23 +97829,28 @@ "core": [ { "vuid": "VUID-vkCmdDebugMarkerInsertEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDebugMarkerInsertEXT-pMarkerInfo-parameter", - "text": " pMarkerInfo must be a valid pointer to a valid VkDebugMarkerMarkerInfoEXT structure" + "text": "pMarkerInfo must be a valid pointer to a valid VkDebugMarkerMarkerInfoEXT structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDebugMarkerInsertEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDebugMarkerInsertEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdDebugMarkerInsertEXT-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -76038,19 +97858,23 @@ "core": [ { "vuid": "VUID-vkCreateDebugReportCallbackEXT-instance-parameter", - "text": " instance must be a valid VkInstance handle" + "text": "instance must be a valid VkInstance handle", + "page": "vkspec" }, { "vuid": "VUID-vkCreateDebugReportCallbackEXT-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkDebugReportCallbackCreateInfoEXT structure" + "text": "pCreateInfo must be a valid pointer to a valid VkDebugReportCallbackCreateInfoEXT structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateDebugReportCallbackEXT-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateDebugReportCallbackEXT-pCallback-parameter", - "text": " pCallback must be a valid pointer to a VkDebugReportCallbackEXT handle" + "text": "pCallback must be a valid pointer to a VkDebugReportCallbackEXT handle", + "page": "vkspec" } ] }, @@ -76058,15 +97882,18 @@ "core": [ { "vuid": "VUID-VkDebugReportCallbackCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkDebugReportCallbackCreateInfoEXT-flags-parameter", - "text": " flags must be a valid combination of VkDebugReportFlagBitsEXT values" + "text": "flags must be a valid combination of VkDebugReportFlagBitsEXT values", + "page": "vkspec" }, { "vuid": "VUID-VkDebugReportCallbackCreateInfoEXT-pfnCallback-parameter", - "text": " pfnCallback must be a valid PFN_vkDebugReportCallbackEXT value" + "text": "pfnCallback must be a valid PFN_vkDebugReportCallbackEXT value", + "page": "vkspec" } ] }, @@ -76074,35 +97901,43 @@ "core": [ { "vuid": "VUID-vkDebugReportMessageEXT-object-01241", - "text": " object must be a Vulkan object or VK_NULL_HANDLE" + "text": "object must be a Vulkan object or VK_NULL_HANDLE", + "page": "vkspec" }, { "vuid": "VUID-vkDebugReportMessageEXT-objectType-01498", - "text": " If objectType is not VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT and object is not VK_NULL_HANDLE, object must be a Vulkan object of the corresponding type associated with objectType as defined in VkDebugReportObjectTypeEXT and Vulkan Handle Relationship" + "text": "If objectType is not VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT and object is not VK_NULL_HANDLE, object must be a Vulkan object of the corresponding type associated with objectType as defined in VkDebugReportObjectTypeEXT and Vulkan Handle Relationship", + "page": "vkspec" }, { "vuid": "VUID-vkDebugReportMessageEXT-instance-parameter", - "text": " instance must be a valid VkInstance handle" + "text": "instance must be a valid VkInstance handle", + "page": "vkspec" }, { "vuid": "VUID-vkDebugReportMessageEXT-flags-parameter", - "text": " flags must be a valid combination of VkDebugReportFlagBitsEXT values" + "text": "flags must be a valid combination of VkDebugReportFlagBitsEXT values", + "page": "vkspec" }, { "vuid": "VUID-vkDebugReportMessageEXT-flags-requiredbitmask", - "text": " flags must not be 0" + "text": "flags must not be 0", + "page": "vkspec" }, { "vuid": "VUID-vkDebugReportMessageEXT-objectType-parameter", - "text": " objectType must be a valid VkDebugReportObjectTypeEXT value" + "text": "objectType must be a valid VkDebugReportObjectTypeEXT value", + "page": "vkspec" }, { "vuid": "VUID-vkDebugReportMessageEXT-pLayerPrefix-parameter", - "text": " pLayerPrefix must be a null-terminated UTF-8 string" + "text": "pLayerPrefix must be a null-terminated UTF-8 string", + "page": "vkspec" }, { "vuid": "VUID-vkDebugReportMessageEXT-pMessage-parameter", - "text": " pMessage must be a null-terminated UTF-8 string" + "text": "pMessage must be a null-terminated UTF-8 string", + "page": "vkspec" } ] }, @@ -76110,27 +97945,33 @@ "core": [ { "vuid": "VUID-vkDestroyDebugReportCallbackEXT-instance-01242", - "text": " If VkAllocationCallbacks were provided when callback was created, a compatible set of callbacks must be provided here" + "text": "If VkAllocationCallbacks were provided when callback was created, a compatible set of callbacks must be provided here", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyDebugReportCallbackEXT-instance-01243", - "text": " If no VkAllocationCallbacks were provided when callback was created, pAllocator must be NULL" + "text": "If no VkAllocationCallbacks were provided when callback was created, pAllocator must be NULL", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyDebugReportCallbackEXT-instance-parameter", - "text": " instance must be a valid VkInstance handle" + "text": "instance must be a valid VkInstance handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyDebugReportCallbackEXT-callback-parameter", - "text": " If callback is not VK_NULL_HANDLE, callback must be a valid VkDebugReportCallbackEXT handle" + "text": "If callback is not VK_NULL_HANDLE, callback must be a valid VkDebugReportCallbackEXT handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyDebugReportCallbackEXT-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyDebugReportCallbackEXT-callback-parent", - "text": " If callback is a valid handle, it must have been created, allocated, or retrieved from instance" + "text": "If callback is a valid handle, it must have been created, allocated, or retrieved from instance", + "page": "vkspec" } ] }, @@ -76138,19 +97979,23 @@ "core": [ { "vuid": "VUID-vkCmdSetCheckpointNV-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetCheckpointNV-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetCheckpointNV-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, compute, or transfer operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics, compute, or transfer operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdSetCheckpointNV-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -76158,19 +98003,23 @@ "core": [ { "vuid": "VUID-vkGetQueueCheckpointData2NV-queue-03892", - "text": " The device that queue belongs to must be in the lost state" + "text": "The device that queue belongs to must be in the lost state", + "page": "vkspec" }, { "vuid": "VUID-vkGetQueueCheckpointData2NV-queue-parameter", - "text": " queue must be a valid VkQueue handle" + "text": "queue must be a valid VkQueue handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetQueueCheckpointData2NV-pCheckpointDataCount-parameter", - "text": " pCheckpointDataCount must be a valid pointer to a uint32_t value" + "text": "pCheckpointDataCount must be a valid pointer to a uint32_t value", + "page": "vkspec" }, { "vuid": "VUID-vkGetQueueCheckpointData2NV-pCheckpointData-parameter", - "text": " If the value referenced by pCheckpointDataCount is not 0, and pCheckpointData is not NULL, pCheckpointData must be a valid pointer to an array of pCheckpointDataCount VkCheckpointData2NV structures" + "text": "If the value referenced by pCheckpointDataCount is not 0, and pCheckpointData is not NULL, pCheckpointData must be a valid pointer to an array of pCheckpointDataCount VkCheckpointData2NV structures", + "page": "vkspec" } ] }, @@ -76178,11 +98027,13 @@ "core": [ { "vuid": "VUID-VkCheckpointData2NV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV" + "text": "sType must be VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV", + "page": "vkspec" }, { "vuid": "VUID-VkCheckpointData2NV-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" } ] }, @@ -76190,19 +98041,23 @@ "core": [ { "vuid": "VUID-vkGetQueueCheckpointDataNV-queue-02025", - "text": " The device that queue belongs to must be in the lost state" + "text": "The device that queue belongs to must be in the lost state", + "page": "vkspec" }, { "vuid": "VUID-vkGetQueueCheckpointDataNV-queue-parameter", - "text": " queue must be a valid VkQueue handle" + "text": "queue must be a valid VkQueue handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetQueueCheckpointDataNV-pCheckpointDataCount-parameter", - "text": " pCheckpointDataCount must be a valid pointer to a uint32_t value" + "text": "pCheckpointDataCount must be a valid pointer to a uint32_t value", + "page": "vkspec" }, { "vuid": "VUID-vkGetQueueCheckpointDataNV-pCheckpointData-parameter", - "text": " If the value referenced by pCheckpointDataCount is not 0, and pCheckpointData is not NULL, pCheckpointData must be a valid pointer to an array of pCheckpointDataCount VkCheckpointDataNV structures" + "text": "If the value referenced by pCheckpointDataCount is not 0, and pCheckpointData is not NULL, pCheckpointData must be a valid pointer to an array of pCheckpointDataCount VkCheckpointDataNV structures", + "page": "vkspec" } ] }, @@ -76210,11 +98065,13 @@ "core": [ { "vuid": "VUID-VkCheckpointDataNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV" + "text": "sType must be VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV", + "page": "vkspec" }, { "vuid": "VUID-VkCheckpointDataNV-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" } ] }, @@ -76222,31 +98079,38 @@ "core": [ { "vuid": "VUID-vkGetDeviceFaultInfoEXT-device-07336", - "text": " device must be in the lost state" + "text": "device must be in the lost state", + "page": "vkspec" }, { "vuid": "VUID-vkGetDeviceFaultInfoEXT-pFaultCounts-07337", - "text": " If the value referenced by pFaultCounts->addressInfoCount is not 0, and pFaultInfo->pAddressInfos is not NULL, pFaultInfo->pAddressInfos must be a valid pointer to an array of pFaultCounts->addressInfoCount VkDeviceFaultAddressInfoEXT structures" + "text": "If the value referenced by pFaultCounts->addressInfoCount is not 0, and pFaultInfo->pAddressInfos is not NULL, pFaultInfo->pAddressInfos must be a valid pointer to an array of pFaultCounts->addressInfoCount VkDeviceFaultAddressInfoEXT structures", + "page": "vkspec" }, { "vuid": "VUID-vkGetDeviceFaultInfoEXT-pFaultCounts-07338", - "text": " If the value referenced by pFaultCounts->vendorInfoCount is not 0, and pFaultInfo->pVendorInfos is not NULL, pFaultInfo->pVendorInfos must be a valid pointer to an array of pFaultCounts->vendorInfoCount VkDeviceFaultVendorInfoEXT structures" + "text": "If the value referenced by pFaultCounts->vendorInfoCount is not 0, and pFaultInfo->pVendorInfos is not NULL, pFaultInfo->pVendorInfos must be a valid pointer to an array of pFaultCounts->vendorInfoCount VkDeviceFaultVendorInfoEXT structures", + "page": "vkspec" }, { "vuid": "VUID-vkGetDeviceFaultInfoEXT-pFaultCounts-07339", - "text": " If the value referenced by pFaultCounts->vendorBinarySize is not 0, and pFaultInfo->pVendorBinaryData is not NULL, pFaultInfo->pVendorBinaryData must be a valid pointer to an array of pFaultCounts->vendorBinarySize bytes" + "text": "If the value referenced by pFaultCounts->vendorBinarySize is not 0, and pFaultInfo->pVendorBinaryData is not NULL, pFaultInfo->pVendorBinaryData must be a valid pointer to an array of pFaultCounts->vendorBinarySize bytes", + "page": "vkspec" }, { "vuid": "VUID-vkGetDeviceFaultInfoEXT-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetDeviceFaultInfoEXT-pFaultCounts-parameter", - "text": " pFaultCounts must be a valid pointer to a VkDeviceFaultCountsEXT structure" + "text": "pFaultCounts must be a valid pointer to a VkDeviceFaultCountsEXT structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetDeviceFaultInfoEXT-pFaultInfo-parameter", - "text": " If pFaultInfo is not NULL, pFaultInfo must be a valid pointer to a VkDeviceFaultInfoEXT structure" + "text": "If pFaultInfo is not NULL, pFaultInfo must be a valid pointer to a VkDeviceFaultInfoEXT structure", + "page": "vkspec" } ] }, @@ -76254,11 +98118,13 @@ "core": [ { "vuid": "VUID-VkDeviceFaultCountsEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceFaultCountsEXT-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" } ] }, @@ -76266,19 +98132,23 @@ "core": [ { "vuid": "VUID-VkDeviceFaultInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT" + "text": "sType must be VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceFaultInfoEXT-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceFaultInfoEXT-pAddressInfos-parameter", - "text": " If pAddressInfos is not NULL, pAddressInfos must be a valid pointer to a VkDeviceFaultAddressInfoEXT structure" + "text": "If pAddressInfos is not NULL, pAddressInfos must be a valid pointer to a VkDeviceFaultAddressInfoEXT structure", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceFaultInfoEXT-pVendorInfos-parameter", - "text": " If pVendorInfos is not NULL, pVendorInfos must be a valid pointer to a VkDeviceFaultVendorInfoEXT structure" + "text": "If pVendorInfos is not NULL, pVendorInfos must be a valid pointer to a VkDeviceFaultVendorInfoEXT structure", + "page": "vkspec" } ] }, @@ -76286,7 +98156,8 @@ "core": [ { "vuid": "VUID-VkDeviceFaultAddressInfoEXT-addressType-parameter", - "text": " addressType must be a valid VkDeviceFaultAddressTypeEXT value" + "text": "addressType must be a valid VkDeviceFaultAddressTypeEXT value", + "page": "vkspec" } ] }, @@ -76294,15 +98165,18 @@ "core": [ { "vuid": "VUID-VkDeviceFaultVendorBinaryHeaderVersionOneEXT-headerSize-07340", - "text": " headerSize must be 56" + "text": "headerSize must be 56", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceFaultVendorBinaryHeaderVersionOneEXT-headerVersion-07341", - "text": " headerVersion must be VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT" + "text": "headerVersion must be VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT", + "page": "vkspec" }, { "vuid": "VUID-VkDeviceFaultVendorBinaryHeaderVersionOneEXT-headerVersion-parameter", - "text": " headerVersion must be a valid VkDeviceFaultVendorBinaryHeaderVersionEXT value" + "text": "headerVersion must be a valid VkDeviceFaultVendorBinaryHeaderVersionEXT value", + "page": "vkspec" } ] }, @@ -76310,15 +98184,18 @@ "core": [ { "vuid": "VUID-vkGetPhysicalDeviceToolProperties-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": "physicalDevice must be a valid VkPhysicalDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceToolProperties-pToolCount-parameter", - "text": " pToolCount must be a valid pointer to a uint32_t value" + "text": "pToolCount must be a valid pointer to a uint32_t value", + "page": "vkspec" }, { "vuid": "VUID-vkGetPhysicalDeviceToolProperties-pToolProperties-parameter", - "text": " If the value referenced by pToolCount is not 0, and pToolProperties is not NULL, pToolProperties must be a valid pointer to an array of pToolCount VkPhysicalDeviceToolProperties structures" + "text": "If the value referenced by pToolCount is not 0, and pToolProperties is not NULL, pToolProperties must be a valid pointer to an array of pToolCount VkPhysicalDeviceToolProperties structures", + "page": "vkspec" } ] }, @@ -76326,11 +98203,47 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceToolProperties-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES", + "page": "vkspec" }, { "vuid": "VUID-VkPhysicalDeviceToolProperties-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" + } + ] + }, + "VkFrameBoundaryEXT": { + "core": [ + { + "vuid": "VUID-VkFrameBoundaryEXT-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_FRAME_BOUNDARY_EXT", + "page": "vkspec" + }, + { + "vuid": "VUID-VkFrameBoundaryEXT-flags-parameter", + "text": "flags must be a valid combination of VkFrameBoundaryFlagBitsEXT values", + "page": "vkspec" + }, + { + "vuid": "VUID-VkFrameBoundaryEXT-pImages-parameter", + "text": "If imageCount is not 0, and pImages is not NULL, pImages must be a valid pointer to an array of imageCount valid VkImage handles", + "page": "vkspec" + }, + { + "vuid": "VUID-VkFrameBoundaryEXT-pBuffers-parameter", + "text": "If bufferCount is not 0, and pBuffers is not NULL, pBuffers must be a valid pointer to an array of bufferCount valid VkBuffer handles", + "page": "vkspec" + }, + { + "vuid": "VUID-VkFrameBoundaryEXT-pTag-parameter", + "text": "If tagSize is not 0, and pTag is not NULL, pTag must be a valid pointer to an array of tagSize bytes", + "page": "vkspec" + }, + { + "vuid": "VUID-VkFrameBoundaryEXT-commonparent", + "text": "Both of the elements of pBuffers, and the elements of pImages that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice", + "page": "vkspec" } ] }, @@ -76338,535 +98251,658 @@ "core": [ { "vuid": "VUID-StandaloneSpirv-None-04633", - "text": " Every entry point must have no return value and accept no arguments" + "text": "Every entry point must have no return value and accept no arguments", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-None-04634", - "text": " The static function-call graph for an entry point must not contain cycles; that is, static recursion is not allowed" + "text": "The static function-call graph for an entry point must not contain cycles; that is, static recursion is not allowed", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-None-04635", - "text": " The Logical or PhysicalStorageBuffer64 addressing model must be selected" + "text": "The Logical or PhysicalStorageBuffer64 addressing model must be selected", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-None-04636", - "text": " Scope for execution must be limited to Workgroup or Subgroup" + "text": "Scope for execution must be limited to Workgroup or Subgroup", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-None-04637", - "text": " If the Scope for execution is Workgroup, then it must only be used in the task, mesh, tessellation control, or compute {ExecutionModel}" + "text": "If the Scope for execution is Workgroup, then it must only be used in the task, mesh, tessellation control, or compute Execution Model", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-None-04638", - "text": " Scope for memory must be limited to Device, QueueFamily, Workgroup, ShaderCallKHR, Subgroup, or Invocation" + "text": "Scope for memory must be limited to Device, QueueFamily, Workgroup, ShaderCallKHR, Subgroup, or Invocation", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-ExecutionModel-07320", - "text": " If the ExecutionModel is TessellationControl, and the MemoryModel is GLSL450, the Scope for memory must not be Workgroup" + "text": "If the Execution Model is TessellationControl, and the MemoryModel is GLSL450, the Scope for memory must not be Workgroup", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-None-07321", - "text": " If the Scope for memory is Workgroup, then it must only be used in the task, mesh, tessellation control, or compute {ExecutionModel}" + "text": "If the Scope for memory is Workgroup, then it must only be used in the task, mesh, tessellation control, or compute Execution Model", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-None-04640", - "text": " If the Scope for memory is ShaderCallKHR, then it must only be used in ray generation, intersection, closest hit, any-hit, miss, and callable {ExecutionModel}" + "text": "If the Scope for memory is ShaderCallKHR, then it must only be used in ray generation, intersection, closest hit, any-hit, miss, and callable Execution Model", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-None-04641", - "text": " If the Scope for memory is Invocation, then memory semantics must be None" + "text": "If the Scope for memory is Invocation, then memory semantics must be None", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-None-04642", - "text": " Scope for group operations must be limited to Subgroup" + "text": "Scope for group operations must be limited to Subgroup", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-SubgroupVoteKHR-07951", - "text": " If none of the SubgroupVoteKHR, GroupNonUniform, or SubgroupBallotKHR capabilities are declared, Scope for memory must not be Subgroup" + "text": "If none of the SubgroupVoteKHR, GroupNonUniform, or SubgroupBallotKHR capabilities are declared, Scope for memory must not be Subgroup", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-None-04643", - "text": " {StorageClass} must be limited to UniformConstant, Input, Uniform, Output, Workgroup, Private, Function, PushConstant, Image, StorageBuffer, RayPayloadKHR, IncomingRayPayloadKHR, HitAttributeKHR, CallableDataKHR, IncomingCallableDataKHR, ShaderRecordBufferKHR, PhysicalStorageBuffer, or TileImageEXT" + "text": "Storage Class must be limited to UniformConstant, Input, Uniform, Output, Workgroup, Private, Function, PushConstant, Image, StorageBuffer, RayPayloadKHR, IncomingRayPayloadKHR, HitAttributeKHR, CallableDataKHR, IncomingCallableDataKHR, ShaderRecordBufferKHR, PhysicalStorageBuffer, or TileImageEXT", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-None-04644", - "text": " If the {StorageClass} is Output, then it must not be used in the GlCompute, RayGenerationKHR, IntersectionKHR, AnyHitKHR, ClosestHitKHR, MissKHR, or CallableKHR {ExecutionModel}" + "text": "If the Storage Class is Output, then it must not be used in the GlCompute, RayGenerationKHR, IntersectionKHR, AnyHitKHR, ClosestHitKHR, MissKHR, or CallableKHR Execution Model", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-None-04645", - "text": " If the {StorageClass} is Workgroup, then it must only be used in the task, mesh, or compute {ExecutionModel}" + "text": "If the Storage Class is Workgroup, then it must only be used in the task, mesh, or compute Execution Model", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-None-08720", - "text": " If the {StorageClass} is TileImageEXT, then it must only be used in the fragment execution model" + "text": "If the Storage Class is TileImageEXT, then it must only be used in the fragment execution model", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-OpAtomicStore-04730", - "text": " OpAtomicStore must not use Acquire, AcquireRelease, or SequentiallyConsistent memory semantics" + "text": "OpAtomicStore must not use Acquire, AcquireRelease, or SequentiallyConsistent memory semantics", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-OpAtomicLoad-04731", - "text": " OpAtomicLoad must not use Release, AcquireRelease, or SequentiallyConsistent memory semantics" + "text": "OpAtomicLoad must not use Release, AcquireRelease, or SequentiallyConsistent memory semantics", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-OpMemoryBarrier-04732", - "text": " OpMemoryBarrier must use one of Acquire, Release, AcquireRelease, or SequentiallyConsistent memory semantics" + "text": "OpMemoryBarrier must use one of Acquire, Release, AcquireRelease, or SequentiallyConsistent memory semantics", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-OpMemoryBarrier-04733", - "text": " OpMemoryBarrier must include at least one {StorageClass}" + "text": "OpMemoryBarrier must include at least one Storage Class", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-OpControlBarrier-04650", - "text": " If the semantics for OpControlBarrier includes one of Acquire, Release, AcquireRelease, or SequentiallyConsistent memory semantics, then it must include at least one {StorageClass}" + "text": "If the semantics for OpControlBarrier includes one of Acquire, Release, AcquireRelease, or SequentiallyConsistent memory semantics, then it must include at least one Storage Class", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-OpVariable-04651", - "text": " Any OpVariable with an Initializer operand must have Output, Private, Function, or Workgroup as its {StorageClass} operand" + "text": "Any OpVariable with an Initializer operand must have Output, Private, Function, or Workgroup as its Storage Class operand", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-OpVariable-04734", - "text": " Any OpVariable with an Initializer operand and Workgroup as its {StorageClass} operand must use OpConstantNull as the initializer" + "text": "Any OpVariable with an Initializer operand and Workgroup as its Storage Class operand must use OpConstantNull as the initializer", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-OpReadClockKHR-04652", - "text": " Scope for OpReadClockKHR must be limited to Subgroup or Device" + "text": "Scope for OpReadClockKHR must be limited to Subgroup or Device", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-OriginLowerLeft-04653", - "text": " The OriginLowerLeft {ExecutionMode} must not be used; fragment entry points must declare OriginUpperLeft" + "text": "The OriginLowerLeft Execution Mode must not be used; fragment entry points must declare OriginUpperLeft", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-PixelCenterInteger-04654", - "text": " The PixelCenterInteger {ExecutionMode} must not be used (pixels are always centered at half-integer coordinates)" + "text": "The PixelCenterInteger Execution Mode must not be used (pixels are always centered at half-integer coordinates)", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-UniformConstant-04655", - "text": " Any variable in the UniformConstant {StorageClass} 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, or an array of one of these types", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-Uniform-06807", - "text": " Any variable in the Uniform or StorageBuffer {StorageClass} must be typed as OpTypeStruct or an array of this type" + "text": "Any variable in the Uniform or StorageBuffer Storage Class must be typed as OpTypeStruct or an array of this type", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-PushConstant-06808", - "text": " Any variable in the PushConstant {StorageClass} must be typed as OpTypeStruct" + "text": "Any variable in the PushConstant Storage Class must be typed as OpTypeStruct", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-OpTypeImage-04656", - "text": " OpTypeImage must declare a scalar 32-bit float, 64-bit integer, or 32-bit integer type for the “Sampled Type” (RelaxedPrecision can be applied to a sampling instruction and to the variable holding the result of a sampling instruction)" + "text": "OpTypeImage must declare a scalar 32-bit float, 64-bit integer, or 32-bit integer type for the “Sampled Type” (RelaxedPrecision can be applied to a sampling instruction and to the variable holding the result of a sampling instruction)", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-OpTypeImage-04657", - "text": " OpTypeImage must have a “Sampled” operand of 1 (sampled image) or 2 (storage image)" + "text": "OpTypeImage must have a “Sampled” operand of 1 (sampled image) or 2 (storage image)", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-OpTypeSampledImage-06671", - "text": " OpTypeSampledImage must have a OpTypeImage with a “Sampled” operand of 1 (sampled image)" + "text": "OpTypeSampledImage must have a OpTypeImage with a “Sampled” operand of 1 (sampled image)", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-Image-04965", - "text": " The SPIR-V Type of the Image Format operand of an OpTypeImage must match the Sampled Type, as defined in Image Format and Type Matching" + "text": "The SPIR-V Type of the Image Format operand of an OpTypeImage must match the Sampled Type, as defined in Image Format and Type Matching", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-OpImageTexelPointer-04658", - "text": " If an OpImageTexelPointer is used in an atomic operation, the image type of the image parameter to OpImageTexelPointer must have an image format of R64i, R64ui, R32f, R32i, or R32ui" + "text": "If an OpImageTexelPointer is used in an atomic operation, the image type of the image parameter to OpImageTexelPointer must have an image format of R64i, R64ui, R32f, R32i, or R32ui", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-OpImageQuerySizeLod-04659", - "text": " OpImageQuerySizeLod, OpImageQueryLod, and OpImageQueryLevels must only consume an “Image” operand whose type has its “Sampled” operand set to 1" + "text": "OpImageQuerySizeLod, OpImageQueryLod, and OpImageQueryLevels must only consume an “Image” operand whose type has its “Sampled” operand set to 1", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-OpTypeImage-06214", - "text": " An OpTypeImage with a “Dim” operand of SubpassData must have an “Arrayed” operand of 0 (non-arrayed) and a “Sampled” operand of 2 (storage image)" + "text": "An OpTypeImage with a “Dim” operand of SubpassData must have an “Arrayed” operand of 0 (non-arrayed) and a “Sampled” operand of 2 (storage image)", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-SubpassData-04660", - "text": " The (u,v) coordinates used for a SubpassData must be the <id> of a constant vector (0,0), or if a layer coordinate is used, must be a vector that was formed with constant 0 for the u and v components" + "text": "The (u,v) coordinates used for a SubpassData must be the <id> of a constant vector (0,0), or if a layer coordinate is used, must be a vector that was formed with constant 0 for the u and v components", + "page": "vkspec" }, { "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, and arrays of these types must not be stored to or modified", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-Uniform-06925", - "text": " Any variable in the Uniform {StorageClass} decorated as Block must not be stored to or modified" + "text": "Any variable in the Uniform Storage Class decorated as Block must not be stored to or modified", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-Offset-04663", - "text": " Image operand Offset must only be used with OpImage*Gather instructions" + "text": "Image operand Offset must only be used with OpImage*Gather instructions", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-Offset-04865", - "text": " Any image instruction which uses an Offset, ConstOffset, or ConstOffsets image operand, must only consume a “Sampled Image” operand whose type has its “Sampled” operand set to 1" + "text": "Any image instruction which uses an Offset, ConstOffset, or ConstOffsets image operand, must only consume a “Sampled Image” operand whose type has its “Sampled” operand set to 1", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-OpImageGather-04664", - "text": " The “Component” operand of OpImageGather, and OpImageSparseGather must be the <id> of a constant instruction" + "text": "The “Component” operand of OpImageGather, and OpImageSparseGather must be the <id> of a constant instruction", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-OpImage-04777", - "text": " OpImage*Dref* instructions must not consume an image whose Dim is 3D" + "text": "OpImage*Dref* instructions must not consume an image whose Dim is 3D", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-None-04667", - "text": " Structure types must not contain opaque types" + "text": "Structure types must not contain opaque types", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-BuiltIn-04668", - "text": " Any BuiltIn decoration not listed in Built-In Variables must not be used" + "text": "Any BuiltIn decoration not listed in Built-In Variables must not be used", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-Location-06672", - "text": " The Location or Component decorations must only be used with the Input, Output, RayPayloadKHR, IncomingRayPayloadKHR, HitAttributeKHR, HitObjectAttributeNV, CallableDataKHR, IncomingCallableDataKHR, or ShaderRecordBufferKHR storage classes" + "text": "The Location or Component decorations must only be used with the Input, Output, RayPayloadKHR, IncomingRayPayloadKHR, HitAttributeKHR, HitObjectAttributeNV, CallableDataKHR, IncomingCallableDataKHR, or ShaderRecordBufferKHR storage classes", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-Location-04915", - "text": " The Location or Component decorations must not be used with BuiltIn" + "text": "The Location or Component decorations must not be used with BuiltIn", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-Location-04916", - "text": " The Location decorations must be used on user-defined variables" + "text": "The Location decorations must be used on user-defined variables", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-Location-04917", - "text": " If a user-defined variable is a pointer to a Block decorated OpTypeStruct, then the OpVariable must have a Location decoration" + "text": "If a user-defined variable is not a pointer to a Block decorated OpTypeStruct, then the OpVariable must have a Location decoration", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-Location-04918", - "text": " If a user-defined variable has a Location decoration, and the variable is a pointer to a OpTypeStruct, then the members of that structure must not have Location decorations" + "text": "If a user-defined variable has a Location decoration, and the variable is a pointer to a OpTypeStruct, then the members of that structure must not have Location decorations", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-Location-04919", - "text": " If a user-defined variable does not have a Location decoration, and the variable is a pointer to a Block decorated OpTypeStruct, then each member of the struct must have a Location decoration" + "text": "If a user-defined variable does not have a Location decoration, and the variable is a pointer to a Block decorated OpTypeStruct, then each member of the struct must have a Location decoration", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-Component-04920", - "text": " The Component decoration value must not be greater than 3" + "text": "The Component decoration value must not be greater than 3", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-Component-04921", - "text": " If the Component decoration is used on an OpVariable that has a OpTypeVector type with a Component Type with a Width that is less than or equal to 32, the sum of its Component Count and the Component decoration value must be less than or equal to 4" + "text": "If the Component decoration is used on an OpVariable that has a OpTypeVector type with a Component Type with a Width that is less than or equal to 32, the sum of its Component Count and the Component decoration value must be less than or equal to 4", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-Component-04922", - "text": " If the Component decoration is used on an OpVariable that has a OpTypeVector type with a Component Type with a Width that is equal to 64, the sum of two times its Component Count and the Component decoration value must be less than or equal to 4" + "text": "If the Component decoration is used on an OpVariable that has a OpTypeVector type with a Component Type with a Width that is equal to 64, the sum of two times its Component Count and the Component decoration value must be less than or equal to 4", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-Component-04923", - "text": " The Component decorations value must not be 1 or 3 for scalar or two-component 64-bit data types" + "text": "The Component decorations value must not be 1 or 3 for scalar or two-component 64-bit data types", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-Component-04924", - "text": " The Component decorations must not be used with any type that is not a scalar or vector, or an array of such a type" + "text": "The Component decorations must not be used with any type that is not a scalar or vector, or an array of such a type", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-Component-07703", - "text": " The Component decorations must not be used for a 64-bit vector type with more than two components" + "text": "The Component decorations must not be used for a 64-bit vector type with more than two components", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-GLSLShared-04669", - "text": " The GLSLShared and GLSLPacked decorations must not be used" + "text": "The GLSLShared and GLSLPacked decorations must not be used", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-Flat-04670", - "text": " The Flat, NoPerspective, Sample, and Centroid decorations must only be used on variables with the Output or Input {StorageClass}" + "text": "The Flat, NoPerspective, Sample, and Centroid decorations must only be used on variables with the Output or Input Storage Class", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-Flat-06201", - "text": " The Flat, NoPerspective, Sample, and Centroid decorations must not be used on variables with the Output storage class in a fragment shader" + "text": "The Flat, NoPerspective, Sample, and Centroid decorations must not be used on variables with the Output storage class in a fragment shader", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-Flat-06202", - "text": " The Flat, NoPerspective, Sample, and Centroid decorations must not be used on variables with the Input storage class in a vertex shader" + "text": "The Flat, NoPerspective, Sample, and Centroid decorations must not be used on variables with the Input storage class in a vertex shader", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-PerVertexKHR-06777", - "text": " The PerVertexKHR decoration must only be used on variables with the Input {StorageClass} in a fragment shader" + "text": "The PerVertexKHR decoration must only be used on variables with the Input Storage Class in a fragment shader", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-Flat-04744", - "text": " Any variable with integer or double-precision floating-point type and with Input {StorageClass} in a fragment shader, must be decorated Flat" + "text": "Any variable with integer or double-precision floating-point type and with Input Storage Class in a fragment shader, must be decorated Flat", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-ViewportRelativeNV-04672", - "text": " The ViewportRelativeNV decoration must only be used on a variable decorated with Layer in the vertex, tessellation evaluation, or geometry shader stages" + "text": "The ViewportRelativeNV decoration must only be used on a variable decorated with Layer in the vertex, tessellation evaluation, or geometry shader stages", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-ViewportRelativeNV-04673", - "text": " The ViewportRelativeNV decoration must not be used unless a variable decorated with one of ViewportIndex or ViewportMaskNV is also statically used by the same OpEntryPoint" + "text": "The ViewportRelativeNV decoration must not be used unless a variable decorated with one of ViewportIndex or ViewportMaskNV is also statically used by the same OpEntryPoint", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-ViewportMaskNV-04674", - "text": " The ViewportMaskNV and ViewportIndex decorations must not both be statically used by one or more OpEntryPoint’s that form the pre-rasterization shader stages of a graphics pipeline" + "text": "The ViewportMaskNV and ViewportIndex decorations must not both be statically used by one or more OpEntryPoint’s that form the pre-rasterization shader stages of a graphics pipeline", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-FPRoundingMode-04675", - "text": " Rounding modes other than round-to-nearest-even and round-towards-zero must not be used for the FPRoundingMode decoration" + "text": "Rounding modes other than round-to-nearest-even and round-towards-zero must not be used for the FPRoundingMode decoration", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-Invariant-04677", - "text": " Variables decorated with Invariant and variables with structure types that have any members decorated with Invariant must be in the Output or Input {StorageClass}, Invariant used on an Input {StorageClass} variable or structure member has no effect" + "text": "Variables decorated with Invariant and variables with structure types that have any members decorated with Invariant must be in the Output or Input Storage Class, Invariant used on an Input Storage Class variable or structure member has no effect", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-VulkanMemoryModel-04678", - "text": " If the VulkanMemoryModel capability is not declared, the Volatile decoration must be used on any variable declaration that includes one of the SMIDNV, WarpIDNV, SubgroupSize, SubgroupLocalInvocationId, SubgroupEqMask, SubgroupGeMask, SubgroupGtMask, SubgroupLeMask, or SubgroupLtMask BuiltIn decorations when used in the ray generation, closest hit, miss, intersection, or callable shaders, or with the RayTmaxKHR Builtin decoration when used in an intersection shader" + "text": " If the VulkanMemoryModel capability is not declared, the Volatile decoration must be used on any variable declaration that includes one of the SMIDNV, WarpIDNV, SubgroupSize, SubgroupLocalInvocationId, SubgroupEqMask, SubgroupGeMask, SubgroupGtMask, SubgroupLeMask, or SubgroupLtMask BuiltIn decorations when used in the ray generation, closest hit, miss, intersection, or callable shaders, or with the RayTmaxKHR Builtin decoration when used in an intersection shader", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-VulkanMemoryModel-04679", - "text": " If the VulkanMemoryModel capability is declared, the OpLoad instruction must use the Volatile memory semantics when it accesses into any variable that includes one of the SMIDNV, WarpIDNV, SubgroupSize, SubgroupLocalInvocationId, SubgroupEqMask, SubgroupGeMask, SubgroupGtMask, SubgroupLeMask, or SubgroupLtMask BuiltIn decorations when used in the ray generation, closest hit, miss, intersection, or callable shaders, or with the RayTmaxKHR Builtin decoration when used in an intersection shader" + "text": "If the VulkanMemoryModel capability is declared, the OpLoad instruction must use the Volatile memory semantics when it accesses into any variable that includes one of the SMIDNV, WarpIDNV, SubgroupSize, SubgroupLocalInvocationId, SubgroupEqMask, SubgroupGeMask, SubgroupGtMask, SubgroupLeMask, or SubgroupLtMask BuiltIn decorations when used in the ray generation, closest hit, miss, intersection, or callable shaders, or with the RayTmaxKHR Builtin decoration when used in an intersection shader", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-OpTypeRuntimeArray-04680", - "text": " OpTypeRuntimeArray must only be used for:
\n
    \n
  • \n

    the last member of a Block-decorated OpTypeStruct in\nStorageBuffer or PhysicalStorageBuffer storage {StorageClass}

    \n
  • \n
  • \n

    BufferBlock-decorated OpTypeStruct in the Uniform\nstorage {StorageClass}

    \n
  • \n
  • \n

    the outermost dimension of an arrayed variable in the\nStorageBuffer, Uniform, or UniformConstant storage\n{StorageClass}

    \n
  • \n
  • \n

    variables in the NodePayloadAMDX storage {StorageClass} when the\nCoalescingAMDX Execution Mode is specified

    \n
  • \n
\n
" + "text": "OpTypeRuntimeArray must only be used for:
\n
    \n
  • \n

    the last member of a Block-decorated OpTypeStruct in\nStorageBuffer or PhysicalStorageBuffer storage Storage Class

    \n
  • \n
  • \n

    BufferBlock-decorated OpTypeStruct in the Uniform\nstorage Storage Class

    \n
  • \n
  • \n

    the outermost dimension of an arrayed variable in the\nStorageBuffer, Uniform, or UniformConstant storage\nStorage Class

    \n
  • \n
  • \n

    variables in the NodePayloadAMDX storage Storage Class when the\nCoalescingAMDX Execution Mode is specified

    \n
  • \n
\n
", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-Function-04681", - "text": " A type T that is an array sized with a specialization constant must neither be, nor be contained in, the type T2 of a variable V, unless either: a) T is equal to T2, b) V is declared in the Function, or Private {StorageClass}, c) V is a non-Block variable in the Workgroup {StorageClass}, or d) V is an interface variable with an additional level of arrayness, as described in interface matching, and T is the member type of the array type T2" + "text": "A type T that is an array sized with a specialization constant must neither be, nor be contained in, the type T2 of a variable V, unless either: a) T is equal to T2, b) V is declared in the Function, or Private Storage Class, c) V is a non-Block variable in the Workgroup Storage Class, or d) V is an interface variable with an additional level of arrayness, as described in interface matching, and T is the member type of the array type T2", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-OpControlBarrier-04682", - "text": " If OpControlBarrier is used in ray generation, intersection, any-hit, closest hit, miss, fragment, vertex, tessellation evaluation, or geometry shaders, the execution Scope must be Subgroup" + "text": "If OpControlBarrier is used in ray generation, intersection, any-hit, closest hit, miss, fragment, vertex, tessellation evaluation, or geometry shaders, the execution Scope must be Subgroup", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-LocalSize-06426", - "text": " For each compute shader entry point, either a LocalSize or LocalSizeId {ExecutionMode}, or an object decorated with the WorkgroupSize decoration must be specified" + "text": "For each compute shader entry point, either a LocalSize or LocalSizeId Execution Mode, or an object decorated with the WorkgroupSize decoration must be specified", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-DerivativeGroupQuadsNV-04684", - "text": " For compute shaders using the DerivativeGroupQuadsNV execution mode, the first two dimensions of the local workgroup size must be a multiple of two" + "text": "For compute shaders using the DerivativeGroupQuadsNV execution mode, the first two dimensions of the local workgroup size must be a multiple of two", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-DerivativeGroupLinearNV-04778", - "text": " For compute shaders using the DerivativeGroupLinearNV execution mode, the product of the dimensions of the local workgroup size must be a multiple of four" + "text": "For compute shaders using the DerivativeGroupLinearNV execution mode, the product of the dimensions of the local workgroup size must be a multiple of four", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-OpGroupNonUniformBallotBitCount-04685", - "text": " If OpGroupNonUniformBallotBitCount is used, the group operation must be limited to Reduce, InclusiveScan, or ExclusiveScan" + "text": "If OpGroupNonUniformBallotBitCount is used, the group operation must be limited to Reduce, InclusiveScan, or ExclusiveScan", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-None-04686", - "text": " The Pointer operand of all atomic instructions must have a {StorageClass} limited to Uniform, Workgroup, Image, StorageBuffer, PhysicalStorageBuffer, or TaskPayloadWorkgroupEXT" + "text": "The Pointer operand of all atomic instructions must have a Storage Class limited to Uniform, Workgroup, Image, StorageBuffer, PhysicalStorageBuffer, or TaskPayloadWorkgroupEXT", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-Offset-04687", - "text": " Output variables or block members decorated with Offset that have a 64-bit type, or a composite type containing a 64-bit type, must specify an Offset value aligned to a 8 byte boundary" + "text": "Output variables or block members decorated with Offset that have a 64-bit type, or a composite type containing a 64-bit type, must specify an Offset value aligned to a 8 byte boundary", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-Offset-04689", - "text": " The size of any output block containing any member decorated with Offset that is a 64-bit type must be a multiple of 8" + "text": "The size of any output block containing any member decorated with Offset that is a 64-bit type must be a multiple of 8", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-Offset-04690", - "text": " The first member of an output block specifying a Offset decoration must specify a Offset value that is aligned to an 8 byte boundary if that block contains any member decorated with Offset and is a 64-bit type" + "text": "The first member of an output block specifying a Offset decoration must specify a Offset value that is aligned to an 8 byte boundary if that block contains any member decorated with Offset and is a 64-bit type", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-Offset-04691", - "text": " Output variables or block members decorated with Offset that have a 32-bit type, or a composite type contains a 32-bit type, must specify an Offset value aligned to a 4 byte boundary" + "text": "Output variables or block members decorated with Offset that have a 32-bit type, or a composite type contains a 32-bit type, must specify an Offset value aligned to a 4 byte boundary", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-Offset-04692", - "text": " Output variables, blocks or block members decorated with Offset must only contain base types that have components that are either 32-bit or 64-bit in size" + "text": "Output variables, blocks or block members decorated with Offset must only contain base types that have components that are either 32-bit or 64-bit in size", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-Offset-04716", - "text": " Only variables or block members in the output interface decorated with Offset can be captured for transform feedback, and those variables or block members must also be decorated with XfbBuffer and XfbStride, or inherit XfbBuffer and XfbStride decorations from a block containing them" + "text": "Only variables or block members in the output interface decorated with Offset can be captured for transform feedback, and those variables or block members must also be decorated with XfbBuffer and XfbStride, or inherit XfbBuffer and XfbStride decorations from a block containing them", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-XfbBuffer-04693", - "text": " All variables or block members in the output interface of the entry point being compiled decorated with a specific XfbBuffer value must all be decorated with identical XfbStride values" + "text": "All variables or block members in the output interface of the entry point being compiled decorated with a specific XfbBuffer value must all be decorated with identical XfbStride values", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-Stream-04694", - "text": " If any variables or block members in the output interface of the entry point being compiled are decorated with Stream, then all variables belonging to the same XfbBuffer must specify the same Stream value" + "text": "If any variables or block members in the output interface of the entry point being compiled are decorated with Stream, then all variables belonging to the same XfbBuffer must specify the same Stream value", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-XfbBuffer-04696", - "text": " For any two variables or block members in the output interface of the entry point being compiled with the same XfbBuffer value, the ranges determined by the Offset decoration and the size of the type must not overlap" + "text": "For any two variables or block members in the output interface of the entry point being compiled with the same XfbBuffer value, the ranges determined by the Offset decoration and the size of the type must not overlap", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-XfbBuffer-04697", - "text": " All block members in the output interface of the entry point being compiled that are in the same block and have a declared or inherited XfbBuffer decoration must specify the same XfbBuffer value" + "text": "All block members in the output interface of the entry point being compiled that are in the same block and have a declared or inherited XfbBuffer decoration must specify the same XfbBuffer value", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-RayPayloadKHR-04698", - "text": " RayPayloadKHR {StorageClass} must only be used in ray generation, closest hit or miss shaders" + "text": "RayPayloadKHR Storage Class must only be used in ray generation, closest hit or miss shaders", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-IncomingRayPayloadKHR-04699", - "text": " IncomingRayPayloadKHR {StorageClass} must only be used in closest hit, any-hit, or miss shaders" + "text": "IncomingRayPayloadKHR Storage Class must only be used in closest hit, any-hit, or miss shaders", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-IncomingRayPayloadKHR-04700", - "text": " There must be at most one variable with the IncomingRayPayloadKHR {StorageClass} in the input interface of an entry point" + "text": "There must be at most one variable with the IncomingRayPayloadKHR Storage Class in the input interface of an entry point", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-HitAttributeKHR-04701", - "text": " HitAttributeKHR {StorageClass} must only be used in intersection, any-hit, or closest hit shaders" + "text": "HitAttributeKHR Storage Class must only be used in intersection, any-hit, or closest hit shaders", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-HitAttributeKHR-04702", - "text": " There must be at most one variable with the HitAttributeKHR {StorageClass} in the input interface of an entry point" + "text": "There must be at most one variable with the HitAttributeKHR Storage Class in the input interface of an entry point", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-HitAttributeKHR-04703", - "text": " A variable with HitAttributeKHR {StorageClass} must only be written to in an intersection shader" + "text": "A variable with HitAttributeKHR Storage Class must only be written to in an intersection shader", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-CallableDataKHR-04704", - "text": " CallableDataKHR {StorageClass} must only be used in ray generation, closest hit, miss, and callable shaders" + "text": "CallableDataKHR Storage Class must only be used in ray generation, closest hit, miss, and callable shaders", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-IncomingCallableDataKHR-04705", - "text": " IncomingCallableDataKHR {StorageClass} must only be used in callable shaders" + "text": "IncomingCallableDataKHR Storage Class must only be used in callable shaders", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-IncomingCallableDataKHR-04706", - "text": " There must be at most one variable with the IncomingCallableDataKHR {StorageClass} in the input interface of an entry point" + "text": "There must be at most one variable with the IncomingCallableDataKHR Storage Class in the input interface of an entry point", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-ShaderRecordBufferKHR-07119", - "text": " ShaderRecordBufferKHR {StorageClass} must only be used in ray generation, intersection, any-hit, closest hit, callable, or miss shaders" + "text": "ShaderRecordBufferKHR Storage Class must only be used in ray generation, intersection, any-hit, closest hit, callable, or miss shaders", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-Base-07650", - "text": " The Base operand of OpPtrAccessChain must have a storage class of Workgroup, StorageBuffer, or PhysicalStorageBuffer" + "text": "The Base operand of OpPtrAccessChain must have a storage class of Workgroup, StorageBuffer, or PhysicalStorageBuffer", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-Base-07651", - "text": " If the Base operand of OpPtrAccessChain has a Workgroup {StorageClass}, then the VariablePointers capability must be declared" + "text": "If the Base operand of OpPtrAccessChain has a Workgroup Storage Class, then the VariablePointers capability must be declared", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-Base-07652", - "text": " If the Base operand of OpPtrAccessChain has a StorageBuffer {StorageClass}, then the VariablePointers or VariablePointersStorageBuffer capability must be declared" + "text": "If the Base operand of OpPtrAccessChain has a StorageBuffer Storage Class, then the VariablePointers or VariablePointersStorageBuffer capability must be declared", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-PhysicalStorageBuffer64-04708", - "text": " If the PhysicalStorageBuffer64 addressing model is enabled, all instructions that support memory access operands and that use a physical pointer must include the Aligned operand" + "text": "If the PhysicalStorageBuffer64 addressing model is enabled, all instructions that support memory access operands and that use a physical pointer must include the Aligned operand", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-PhysicalStorageBuffer64-04709", - "text": " If the PhysicalStorageBuffer64 addressing model is enabled, any access chain instruction that accesses into a RowMajor matrix must only be used as the Pointer operand to OpLoad or OpStore" + "text": "If the PhysicalStorageBuffer64 addressing model is enabled, any access chain instruction that accesses into a RowMajor matrix must only be used as the Pointer operand to OpLoad or OpStore", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-PhysicalStorageBuffer64-04710", - "text": " If the PhysicalStorageBuffer64 addressing model is enabled, OpConvertUToPtr and OpConvertPtrToU must use an integer type whose Width is 64" + "text": "If the PhysicalStorageBuffer64 addressing model is enabled, OpConvertUToPtr and OpConvertPtrToU must use an integer type whose Width is 64", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-OpTypeForwardPointer-04711", - "text": " OpTypeForwardPointer must have a {StorageClass} of PhysicalStorageBuffer" + "text": "OpTypeForwardPointer must have a Storage Class of PhysicalStorageBuffer", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-None-04745", - "text": " All block members in a variable with a {StorageClass} of PushConstant declared as an array must only be accessed by dynamically uniform indices" + "text": "All block members in a variable with a Storage Class of PushConstant declared as an array must only be accessed by dynamically uniform indices", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-OpVariable-06673", - "text": " There must not be more than one OpVariable in the PushConstant {StorageClass} listed in the Interface for each OpEntryPoint" + "text": "There must not be more than one OpVariable in the PushConstant Storage Class listed in the Interface for each OpEntryPoint", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-OpEntryPoint-06674", - "text": " Each OpEntryPoint must not statically use more than one OpVariable in the PushConstant {StorageClass}" + "text": "Each OpEntryPoint must not statically use more than one OpVariable in the PushConstant Storage Class", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-OpEntryPoint-08721", - "text": " Each OpEntryPoint must not have more than one Input variable assigned the same Component word inside a Location slot, either explicitly or implicitly" + "text": "Each OpEntryPoint must not have more than one Input variable assigned the same Component word inside a Location slot, either explicitly or implicitly", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-OpEntryPoint-08722", - "text": " Each OpEntryPoint must not have more than one Output variable assigned the same Component word inside a Location slot, either explicitly or implicitly" + "text": "Each OpEntryPoint must not have more than one Output variable assigned the same Component word inside a Location slot, either explicitly or implicitly", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-Result-04780", - "text": " The Result Type operand of any OpImageRead or OpImageSparseRead instruction must be a vector of four components" + "text": "The Result Type operand of any OpImageRead or OpImageSparseRead instruction must be a vector of four components", + "page": "vkspec" }, { "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" + "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": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-PushConstant-06675", - "text": " Any variable in the PushConstant or StorageBuffer storage class must be decorated as Block" + "text": "Any variable in the PushConstant or StorageBuffer storage class must be decorated as Block", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-Uniform-06676", - "text": " Any variable in the Uniform {StorageClass} must be decorated as Block or BufferBlock" + "text": "Any variable in the Uniform Storage Class must be decorated as Block or BufferBlock", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-UniformConstant-06677", - "text": " Any variable in the UniformConstant, StorageBuffer, or Uniform {StorageClass} must be decorated with DescriptorSet and Binding" + "text": "Any variable in the UniformConstant, StorageBuffer, or Uniform Storage Class must be decorated with DescriptorSet and Binding", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-InputAttachmentIndex-06678", - "text": " Variables decorated with InputAttachmentIndex must be in the UniformConstant {StorageClass}" + "text": "Variables decorated with InputAttachmentIndex must be in the UniformConstant Storage Class", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-DescriptorSet-06491", - "text": " If a variable is decorated by DescriptorSet or Binding, the {StorageClass} must correspond to an entry in Shader Resource and Storage Class Correspondence" + "text": "If a variable is decorated by DescriptorSet or Binding, the Storage Class must correspond to an entry in Shader Resource and Storage Class Correspondence", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-Input-06778", - "text": " Variables with a {StorageClass} of Input in a fragment shader stage that are decorated with PerVertexKHR must be declared as arrays" + "text": "Variables with a Storage Class of Input in a fragment shader stage that are decorated with PerVertexKHR must be declared as arrays", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-MeshEXT-07102", - "text": " The module must not contain both an entry point that uses the TaskEXT or MeshEXT {ExecutionModel} and an entry point that uses the TaskNV or MeshNV {ExecutionModel}" + "text": "The module must not contain both an entry point that uses the TaskEXT or MeshEXT Execution Model and an entry point that uses the TaskNV or MeshNV Execution Model", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-MeshEXT-07106", - "text": " In mesh shaders using the MeshEXT {ExecutionModel} OpSetMeshOutputsEXT must be called before any outputs are written" + "text": "In mesh shaders using the MeshEXT Execution Model OpSetMeshOutputsEXT must be called before any outputs are written", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-MeshEXT-07107", - "text": " In mesh shaders using the MeshEXT {ExecutionModel} all variables declared as output must not be read from" + "text": "In mesh shaders using the MeshEXT Execution Model all variables declared as output must not be read from", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-MeshEXT-07108", - "text": " In mesh shaders using the MeshEXT {ExecutionModel} for OpSetMeshOutputsEXT instructions, the “Vertex Count” and “Primitive Count” operands must not depend on ViewIndex" + "text": "In mesh shaders using the MeshEXT Execution Model for OpSetMeshOutputsEXT instructions, the “Vertex Count” and “Primitive Count” operands must not depend on ViewIndex", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-MeshEXT-07109", - "text": " In mesh shaders using the MeshEXT {ExecutionModel} variables decorated with PrimitivePointIndicesEXT, PrimitiveLineIndicesEXT, or PrimitiveTriangleIndicesEXT declared as an array must not be accessed by indices that depend on ViewIndex" + "text": "In mesh shaders using the MeshEXT Execution Model variables decorated with PrimitivePointIndicesEXT, PrimitiveLineIndicesEXT, or PrimitiveTriangleIndicesEXT declared as an array must not be accessed by indices that depend on ViewIndex", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-MeshEXT-07110", - "text": " In mesh shaders using the MeshEXT {ExecutionModel} any values stored in variables decorated with PrimitivePointIndicesEXT, PrimitiveLineIndicesEXT, or PrimitiveTriangleIndicesEXT must not depend on ViewIndex" + "text": "In mesh shaders using the MeshEXT Execution Model any values stored in variables decorated with PrimitivePointIndicesEXT, PrimitiveLineIndicesEXT, or PrimitiveTriangleIndicesEXT must not depend on ViewIndex", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-MeshEXT-07111", - "text": " In mesh shaders using the MeshEXT {ExecutionModel} variables in workgroup or private {StorageClass} declared as or containing a composite type must not be accessed by indices that depend on ViewIndex" + "text": "In mesh shaders using the MeshEXT Execution Model variables in workgroup or private Storage Class declared as or containing a composite type must not be accessed by indices that depend on ViewIndex", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-MeshEXT-07330", - "text": " In mesh shaders using the MeshEXT {ExecutionModel} the OutputVertices {ExecutionMode} must be greater than 0" + "text": "In mesh shaders using the MeshEXT Execution Model the OutputVertices Execution Mode must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-MeshEXT-07331", - "text": " In mesh shaders using the MeshEXT {ExecutionModel} the OutputPrimitivesEXT {ExecutionMode} must be greater than 0" - }, - { - "vuid": "VUID-StandaloneSpirv-maintenance5-09189", - "text": " In mesh shaders using the MeshEXT or MeshNV {ExecutionModel} and the OutputPoints {ExecutionMode}, if the number of output points is greater than 0, a PointSize decorated variable must be written to for each output point if maintenance5 is not enabled" - }, - { - "vuid": "VUID-StandaloneSpirv-maintenance5-09190", - "text": " If maintenance5 is enabled and a PointSize decorated variable is written to, all execution paths must write to a PointSize decorated variable" + "text": "In mesh shaders using the MeshEXT Execution Model the OutputPrimitivesEXT Execution Mode must be greater than 0", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-Input-07290", - "text": " Variables with a {StorageClass} of Input or Output and a type of OpTypeBool must be decorated with the BuiltIn decoration" + "text": "Variables with a Storage Class of Input or Output and a type of OpTypeBool must be decorated with the BuiltIn decoration", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-TileImageEXT-08723", - "text": " The tile image variable declarations must obey the constraints on the TileImageEXT {StorageClass} and the Location decoration described in Fragment Tile Image Interface" + "text": "The tile image variable declarations must obey the constraints on the TileImageEXT Storage Class and the Location decoration described in Fragment Tile Image Interface", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-None-08724", - "text": " The TileImageEXT {StorageClass} must only be used for declaring tile image variables." + "text": "The TileImageEXT Storage Class must only be used for declaring tile image variables.", + "page": "vkspec" }, { "vuid": "VUID-StandaloneSpirv-Pointer-08973", - "text": " The {StorageClass} of the Pointer operand to OpCooperativeMatrixLoadKHR or OpCooperativeMatrixStoreKHR must be limited to Workgroup, StorageBuffer, or PhysicalStorageBuffer." + "text": "The Storage Class of the Pointer operand to OpCooperativeMatrixLoadKHR or OpCooperativeMatrixStoreKHR must be limited to Workgroup, StorageBuffer, or PhysicalStorageBuffer.", + "page": "vkspec" } ] }, @@ -76874,851 +98910,1108 @@ "core": [ { "vuid": "VUID-RuntimeSpirv-vulkanMemoryModel-06265", - "text": " If vulkanMemoryModel is enabled and vulkanMemoryModelDeviceScope is not enabled, Device memory scope must not be used" + "text": "If vulkanMemoryModel is enabled and vulkanMemoryModelDeviceScope is not enabled, Device memory scope must not be used", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-vulkanMemoryModel-06266", - "text": " If vulkanMemoryModel is not enabled, QueueFamily memory scope must not be used" + "text": "If vulkanMemoryModel is not enabled, QueueFamily memory scope must not be used", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-shaderSubgroupClock-06267", - "text": " If shaderSubgroupClock is not enabled, the Subgroup scope must not be used for OpReadClockKHR" + "text": "If shaderSubgroupClock is not enabled, the Subgroup scope must not be used for OpReadClockKHR", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-shaderDeviceClock-06268", - "text": " If shaderDeviceClock is not enabled, the Device scope must not be used for OpReadClockKHR" + "text": "If shaderDeviceClock is not enabled, the Device scope must not be used for OpReadClockKHR", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-apiVersion-07954", - "text": " If VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.3, the VK_KHR_format_feature_flags2 extension is not supported, and shaderStorageImageWriteWithoutFormat is not enabled, any variable created with a “Type” of OpTypeImage that has a “Sampled” operand of 2 and an “Image Format” operand of Unknown must be decorated with NonWritable" + "text": "If VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.3, the VK_KHR_format_feature_flags2 extension is not supported, and shaderStorageImageWriteWithoutFormat is not enabled, any variable created with a “Type” of OpTypeImage that has a “Sampled” operand of 2 and an “Image Format” operand of Unknown must be decorated with NonWritable", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-apiVersion-07955", - "text": " If VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.3, the VK_KHR_format_feature_flags2 extension is not supported, and shaderStorageImageReadWithoutFormat is not enabled, any variable created with a “Type” of OpTypeImage that has a “Sampled” operand of 2 and an “Image Format” operand of Unknown must be decorated with NonReadable" + "text": "If VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.3, the VK_KHR_format_feature_flags2 extension is not supported, and shaderStorageImageReadWithoutFormat is not enabled, any variable created with a “Type” of OpTypeImage that has a “Sampled” operand of 2 and an “Image Format” operand of Unknown must be decorated with NonReadable", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpImageWrite-07112", - "text": " OpImageWrite to any Image whose Image Format is not Unknown must have the Texel operand contain at least as many components as the corresponding VkFormat as given in the SPIR-V Image Format compatibility table" + "text": "OpImageWrite to any Image whose Image Format is not Unknown must have the Texel operand contain at least as many components as the corresponding VkFormat as given in the SPIR-V Image Format compatibility table", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-Location-06272", - "text": " The sum of Location and the number of locations the variable it decorates consumes must be less than or equal to the value for the matching {ExecutionModel} defined in Shader Input and Output Locations" - }, - { - "vuid": "VUID-RuntimeSpirv-Fragment-06427", - "text": " When blending is enabled and one of the dual source blend modes is in use, the maximum number of output attachments written to in the Fragment {ExecutionModel} must be less than or equal to maxFragmentDualSrcAttachments" + "text": "The sum of Location and the number of locations the variable it decorates consumes must be less than or equal to the value for the matching Execution Model defined in Shader Input and Output Locations", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-Location-06428", - "text": " The maximum number of storage buffers, storage images, and output Location decorated color attachments written to in the Fragment {ExecutionModel} must be less than or equal to maxFragmentCombinedOutputResources" + "text": "The maximum number of storage buffers, storage images, and output Location decorated color attachments written to in the Fragment Execution Model must be less than or equal to maxFragmentCombinedOutputResources", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-NonUniform-06274", - "text": " If an instruction loads from or stores to a resource (including atomics and image instructions) and the resource descriptor being accessed is not dynamically uniform, then the operand corresponding to that resource (e.g. the pointer or sampled image operand) must be decorated with NonUniform" + "text": "If an instruction loads from or stores to a resource (including atomics and image instructions) and the resource descriptor being accessed is not dynamically uniform, then the operand corresponding to that resource (e.g. the pointer or sampled image operand) must be decorated with NonUniform", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-None-06275", - "text": " shaderSubgroupExtendedTypes must be enabled for group operations to use 8-bit integer, 16-bit integer, 64-bit integer, 16-bit floating-point, and vectors of these types" + "text": "shaderSubgroupExtendedTypes must be enabled for group operations to use 8-bit integer, 16-bit integer, 64-bit integer, 16-bit floating-point, and vectors of these types", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-subgroupBroadcastDynamicId-06276", - "text": " If subgroupBroadcastDynamicId is VK_TRUE, and the shader module version is 1.5 or higher, the “Index” for OpGroupNonUniformQuadBroadcast must be dynamically uniform within the derivative group. Otherwise, “Index” must be a constant" + "text": "If subgroupBroadcastDynamicId is VK_TRUE, and the shader module version is 1.5 or higher, the “Index” for OpGroupNonUniformQuadBroadcast must be dynamically uniform within the derivative group. Otherwise, “Index” must be a constant", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-subgroupBroadcastDynamicId-06277", - "text": " If subgroupBroadcastDynamicId is VK_TRUE, and the shader module version is 1.5 or higher, the “Id” for OpGroupNonUniformBroadcast must be dynamically uniform within the subgroup. Otherwise, “Id” must be a constant" + "text": "If subgroupBroadcastDynamicId is VK_TRUE, and the shader module version is 1.5 or higher, the “Id” for OpGroupNonUniformBroadcast must be dynamically uniform within the subgroup. Otherwise, “Id” must be a constant", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-None-06278", - "text": " shaderBufferInt64Atomics must be enabled for 64-bit integer atomic operations to be supported on a Pointer with a {StorageClass} of StorageBuffer or Uniform" + "text": "shaderBufferInt64Atomics must be enabled for 64-bit integer atomic operations to be supported on a Pointer with a Storage Class of StorageBuffer or Uniform", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-None-06279", - "text": " shaderSharedInt64Atomics must be enabled for 64-bit integer atomic operations to be supported on a Pointer with a {StorageClass} of Workgroup" + "text": "shaderSharedInt64Atomics must be enabled for 64-bit integer atomic operations to be supported on a Pointer with a Storage Class of Workgroup", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-None-06284", - "text": " shaderBufferFloat32Atomics, or shaderBufferFloat32AtomicAdd, or shaderBufferFloat64Atomics, or shaderBufferFloat64AtomicAdd, or shaderBufferFloat16Atomics, or shaderBufferFloat16AtomicAdd, or shaderBufferFloat16AtomicMinMax, or shaderBufferFloat32AtomicMinMax, or shaderBufferFloat64AtomicMinMax must be enabled for floating-point atomic operations to be supported on a Pointer with a {StorageClass} of StorageBuffer" + "text": "shaderBufferFloat32Atomics, or shaderBufferFloat32AtomicAdd, or shaderBufferFloat64Atomics, or shaderBufferFloat64AtomicAdd, or shaderBufferFloat16Atomics, or shaderBufferFloat16AtomicAdd, or shaderBufferFloat16AtomicMinMax, or shaderBufferFloat32AtomicMinMax, or shaderBufferFloat64AtomicMinMax must be enabled for floating-point atomic operations to be supported on a Pointer with a Storage Class of StorageBuffer", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-None-06285", - "text": " shaderSharedFloat32Atomics, or shaderSharedFloat32AtomicAdd, or shaderSharedFloat64Atomics, or shaderSharedFloat64AtomicAdd, or shaderSharedFloat16Atomics, or shaderSharedFloat16AtomicAdd, or shaderSharedFloat16AtomicMinMax, or shaderSharedFloat32AtomicMinMax, or shaderSharedFloat64AtomicMinMax must be enabled for floating-point atomic operations to be supported on a Pointer with a {StorageClass} of Workgroup" + "text": "shaderSharedFloat32Atomics, or shaderSharedFloat32AtomicAdd, or shaderSharedFloat64Atomics, or shaderSharedFloat64AtomicAdd, or shaderSharedFloat16Atomics, or shaderSharedFloat16AtomicAdd, or shaderSharedFloat16AtomicMinMax, or shaderSharedFloat32AtomicMinMax, or shaderSharedFloat64AtomicMinMax must be enabled for floating-point atomic operations to be supported on a Pointer with a Storage Class of Workgroup", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-None-06286", - "text": " shaderImageFloat32Atomics, or shaderImageFloat32AtomicAdd, or shaderImageFloat32AtomicMinMax must be enabled for 32-bit floating-point atomic operations to be supported on a Pointer with a {StorageClass} of Image" + "text": "shaderImageFloat32Atomics, or shaderImageFloat32AtomicAdd, or shaderImageFloat32AtomicMinMax must be enabled for 32-bit floating-point atomic operations to be supported on a Pointer with a Storage Class of Image", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-None-06287", - "text": " sparseImageFloat32Atomics, or sparseImageFloat32AtomicAdd, or sparseImageFloat32AtomicMinMax must be enabled for 32-bit floating-point atomics to be supported on sparse images" + "text": "sparseImageFloat32Atomics, or sparseImageFloat32AtomicAdd, or sparseImageFloat32AtomicMinMax must be enabled for 32-bit floating-point atomics to be supported on sparse images", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-None-06288", - "text": " shaderImageInt64Atomics must be enabled for 64-bit integer atomic operations to be supported on a Pointer with a {StorageClass} of Image" + "text": "shaderImageInt64Atomics must be enabled for 64-bit integer atomic operations to be supported on a Pointer with a Storage Class of Image", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-denormBehaviorIndependence-06289", - "text": " If denormBehaviorIndependence is VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY, then the entry point must use the same denormals {ExecutionMode} for both 16-bit and 64-bit floating-point types" + "text": "If denormBehaviorIndependence is VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY, then the entry point must use the same denormals Execution Mode for both 16-bit and 64-bit floating-point types", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-denormBehaviorIndependence-06290", - "text": " If denormBehaviorIndependence is VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE, then the entry point must use the same denormals {ExecutionMode} for all floating-point types" + "text": "If denormBehaviorIndependence is VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE, then the entry point must use the same denormals Execution Mode for all floating-point types", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-roundingModeIndependence-06291", - "text": " If roundingModeIndependence is VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY, then the entry point must use the same rounding {ExecutionMode} for both 16-bit and 64-bit floating-point types" + "text": "If roundingModeIndependence is VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY, then the entry point must use the same rounding Execution Mode for both 16-bit and 64-bit floating-point types", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-roundingModeIndependence-06292", - "text": " If roundingModeIndependence is VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE, then the entry point must use the same rounding {ExecutionMode} for all floating-point types" + "text": "If roundingModeIndependence is VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE, then the entry point must use the same rounding Execution Mode for all floating-point types", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-shaderSignedZeroInfNanPreserveFloat16-06293", - "text": " If shaderSignedZeroInfNanPreserveFloat16 is VK_FALSE, then SignedZeroInfNanPreserve for 16-bit floating-point type must not be used" + "text": "If shaderSignedZeroInfNanPreserveFloat16 is VK_FALSE, then SignedZeroInfNanPreserve for 16-bit floating-point type must not be used", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-shaderSignedZeroInfNanPreserveFloat32-06294", - "text": " If shaderSignedZeroInfNanPreserveFloat32 is VK_FALSE, then SignedZeroInfNanPreserve for 32-bit floating-point type must not be used" + "text": "If shaderSignedZeroInfNanPreserveFloat32 is VK_FALSE, then SignedZeroInfNanPreserve for 32-bit floating-point type must not be used", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-shaderSignedZeroInfNanPreserveFloat64-06295", - "text": " If shaderSignedZeroInfNanPreserveFloat64 is VK_FALSE, then SignedZeroInfNanPreserve for 64-bit floating-point type must not be used" + "text": "If shaderSignedZeroInfNanPreserveFloat64 is VK_FALSE, then SignedZeroInfNanPreserve for 64-bit floating-point type must not be used", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-shaderDenormPreserveFloat16-06296", - "text": " If shaderDenormPreserveFloat16 is VK_FALSE, then DenormPreserve for 16-bit floating-point type must not be used" + "text": "If shaderDenormPreserveFloat16 is VK_FALSE, then DenormPreserve for 16-bit floating-point type must not be used", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-shaderDenormPreserveFloat32-06297", - "text": " If shaderDenormPreserveFloat32 is VK_FALSE, then DenormPreserve for 32-bit floating-point type must not be used" + "text": "If shaderDenormPreserveFloat32 is VK_FALSE, then DenormPreserve for 32-bit floating-point type must not be used", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-shaderDenormPreserveFloat64-06298", - "text": " If shaderDenormPreserveFloat64 is VK_FALSE, then DenormPreserve for 64-bit floating-point type must not be used" + "text": "If shaderDenormPreserveFloat64 is VK_FALSE, then DenormPreserve for 64-bit floating-point type must not be used", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-shaderDenormFlushToZeroFloat16-06299", - "text": " If shaderDenormFlushToZeroFloat16 is VK_FALSE, then DenormFlushToZero for 16-bit floating-point type must not be used" + "text": "If shaderDenormFlushToZeroFloat16 is VK_FALSE, then DenormFlushToZero for 16-bit floating-point type must not be used", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-shaderDenormFlushToZeroFloat32-06300", - "text": " If shaderDenormFlushToZeroFloat32 is VK_FALSE, then DenormFlushToZero for 32-bit floating-point type must not be used" + "text": "If shaderDenormFlushToZeroFloat32 is VK_FALSE, then DenormFlushToZero for 32-bit floating-point type must not be used", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-shaderDenormFlushToZeroFloat64-06301", - "text": " If shaderDenormFlushToZeroFloat64 is VK_FALSE, then DenormFlushToZero for 64-bit floating-point type must not be used" + "text": "If shaderDenormFlushToZeroFloat64 is VK_FALSE, then DenormFlushToZero for 64-bit floating-point type must not be used", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-shaderRoundingModeRTEFloat16-06302", - "text": " If shaderRoundingModeRTEFloat16 is VK_FALSE, then RoundingModeRTE for 16-bit floating-point type must not be used" + "text": "If shaderRoundingModeRTEFloat16 is VK_FALSE, then RoundingModeRTE for 16-bit floating-point type must not be used", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-shaderRoundingModeRTEFloat32-06303", - "text": " If shaderRoundingModeRTEFloat32 is VK_FALSE, then RoundingModeRTE for 32-bit floating-point type must not be used" + "text": "If shaderRoundingModeRTEFloat32 is VK_FALSE, then RoundingModeRTE for 32-bit floating-point type must not be used", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-shaderRoundingModeRTEFloat64-06304", - "text": " If shaderRoundingModeRTEFloat64 is VK_FALSE, then RoundingModeRTE for 64-bit floating-point type must not be used" + "text": "If shaderRoundingModeRTEFloat64 is VK_FALSE, then RoundingModeRTE for 64-bit floating-point type must not be used", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-shaderRoundingModeRTZFloat16-06305", - "text": " If shaderRoundingModeRTZFloat16 is VK_FALSE, then RoundingModeRTZ for 16-bit floating-point type must not be used" + "text": "If shaderRoundingModeRTZFloat16 is VK_FALSE, then RoundingModeRTZ for 16-bit floating-point type must not be used", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-shaderRoundingModeRTZFloat32-06306", - "text": " If shaderRoundingModeRTZFloat32 is VK_FALSE, then RoundingModeRTZ for 32-bit floating-point type must not be used" + "text": "If shaderRoundingModeRTZFloat32 is VK_FALSE, then RoundingModeRTZ for 32-bit floating-point type must not be used", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-shaderRoundingModeRTZFloat64-06307", - "text": " If shaderRoundingModeRTZFloat64 is VK_FALSE, then RoundingModeRTZ for 64-bit floating-point type must not be used" + "text": "If shaderRoundingModeRTZFloat64 is VK_FALSE, then RoundingModeRTZ for 64-bit floating-point type must not be used", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-Offset-06308", - "text": " The Offset plus size of the type of each variable, in the output interface of the entry point being compiled, decorated with XfbBuffer must not be greater than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBufferDataSize" + "text": "The Offset plus size of the type of each variable, in the output interface of the entry point being compiled, decorated with XfbBuffer must not be greater than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBufferDataSize", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-XfbBuffer-06309", - "text": " For any given XfbBuffer value, define the buffer data size to be smallest number of bytes such that, for all outputs decorated with the same XfbBuffer value, the size of the output interface variable plus the Offset is less than or equal to the buffer data size. For a given Stream, the sum of all the buffer data sizes for all buffers writing to that stream the must not exceed VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackStreamDataSize" + "text": "For any given XfbBuffer value, define the buffer data size to be smallest number of bytes such that, for all outputs decorated with the same XfbBuffer value, the size of the output interface variable plus the Offset is less than or equal to the buffer data size. For a given Stream, the sum of all the buffer data sizes for all buffers writing to that stream the must not exceed VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackStreamDataSize", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpEmitStreamVertex-06310", - "text": " The Stream value to OpEmitStreamVertex and OpEndStreamPrimitive must be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackStreams" + "text": "The Stream value to OpEmitStreamVertex and OpEndStreamPrimitive must be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackStreams", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-transformFeedbackStreamsLinesTriangles-06311", - "text": " If the geometry shader emits to more than one vertex stream and VkPhysicalDeviceTransformFeedbackPropertiesEXT::transformFeedbackStreamsLinesTriangles is VK_FALSE, then {ExecutionMode} must be OutputPoints" + "text": "If the geometry shader emits to more than one vertex stream and VkPhysicalDeviceTransformFeedbackPropertiesEXT::transformFeedbackStreamsLinesTriangles is VK_FALSE, then Execution Mode must be OutputPoints", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-Stream-06312", - "text": " The stream number value to Stream must be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackStreams" + "text": "The stream number value to Stream must be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackStreams", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-XfbStride-06313", - "text": " The XFB Stride value to XfbStride must be less than or equal to VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBufferDataStride" + "text": "The XFB Stride value to XfbStride must be less than or equal to VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBufferDataStride", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-PhysicalStorageBuffer64-06314", - "text": " If the PhysicalStorageBuffer64 addressing model is enabled any load or store through a physical pointer type must be aligned to a multiple of the size of the largest scalar type in the pointed-to type" + "text": "If the PhysicalStorageBuffer64 addressing model is enabled any load or store through a physical pointer type must be aligned to a multiple of the size of the largest scalar type in the pointed-to type", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-PhysicalStorageBuffer64-06315", - "text": " If the PhysicalStorageBuffer64 addressing model is enabled the pointer value of a memory access instruction must be at least as aligned as specified by the Aligned memory access operand" + "text": "If the PhysicalStorageBuffer64 addressing model is enabled the pointer value of a memory access instruction must be at least as aligned as specified by the Aligned memory access operand", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpTypeCooperativeMatrixNV-06316", - "text": " For OpTypeCooperativeMatrixNV, the component type, scope, number of rows, and number of columns must match one of the matrices in any of the supported VkCooperativeMatrixPropertiesNV" + "text": "For OpTypeCooperativeMatrixNV, the component type, scope, number of rows, and number of columns must match one of the matrices in any of the supported VkCooperativeMatrixPropertiesNV", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpCooperativeMatrixMulAddNV-06317", - "text": " For OpCooperativeMatrixMulAddNV, the type of A must have VkCooperativeMatrixPropertiesNV::MSize rows and VkCooperativeMatrixPropertiesNV::KSize columns and have a component type that matches VkCooperativeMatrixPropertiesNV::AType" + "text": "For OpCooperativeMatrixMulAddNV, the type of A must have VkCooperativeMatrixPropertiesNV::MSize rows and VkCooperativeMatrixPropertiesNV::KSize columns and have a component type that matches VkCooperativeMatrixPropertiesNV::AType", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpCooperativeMatrixMulAddNV-06318", - "text": " For OpCooperativeMatrixMulAddNV, the type of B must have VkCooperativeMatrixPropertiesNV::KSize rows and VkCooperativeMatrixPropertiesNV::NSize columns and have a component type that matches VkCooperativeMatrixPropertiesNV::BType" + "text": "For OpCooperativeMatrixMulAddNV, the type of B must have VkCooperativeMatrixPropertiesNV::KSize rows and VkCooperativeMatrixPropertiesNV::NSize columns and have a component type that matches VkCooperativeMatrixPropertiesNV::BType", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpCooperativeMatrixMulAddNV-06319", - "text": " For OpCooperativeMatrixMulAddNV, the type of C must have VkCooperativeMatrixPropertiesNV::MSize rows and VkCooperativeMatrixPropertiesNV::NSize columns and have a component type that matches VkCooperativeMatrixPropertiesNV::CType" + "text": "For OpCooperativeMatrixMulAddNV, the type of C must have VkCooperativeMatrixPropertiesNV::MSize rows and VkCooperativeMatrixPropertiesNV::NSize columns and have a component type that matches VkCooperativeMatrixPropertiesNV::CType", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpCooperativeMatrixMulAddNV-06320", - "text": " For OpCooperativeMatrixMulAddNV, the type of Result must have VkCooperativeMatrixPropertiesNV::MSize rows and VkCooperativeMatrixPropertiesNV::NSize columns and have a component type that matches VkCooperativeMatrixPropertiesNV::DType" + "text": "For OpCooperativeMatrixMulAddNV, the type of Result must have VkCooperativeMatrixPropertiesNV::MSize rows and VkCooperativeMatrixPropertiesNV::NSize columns and have a component type that matches VkCooperativeMatrixPropertiesNV::DType", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpCooperativeMatrixMulAddNV-06321", - "text": " For OpCooperativeMatrixMulAddNV, the type of A, B, C, and Result must all have a scope of scope" + "text": "For OpCooperativeMatrixMulAddNV, the type of A, B, C, and Result must all have a scope of scope", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpTypeCooperativeMatrixNV-06322", - "text": " OpTypeCooperativeMatrixNV and OpCooperativeMatrix* instructions must not be used in shader stages not included in VkPhysicalDeviceCooperativeMatrixPropertiesNV::cooperativeMatrixSupportedStages" + "text": "OpTypeCooperativeMatrixNV and OpCooperativeMatrix* instructions must not be used in shader stages not included in VkPhysicalDeviceCooperativeMatrixPropertiesNV::cooperativeMatrixSupportedStages", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpTypeCooperativeMatrixKHR-08974", - "text": " For OpTypeCooperativeMatrixKHR, the component type, scope, number of rows, and number of columns must match one of the matrices in any of the supported VkCooperativeMatrixPropertiesKHR." + "text": "For OpTypeCooperativeMatrixKHR, the component type, scope, number of rows, and number of columns must match one of the matrices in any of the supported VkCooperativeMatrixPropertiesKHR.", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-MSize-08975", - "text": " For OpCooperativeMatrixMulAddKHR, the type of A must have VkCooperativeMatrixPropertiesKHR::MSize rows and VkCooperativeMatrixPropertiesKHR::KSize columns and have a component type that matches VkCooperativeMatrixPropertiesKHR::AType." + "text": "For OpCooperativeMatrixMulAddKHR, the type of A must have VkCooperativeMatrixPropertiesKHR::MSize rows and VkCooperativeMatrixPropertiesKHR::KSize columns and have a component type that matches VkCooperativeMatrixPropertiesKHR::AType.", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpCooperativeMatrixMulAddKHR-08976", - "text": " For OpCooperativeMatrixMulAddKHR, when the component type of A is a signed integer type, the MatrixASignedComponents cooperative matrix operand must be present." + "text": "For OpCooperativeMatrixMulAddKHR, when the component type of A is a signed integer type, the MatrixASignedComponents cooperative matrix operand must be present.", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-KSize-08977", - "text": " For OpCooperativeMatrixMulAddKHR, the type of B must have VkCooperativeMatrixPropertiesKHR::KSize rows and VkCooperativeMatrixPropertiesKHR::NSize columns and have a component type that matches VkCooperativeMatrixPropertiesKHR::BType." + "text": "For OpCooperativeMatrixMulAddKHR, the type of B must have VkCooperativeMatrixPropertiesKHR::KSize rows and VkCooperativeMatrixPropertiesKHR::NSize columns and have a component type that matches VkCooperativeMatrixPropertiesKHR::BType.", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpCooperativeMatrixMulAddKHR-08978", - "text": " For OpCooperativeMatrixMulAddKHR, when the component type of B is a signed integer type, the MatrixBSignedComponents cooperative matrix operand must be present." + "text": "For OpCooperativeMatrixMulAddKHR, when the component type of B is a signed integer type, the MatrixBSignedComponents cooperative matrix operand must be present.", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-MSize-08979", - "text": " For OpCooperativeMatrixMulAddKHR, the type of C must have VkCooperativeMatrixPropertiesKHR::MSize rows and VkCooperativeMatrixPropertiesKHR::NSize columns and have a component type that matches VkCooperativeMatrixPropertiesKHR::CType." + "text": "For OpCooperativeMatrixMulAddKHR, the type of C must have VkCooperativeMatrixPropertiesKHR::MSize rows and VkCooperativeMatrixPropertiesKHR::NSize columns and have a component type that matches VkCooperativeMatrixPropertiesKHR::CType.", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpCooperativeMatrixMulAddKHR-08980", - "text": " For OpCooperativeMatrixMulAddKHR, when the component type of C is a signed integer type, the MatrixCSignedComponents cooperative matrix operand must be present." + "text": "For OpCooperativeMatrixMulAddKHR, when the component type of C is a signed integer type, the MatrixCSignedComponents cooperative matrix operand must be present.", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-MSize-08981", - "text": " For OpCooperativeMatrixMulAddKHR, the type of Result must have VkCooperativeMatrixPropertiesKHR::MSize rows and VkCooperativeMatrixPropertiesKHR::NSize columns and have a component type that matches VkCooperativeMatrixPropertiesKHR::ResultType." + "text": "For OpCooperativeMatrixMulAddKHR, the type of Result must have VkCooperativeMatrixPropertiesKHR::MSize rows and VkCooperativeMatrixPropertiesKHR::NSize columns and have a component type that matches VkCooperativeMatrixPropertiesKHR::ResultType.", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpCooperativeMatrixMulAddKHR-08982", - "text": " For OpCooperativeMatrixMulAddKHR, when the component type of Result is a signed integer type, the MatrixResultSignedComponents cooperative matrix operand must be present." + "text": "For OpCooperativeMatrixMulAddKHR, when the component type of Result is a signed integer type, the MatrixResultSignedComponents cooperative matrix operand must be present.", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-saturatingAccumulation-08983", - "text": " For OpCooperativeMatrixMulAddKHR, the SaturatingAccumulation cooperative matrix operand must be present if and only if VkCooperativeMatrixPropertiesKHR::saturatingAccumulation is VK_TRUE." + "text": "For OpCooperativeMatrixMulAddKHR, the SaturatingAccumulation cooperative matrix operand must be present if and only if VkCooperativeMatrixPropertiesKHR::saturatingAccumulation is VK_TRUE.", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-scope-08984", - "text": " For OpCooperativeMatrixMulAddKHR, the type of A, B, C, and Result must all have a scope of scope." + "text": "For OpCooperativeMatrixMulAddKHR, the type of A, B, C, and Result must all have a scope of scope.", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-cooperativeMatrixSupportedStages-08985", - "text": " OpTypeCooperativeMatrixKHR and OpCooperativeMatrix* instructions must not be used in shader stages not included in VkPhysicalDeviceCooperativeMatrixPropertiesKHR::cooperativeMatrixSupportedStages." + "text": "OpTypeCooperativeMatrixKHR and OpCooperativeMatrix* instructions must not be used in shader stages not included in VkPhysicalDeviceCooperativeMatrixPropertiesKHR::cooperativeMatrixSupportedStages.", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-DescriptorSet-06323", - "text": " DescriptorSet and Binding decorations must obey the constraints on {StorageClass}, type, and descriptor type described in DescriptorSet and Binding Assignment" + "text": "DescriptorSet and Binding decorations must obey the constraints on Storage Class, type, and descriptor type described in DescriptorSet and Binding Assignment", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpCooperativeMatrixLoadNV-06324", - "text": " For OpCooperativeMatrixLoadNV and OpCooperativeMatrixStoreNV instructions, the Pointer and Stride operands must be aligned to at least the lesser of 16 bytes or the natural alignment of a row or column (depending on ColumnMajor) of the matrix (where the natural alignment is the number of columns/rows multiplied by the component size)" + "text": "For OpCooperativeMatrixLoadNV and OpCooperativeMatrixStoreNV instructions, the Pointer and Stride operands must be aligned to at least the lesser of 16 bytes or the natural alignment of a row or column (depending on ColumnMajor) of the matrix (where the natural alignment is the number of columns/rows multiplied by the component size)", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-MeshNV-07113", - "text": " For mesh shaders using the MeshNV {ExecutionModel} the OutputVertices OpExecutionMode must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesNV::maxMeshOutputVertices" + "text": "For mesh shaders using the MeshNV Execution Model the OutputVertices OpExecutionMode must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesNV::maxMeshOutputVertices", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-MeshNV-07114", - "text": " For mesh shaders using the MeshNV {ExecutionModel} the OutputPrimitivesNV OpExecutionMode must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesNV::maxMeshOutputPrimitives" + "text": "For mesh shaders using the MeshNV Execution Model the OutputPrimitivesNV OpExecutionMode must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesNV::maxMeshOutputPrimitives", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-MeshEXT-07115", - "text": " For mesh shaders using the MeshEXT {ExecutionModel} the OutputVertices OpExecutionMode must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshOutputVertices" + "text": "For mesh shaders using the MeshEXT Execution Model the OutputVertices OpExecutionMode must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshOutputVertices", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-MeshEXT-07332", - "text": " For mesh shaders using the MeshEXT {ExecutionModel} the “Vertex Count” operand of OpSetMeshOutputsEXT must be less than or equal to OutputVertices OpExecutionMode" + "text": "For mesh shaders using the MeshEXT Execution Model the “Vertex Count” operand of OpSetMeshOutputsEXT must be less than or equal to OutputVertices OpExecutionMode", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-MeshEXT-07116", - "text": " For mesh shaders using the MeshEXT {ExecutionModel} the OutputPrimitivesEXT OpExecutionMode must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshOutputPrimitives" + "text": "For mesh shaders using the MeshEXT Execution Model the OutputPrimitivesEXT OpExecutionMode must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshOutputPrimitives", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-MeshEXT-07333", - "text": " For mesh shaders using the MeshEXT {ExecutionModel} the “Primitive Count” operand of OpSetMeshOutputsEXT must be less than or equal to OutputPrimitivesEXT OpExecutionMode" + "text": "For mesh shaders using the MeshEXT Execution Model the “Primitive Count” operand of OpSetMeshOutputsEXT must be less than or equal to OutputPrimitivesEXT OpExecutionMode", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-TaskEXT-07117", - "text": " In task shaders using the TaskEXT {ExecutionModel} OpEmitMeshTasksEXT must be called exactly once under dynamically uniform conditions" + "text": "In task shaders using the TaskEXT Execution Model OpEmitMeshTasksEXT must be called exactly once under dynamically uniform conditions", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-MeshEXT-07118", - "text": " In mesh shaders using the MeshEXT {ExecutionModel} OpSetMeshOutputsEXT must be called at most once under dynamically uniform conditions" + "text": "In mesh shaders using the MeshEXT Execution Model OpSetMeshOutputsEXT must be called at most once under dynamically uniform conditions", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-TaskEXT-07291", - "text": " In task shaders using the TaskEXT {ExecutionModel} the x size in LocalSize or LocalSizeId must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskWorkGroupSize[0]" + "text": "In task shaders using the TaskEXT Execution Model the x size in LocalSize or LocalSizeId must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskWorkGroupSize[0]", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-TaskEXT-07292", - "text": " In task shaders using the TaskEXT {ExecutionModel} the y size in LocalSize or LocalSizeId must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskWorkGroupSize[1]" + "text": "In task shaders using the TaskEXT Execution Model the y size in LocalSize or LocalSizeId must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskWorkGroupSize[1]", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-TaskEXT-07293", - "text": " In task shaders using the TaskEXT {ExecutionModel} the z size in LocalSize or LocalSizeId must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskWorkGroupSize[2]" + "text": "In task shaders using the TaskEXT Execution Model the z size in LocalSize or LocalSizeId must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskWorkGroupSize[2]", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-TaskEXT-07294", - "text": " In task shaders using the TaskEXT {ExecutionModel} the product of x size, y size, and z size in LocalSize or LocalSizeId must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskWorkGroupInvocations" + "text": "In task shaders using the TaskEXT Execution Model the product of x size, y size, and z size in LocalSize or LocalSizeId must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskWorkGroupInvocations", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-MeshEXT-07295", - "text": " For mesh shaders using the MeshEXT {ExecutionModel} the x size in LocalSize or LocalSizeId must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupSize[0]" + "text": "For mesh shaders using the MeshEXT Execution Model the x size in LocalSize or LocalSizeId must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupSize[0]", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-MeshEXT-07296", - "text": " For mesh shaders using the MeshEXT {ExecutionModel} the y size in LocalSize or LocalSizeId must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupSize[1]" + "text": "For mesh shaders using the MeshEXT Execution Model the y size in LocalSize or LocalSizeId must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupSize[1]", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-MeshEXT-07297", - "text": " For mesh shaders using the MeshEXT {ExecutionModel} the z size in LocalSize or LocalSizeId must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupSize[2]" + "text": "For mesh shaders using the MeshEXT Execution Model the z size in LocalSize or LocalSizeId must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupSize[2]", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-MeshEXT-07298", - "text": " For mesh shaders using the MeshEXT {ExecutionModel} the product of x size, y size, and z size in LocalSize or LocalSizeId must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupInvocations" + "text": "For mesh shaders using the MeshEXT Execution Model the product of x size, y size, and z size in LocalSize or LocalSizeId must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupInvocations", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-TaskEXT-07299", - "text": " In task shaders using the TaskEXT {ExecutionModel} the value of the “Group Count X” operand of OpEmitMeshTasksEXT must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupCount[0]" + "text": "In task shaders using the TaskEXT Execution Model the value of the “Group Count X” operand of OpEmitMeshTasksEXT must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupCount[0]", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-TaskEXT-07300", - "text": " In task shaders using the TaskEXT {ExecutionModel} the value of the “Group Count Y” operand of OpEmitMeshTasksEXT must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupCount[1]" + "text": "In task shaders using the TaskEXT Execution Model the value of the “Group Count Y” operand of OpEmitMeshTasksEXT must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupCount[1]", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-TaskEXT-07301", - "text": " In task shaders using the TaskEXT {ExecutionModel} the value of the “Group Count Z” operand of OpEmitMeshTasksEXT must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupCount[2]" + "text": "In task shaders using the TaskEXT Execution Model the value of the “Group Count Z” operand of OpEmitMeshTasksEXT must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupCount[2]", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-TaskEXT-07302", - "text": " In task shaders using the TaskEXT {ExecutionModel} the product of the “Group Count” operands of OpEmitMeshTasksEXT must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupTotalCount" + "text": "In task shaders using the TaskEXT Execution Model the product of the “Group Count” operands of OpEmitMeshTasksEXT must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupTotalCount", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-maxMeshSharedMemorySize-08754", - "text": " The sum of size in bytes for variables and padding in the Workgroup {StorageClass} in the MeshEXT {ExecutionModel} must be less than or equal to maxMeshSharedMemorySize" + "text": "The sum of size in bytes for variables and padding in the Workgroup Storage Class in the MeshEXT Execution Model must be less than or equal to maxMeshSharedMemorySize", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-maxMeshPayloadAndSharedMemorySize-08755", - "text": " The sum of size in bytes for variables and padding in the TaskPayloadWorkgroupEXT or Workgroup {StorageClass} in the MeshEXT {ExecutionModel} must be less than or equal to maxMeshPayloadAndSharedMemorySize" + "text": "The sum of size in bytes for variables and padding in the TaskPayloadWorkgroupEXT or Workgroup Storage Class in the MeshEXT Execution Model must be less than or equal to maxMeshPayloadAndSharedMemorySize", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-maxMeshOutputMemorySize-08756", - "text": " The sum of size in bytes for variables in the Output {StorageClass} in the MeshEXT {ExecutionModel} must be less than or equal to maxMeshOutputMemorySize according to the formula in Mesh Shader Output" + "text": "The sum of size in bytes for variables in the Output Storage Class in the MeshEXT Execution Model must be less than or equal to maxMeshOutputMemorySize according to the formula in Mesh Shader Output", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-maxMeshPayloadAndOutputMemorySize-08757", - "text": " The sum of size in bytes for variables and in the TaskPayloadWorkgroupEXT or Output {StorageClass} in the MeshEXT {ExecutionModel} must be less than or equal to maxMeshPayloadAndOutputMemorySize according to the formula in Mesh Shader Output" + "text": "The sum of size in bytes for variables and in the TaskPayloadWorkgroupEXT or Output Storage Class in the MeshEXT Execution Model must be less than or equal to maxMeshPayloadAndOutputMemorySize according to the formula in Mesh Shader Output", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-maxTaskPayloadSize-08758", - "text": " The sum of size in bytes for variables and in the TaskPayloadWorkgroupEXT {StorageClass} in the TaskEXT {ExecutionModel} must be less than or equal to maxTaskPayloadSize" + "text": "The sum of size in bytes for variables and in the TaskPayloadWorkgroupEXT Storage Class in the TaskEXT Execution Model must be less than or equal to maxTaskPayloadSize", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-maxTaskSharedMemorySize-08759", - "text": " The sum of size in bytes for variables and padding in the Workgroup {StorageClass} in the TaskEXT {ExecutionModel} must be less than or equal to maxTaskSharedMemorySize" + "text": "The sum of size in bytes for variables and padding in the Workgroup Storage Class in the TaskEXT Execution Model must be less than or equal to maxTaskSharedMemorySize", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-maxTaskPayloadAndSharedMemorySize-08760", - "text": " The sum of size in bytes for variables and padding in the TaskPayloadWorkgroupEXT or Workgroup {StorageClass} in the TaskEXT {ExecutionModel} must be less than or equal to maxTaskPayloadAndSharedMemorySize" + "text": "The sum of size in bytes for variables and padding in the TaskPayloadWorkgroupEXT or Workgroup Storage Class in the TaskEXT Execution Model must be less than or equal to maxTaskPayloadAndSharedMemorySize", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpCooperativeMatrixLoadKHR-08986", - "text": " For OpCooperativeMatrixLoadKHR and OpCooperativeMatrixStoreKHR instructions, the Pointer and Stride operands must be aligned to at least the lesser of 16 bytes or the natural alignment of a row or column (depending on ColumnMajor) of the matrix (where the natural alignment is the number of columns/rows multiplied by the component size)." + "text": "For OpCooperativeMatrixLoadKHR and OpCooperativeMatrixStoreKHR instructions, the Pointer and Stride operands must be aligned to at least the lesser of 16 bytes or the natural alignment of a row or column (depending on ColumnMajor) of the matrix (where the natural alignment is the number of columns/rows multiplied by the component size).", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-shaderSampleRateInterpolationFunctions-06325", - "text": " If the VK_KHR_portability_subset extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::shaderSampleRateInterpolationFunctions is VK_FALSE, then GLSL.std.450 fragment interpolation functions are not supported by the implementation and OpCapability must not be set to InterpolationFunction" + "text": "If the VK_KHR_portability_subset extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::shaderSampleRateInterpolationFunctions is VK_FALSE, then GLSL.std.450 fragment interpolation functions are not supported by the implementation and OpCapability must not be set to InterpolationFunction", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-tessellationShader-06326", - "text": " If tessellationShader is enabled, and the VK_KHR_portability_subset extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::tessellationIsolines is VK_FALSE, then OpExecutionMode must not be set to IsoLines" + "text": "If tessellationShader is enabled, and the VK_KHR_portability_subset extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::tessellationIsolines is VK_FALSE, then OpExecutionMode must not be set to IsoLines", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-tessellationShader-06327", - "text": " If tessellationShader is enabled, and the VK_KHR_portability_subset extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::tessellationPointMode is VK_FALSE, then OpExecutionMode must not be set to PointMode" + "text": "If tessellationShader is enabled, and the VK_KHR_portability_subset extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::tessellationPointMode is VK_FALSE, then OpExecutionMode must not be set to PointMode", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-storageBuffer8BitAccess-06328", - "text": " If storageBuffer8BitAccess is VK_FALSE, then objects containing an 8-bit integer element must not have {StorageClass} of StorageBuffer, ShaderRecordBufferKHR, or PhysicalStorageBuffer" + "text": "If storageBuffer8BitAccess is VK_FALSE, then objects containing an 8-bit integer element must not have Storage Class of StorageBuffer, ShaderRecordBufferKHR, or PhysicalStorageBuffer", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-uniformAndStorageBuffer8BitAccess-06329", - "text": " If uniformAndStorageBuffer8BitAccess is VK_FALSE, then objects in the Uniform {StorageClass} with the Block decoration must not have an 8-bit integer member" + "text": "If uniformAndStorageBuffer8BitAccess is VK_FALSE, then objects in the Uniform Storage Class with the Block decoration must not have an 8-bit integer member", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-storagePushConstant8-06330", - "text": " If storagePushConstant8 is VK_FALSE, then objects containing an 8-bit integer element must not have {StorageClass} of PushConstant" + "text": "If storagePushConstant8 is VK_FALSE, then objects containing an 8-bit integer element must not have Storage Class of PushConstant", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-storageBuffer16BitAccess-06331", - "text": " If storageBuffer16BitAccess is VK_FALSE, then objects containing 16-bit integer or 16-bit floating-point elements must not have {StorageClass} of StorageBuffer, ShaderRecordBufferKHR, or PhysicalStorageBuffer" + "text": "If storageBuffer16BitAccess is VK_FALSE, then objects containing 16-bit integer or 16-bit floating-point elements must not have Storage Class of StorageBuffer, ShaderRecordBufferKHR, or PhysicalStorageBuffer", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-uniformAndStorageBuffer16BitAccess-06332", - "text": " If uniformAndStorageBuffer16BitAccess is VK_FALSE, then objects in the Uniform {StorageClass} with the Block decoration must not have 16-bit integer or 16-bit floating-point members" + "text": "If uniformAndStorageBuffer16BitAccess is VK_FALSE, then objects in the Uniform Storage Class with the Block decoration must not have 16-bit integer or 16-bit floating-point members", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-storagePushConstant16-06333", - "text": " If storagePushConstant16 is VK_FALSE, then objects containing 16-bit integer or 16-bit floating-point elements must not have {StorageClass} of PushConstant" + "text": "If storagePushConstant16 is VK_FALSE, then objects containing 16-bit integer or 16-bit floating-point elements must not have Storage Class of PushConstant", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-storageInputOutput16-06334", - "text": " If storageInputOutput16 is VK_FALSE, then objects containing 16-bit integer or 16-bit floating-point elements must not have {StorageClass} of Input or Output" + "text": "If storageInputOutput16 is VK_FALSE, then objects containing 16-bit integer or 16-bit floating-point elements must not have Storage Class of Input or Output", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-None-06337", - "text": " shaderBufferFloat16Atomics, or shaderBufferFloat16AtomicAdd, or shaderBufferFloat16AtomicMinMax, or shaderSharedFloat16Atomics, or shaderSharedFloat16AtomicAdd, or shaderSharedFloat16AtomicMinMax must be enabled for 16-bit floating point atomic operations" + "text": "shaderBufferFloat16Atomics, or shaderBufferFloat16AtomicAdd, or shaderBufferFloat16AtomicMinMax, or shaderSharedFloat16Atomics, or shaderSharedFloat16AtomicAdd, or shaderSharedFloat16AtomicMinMax must be enabled for 16-bit floating point atomic operations", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-None-06338", - "text": " shaderBufferFloat32Atomics, or shaderBufferFloat32AtomicAdd, or shaderSharedFloat32Atomics, or shaderSharedFloat32AtomicAdd, or shaderImageFloat32Atomics, or shaderImageFloat32AtomicAdd or shaderBufferFloat32AtomicMinMax, or shaderSharedFloat32AtomicMinMax, or shaderImageFloat32AtomicMinMax must be enabled for 32-bit floating point atomic operations" + "text": "shaderBufferFloat32Atomics, or shaderBufferFloat32AtomicAdd, or shaderSharedFloat32Atomics, or shaderSharedFloat32AtomicAdd, or shaderImageFloat32Atomics, or shaderImageFloat32AtomicAdd or shaderBufferFloat32AtomicMinMax, or shaderSharedFloat32AtomicMinMax, or shaderImageFloat32AtomicMinMax must be enabled for 32-bit floating point atomic operations", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-None-06339", - "text": " shaderBufferFloat64Atomics, or shaderBufferFloat64AtomicAdd, or shaderSharedFloat64Atomics, or shaderSharedFloat64AtomicAdd, or shaderBufferFloat64AtomicMinMax, or shaderSharedFloat64AtomicMinMax, must be enabled for 64-bit floating point atomic operations" + "text": "shaderBufferFloat64Atomics, or shaderBufferFloat64AtomicAdd, or shaderSharedFloat64Atomics, or shaderSharedFloat64AtomicAdd, or shaderBufferFloat64AtomicMinMax, or shaderSharedFloat64AtomicMinMax, must be enabled for 64-bit floating point atomic operations", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-NonWritable-06340", - "text": " If fragmentStoresAndAtomics is not enabled, then all storage image, storage texel buffer, and storage buffer variables in the fragment stage must be decorated with the NonWritable decoration" + "text": "If fragmentStoresAndAtomics is not enabled, then all storage image, storage texel buffer, and storage buffer variables in the fragment stage must be decorated with the NonWritable decoration", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-NonWritable-06341", - "text": " If vertexPipelineStoresAndAtomics is not enabled, then all storage image, storage texel buffer, and storage buffer variables in the vertex, tessellation, and geometry stages must be decorated with the NonWritable decoration" + "text": "If vertexPipelineStoresAndAtomics is not enabled, then all storage image, storage texel buffer, and storage buffer variables in the vertex, tessellation, and geometry stages must be decorated with the NonWritable decoration", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-None-06342", - "text": " If subgroupQuadOperationsInAllStages is VK_FALSE, then quad subgroup operations must not be used except for in fragment and compute stages" + "text": "If subgroupQuadOperationsInAllStages is VK_FALSE, then quad subgroup operations must not be used except for in fragment and compute stages", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-None-06343", - "text": " Group operations with subgroup scope must not be used if the shader stage is not in subgroupSupportedStages" + "text": "Group operations with subgroup scope must not be used if the shader stage is not in subgroupSupportedStages", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-Offset-06344", - "text": " The first element of the Offset operand of InterpolateAtOffset must be greater than or equal to:
fragwidth {times} minInterpolationOffset
where fragwidth is the width of the current fragment in pixels" + "text": "The first element of the Offset operand of InterpolateAtOffset must be greater than or equal to:
fragwidth × minInterpolationOffset
where fragwidth is the width of the current fragment in pixels", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-Offset-06345", - "text": " The first element of the Offset operand of InterpolateAtOffset must be less than or equal to
fragwidth {times} (maxInterpolationOffset + ULP ) - ULP
where fragwidth is the width of the current fragment in pixels and ULP = 1 / 2^subPixelInterpolationOffsetBits^" + "text": "The first element of the Offset operand of InterpolateAtOffset must be less than or equal to
fragwidth × (maxInterpolationOffset + ULP ) - ULP
where fragwidth is the width of the current fragment in pixels and ULP = 1 / 2^subPixelInterpolationOffsetBits^", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-Offset-06346", - "text": " The second element of the Offset operand of InterpolateAtOffset must be greater than or equal to
fragheight {times} minInterpolationOffset
where fragheight is the height of the current fragment in pixels" + "text": "The second element of the Offset operand of InterpolateAtOffset must be greater than or equal to
fragheight × minInterpolationOffset
where fragheight is the height of the current fragment in pixels", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-Offset-06347", - "text": " The second element of the Offset operand of InterpolateAtOffset must be less than or equal to
fragheight {times} (maxInterpolationOffset + ULP ) - ULP
where fragheight is the height of the current fragment in pixels and ULP = 1 / 2^subPixelInterpolationOffsetBits^." + "text": "The second element of the Offset operand of InterpolateAtOffset must be less than or equal to
fragheight × (maxInterpolationOffset + ULP ) - ULP
where fragheight is the height of the current fragment in pixels and ULP = 1 / 2^subPixelInterpolationOffsetBits^.", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpRayQueryInitializeKHR-06348", - "text": " For OpRayQueryInitializeKHR instructions, all components of the RayOrigin and RayDirection operands must be finite floating-point values" + "text": "For OpRayQueryInitializeKHR instructions, all components of the RayOrigin and RayDirection operands must be finite floating-point values", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpRayQueryInitializeKHR-06349", - "text": " For OpRayQueryInitializeKHR instructions, the RayTmin and RayTmax operands must be non-negative floating-point values" + "text": "For OpRayQueryInitializeKHR instructions, the RayTmin and RayTmax operands must be non-negative floating-point values", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpRayQueryInitializeKHR-06350", - "text": " For OpRayQueryInitializeKHR instructions, the RayTmin operand must be less than or equal to the RayTmax operand" + "text": "For OpRayQueryInitializeKHR instructions, the RayTmin operand must be less than or equal to the RayTmax operand", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpRayQueryInitializeKHR-06351", - "text": " For OpRayQueryInitializeKHR instructions, RayOrigin, RayDirection, RayTmin, and RayTmax operands must not contain NaNs" + "text": "For OpRayQueryInitializeKHR instructions, RayOrigin, RayDirection, RayTmin, and RayTmax operands must not contain NaNs", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpRayQueryInitializeKHR-06352", - "text": " For OpRayQueryInitializeKHR instructions, Acceleration Structure must be an acceleration structure built as a top-level acceleration structure" + "text": "For OpRayQueryInitializeKHR instructions, Acceleration Structure must be an acceleration structure built as a top-level acceleration structure", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpRayQueryInitializeKHR-06889", - "text": " For OpRayQueryInitializeKHR instructions, the Rayflags operand must not contain both SkipTrianglesKHR and SkipAABBsKHR" + "text": "For OpRayQueryInitializeKHR instructions, the Rayflags operand must not contain both SkipTrianglesKHR and SkipAABBsKHR", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpRayQueryInitializeKHR-06890", - "text": " For OpRayQueryInitializeKHR instructions, the Rayflags operand must not contain more than one of SkipTrianglesKHR, CullBackFacingTrianglesKHR, and CullFrontFacingTrianglesKHR" + "text": "For OpRayQueryInitializeKHR instructions, the Rayflags operand must not contain more than one of SkipTrianglesKHR, CullBackFacingTrianglesKHR, and CullFrontFacingTrianglesKHR", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpRayQueryInitializeKHR-06891", - "text": " For OpRayQueryInitializeKHR instructions, the Rayflags operand must not contain more than one of OpaqueKHR, NoOpaqueKHR, CullOpaqueKHR, and CullNoOpaqueKHR" + "text": "For OpRayQueryInitializeKHR instructions, the Rayflags operand must not contain more than one of OpaqueKHR, NoOpaqueKHR, CullOpaqueKHR, and CullNoOpaqueKHR", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpRayQueryGenerateIntersectionKHR-06353", - "text": " For OpRayQueryGenerateIntersectionKHR instructions, Hit T must satisfy the condition RayTmin {leq} Hit T {leq} RayTmax, where RayTmin is equal to the value returned by OpRayQueryGetRayTMinKHR with the same ray query object, and RayTmax is equal to the value of OpRayQueryGetIntersectionTKHR for the current committed intersection with the same ray query object" + "text": "For OpRayQueryGenerateIntersectionKHR instructions, Hit T must satisfy the condition RayTmin ≤ Hit T ≤ RayTmax, where RayTmin is equal to the value returned by OpRayQueryGetRayTMinKHR with the same ray query object, and RayTmax is equal to the value of OpRayQueryGetIntersectionTKHR for the current committed intersection with the same ray query object", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpRayQueryGenerateIntersectionKHR-06354", - "text": " For OpRayQueryGenerateIntersectionKHR instructions, Acceleration Structure must not be built with VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV in flags" + "text": "For OpRayQueryGenerateIntersectionKHR instructions, Acceleration Structure must not be built with VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV in flags", + "page": "vkspec" }, { "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_KHR in flags", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpTraceRayKHR-06355", - "text": " For OpTraceRayKHR instructions, all components of the RayOrigin and RayDirection operands must be finite floating-point values" + "text": "For OpTraceRayKHR instructions, all components of the RayOrigin and RayDirection operands must be finite floating-point values", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpTraceRayKHR-06356", - "text": " For OpTraceRayKHR instructions, the RayTmin and RayTmax operands must be non-negative floating-point values" + "text": "For OpTraceRayKHR instructions, the RayTmin and RayTmax operands must be non-negative floating-point values", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpTraceRayKHR-06552", - "text": " For OpTraceRayKHR instructions, the Rayflags operand must not contain both SkipTrianglesKHR and SkipAABBsKHR" + "text": "For OpTraceRayKHR instructions, the Rayflags operand must not contain both SkipTrianglesKHR and SkipAABBsKHR", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpTraceRayKHR-06892", - "text": " For OpTraceRayKHR instructions, the Rayflags operand must not contain more than one of SkipTrianglesKHR, CullBackFacingTrianglesKHR, and CullFrontFacingTrianglesKHR" + "text": "For OpTraceRayKHR instructions, the Rayflags operand must not contain more than one of SkipTrianglesKHR, CullBackFacingTrianglesKHR, and CullFrontFacingTrianglesKHR", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpTraceRayKHR-06893", - "text": " For OpTraceRayKHR instructions, the Rayflags operand must not contain more than one of OpaqueKHR, NoOpaqueKHR, CullOpaqueKHR, and CullNoOpaqueKHR" + "text": "For OpTraceRayKHR instructions, the Rayflags operand must not contain more than one of OpaqueKHR, NoOpaqueKHR, CullOpaqueKHR, and CullNoOpaqueKHR", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpTraceRayKHR-06553", - "text": " For OpTraceRayKHR instructions, if the Rayflags operand contains SkipTrianglesKHR, the pipeline must not have been created with VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR set" + "text": "For OpTraceRayKHR instructions, if the Rayflags operand contains SkipTrianglesKHR, the pipeline must not have been created with VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR set", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpTraceRayKHR-06554", - "text": " For OpTraceRayKHR instructions, if the Rayflags operand contains SkipAABBsKHR, the pipeline must not have been created with VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR set" + "text": "For OpTraceRayKHR instructions, if the Rayflags operand contains SkipAABBsKHR, the pipeline must not have been created with VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR set", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpTraceRayKHR-06357", - "text": " For OpTraceRayKHR instructions, the RayTmin operand must be less than or equal to the RayTmax operand" + "text": "For OpTraceRayKHR instructions, the RayTmin operand must be less than or equal to the RayTmax operand", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpTraceRayKHR-06358", - "text": " For OpTraceRayKHR instructions, RayOrigin, RayDirection, RayTmin, and RayTmax operands must not contain NaNs" + "text": "For OpTraceRayKHR instructions, RayOrigin, RayDirection, RayTmin, and RayTmax operands must not contain NaNs", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpTraceRayKHR-06359", - "text": " For OpTraceRayKHR instructions, Acceleration Structure must be an acceleration structure built as a top-level acceleration structure" + "text": "For OpTraceRayKHR instructions, Acceleration Structure must be an acceleration structure built as a top-level acceleration structure", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpReportIntersectionKHR-06998", - "text": " The value of the “Hit Kind” operand of OpReportIntersectionKHR must be in the range [0,127]" + "text": "The value of the “Hit Kind” operand of OpReportIntersectionKHR must be in the range [0,127]", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpTraceRayKHR-06360", - "text": " For OpTraceRayKHR instructions, if Acceleration Structure was built with VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV in flags, the pipeline must have been created with VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV set" + "text": "For OpTraceRayKHR instructions, if Acceleration Structure was built with VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV in flags, the pipeline must have been created with VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV set", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpTraceRayMotionNV-06361", - "text": " For OpTraceRayMotionNV instructions, all components of the RayOrigin and RayDirection operands must be finite floating-point values" + "text": "For OpTraceRayMotionNV instructions, all components of the RayOrigin and RayDirection operands must be finite floating-point values", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpTraceRayMotionNV-06362", - "text": " For OpTraceRayMotionNV instructions, the RayTmin and RayTmax operands must be non-negative floating-point values" + "text": "For OpTraceRayMotionNV instructions, the RayTmin and RayTmax operands must be non-negative floating-point values", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpTraceRayMotionNV-06363", - "text": " For OpTraceRayMotionNV instructions, the RayTmin operand must be less than or equal to the RayTmax operand" + "text": "For OpTraceRayMotionNV instructions, the RayTmin operand must be less than or equal to the RayTmax operand", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpTraceRayMotionNV-06364", - "text": " For OpTraceRayMotionNV instructions, RayOrigin, RayDirection, RayTmin, and RayTmax operands must not contain NaNs" + "text": "For OpTraceRayMotionNV instructions, RayOrigin, RayDirection, RayTmin, and RayTmax operands must not contain NaNs", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpTraceRayMotionNV-06365", - "text": " For OpTraceRayMotionNV instructions, Acceleration Structure must be an acceleration structure built as a top-level acceleration structure with VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV in flags" + "text": "For OpTraceRayMotionNV instructions, Acceleration Structure must be an acceleration structure built as a top-level acceleration structure with VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV in flags", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpTraceRayMotionNV-06366", - "text": " For OpTraceRayMotionNV instructions the time operand must be between 0.0 and 1.0" + "text": "For OpTraceRayMotionNV instructions the time operand must be between 0.0 and 1.0", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpTraceRayMotionNV-06367", - "text": " For OpTraceRayMotionNV instructions the pipeline must have been created with VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV set" + "text": "For OpTraceRayMotionNV instructions the pipeline must have been created with VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV set", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpHitObjectTraceRayMotionNV-07704", - "text": " For OpHitObjectTraceRayMotionNV instructions, if Acceleration Structure was built with VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV in flags, the pipeline must have been created with VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV set" + "text": "For OpHitObjectTraceRayMotionNV instructions, if Acceleration Structure was built with VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV in flags, the pipeline must have been created with VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV set", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpHitObjectTraceRayNV-07705", - "text": " For OpHitObjectTraceRayNV and OpHitObjectTraceRayMotionNV instructions, all components of the RayOrigin and RayDirection operands must be finite floating-point values" + "text": "For OpHitObjectTraceRayNV and OpHitObjectTraceRayMotionNV instructions, all components of the RayOrigin and RayDirection operands must be finite floating-point values", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpHitObjectTraceRayNV-07706", - "text": " For OpHitObjectTraceRayNV and OpHitObjectTraceRayMotionNV instructions, the RayTmin and RayTmax operands must be non-negative floating-point values" + "text": "For OpHitObjectTraceRayNV and OpHitObjectTraceRayMotionNV instructions, the RayTmin and RayTmax operands must be non-negative floating-point values", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpHitObjectTraceRayNV-07707", - "text": " For OpHitObjectTraceRayNV and OpHitObjectTraceRayMotionNV instructions, the RayTmin operand must be less than or equal to the RayTmax operand" + "text": "For OpHitObjectTraceRayNV and OpHitObjectTraceRayMotionNV instructions, the RayTmin operand must be less than or equal to the RayTmax operand", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpHitObjectTraceRayNV-07708", - "text": " For OpHitObjectTraceRayNV and OpHitObjectTraceRayMotionNV instructions, RayOrigin, RayDirection, RayTmin, and RayTmax operands must not contain NaNs" + "text": "For OpHitObjectTraceRayNV and OpHitObjectTraceRayMotionNV instructions, RayOrigin, RayDirection, RayTmin, and RayTmax operands must not contain NaNs", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpHitObjectTraceRayMotionNV-07709", - "text": " For OpHitObjectTraceRayMotionNV instructions, Acceleration Structure must be an acceleration structure built as a top-level acceleration structure with VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV in flags" + "text": "For OpHitObjectTraceRayMotionNV instructions, Acceleration Structure must be an acceleration structure built as a top-level acceleration structure with VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV in flags", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpHitObjectTraceRayNV-07710", - "text": " For OpHitObjectTraceRayNV and OpHitObjectTraceRayMotionNV instructions the time operand must be between 0.0 and 1.0" + "text": "For OpHitObjectTraceRayNV and OpHitObjectTraceRayMotionNV instructions the time operand must be between 0.0 and 1.0", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpHitObjectTraceRayMotionNV-07711", - "text": " For OpHitObjectTraceRayMotionNV instructions the pipeline must have been created with VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV set" + "text": "For OpHitObjectTraceRayMotionNV instructions the pipeline must have been created with VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV set", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpHitObjectTraceRayNV-07712", - "text": " For OpHitObjectTraceRayNV and OpHitObjectTraceRayMotionNV instructions, the Rayflags operand must not contain both SkipTrianglesKHR and SkipAABBsKHR" + "text": "For OpHitObjectTraceRayNV and OpHitObjectTraceRayMotionNV instructions, the Rayflags operand must not contain both SkipTrianglesKHR and SkipAABBsKHR", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpHitObjectTraceRayNV-07713", - "text": " For OpHitObjectTraceRayNV and OpHitObjectTraceRayMotionNV instructions, the Rayflags operand must not contain more than one of SkipTrianglesKHR, CullBackFacingTrianglesKHR, and CullFrontFacingTrianglesKHR" + "text": "For OpHitObjectTraceRayNV and OpHitObjectTraceRayMotionNV instructions, the Rayflags operand must not contain more than one of SkipTrianglesKHR, CullBackFacingTrianglesKHR, and CullFrontFacingTrianglesKHR", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpHitObjectTraceRayNV-07714", - "text": " For OpHitObjectTraceRayNV and OpHitObjectTraceRayMotionNV instructions, the Rayflags operand must not contain more than one of OpaqueKHR, NoOpaqueKHR, CullOpaqueKHR, and CullNoOpaqueKHR" + "text": "For OpHitObjectTraceRayNV and OpHitObjectTraceRayMotionNV instructions, the Rayflags operand must not contain more than one of OpaqueKHR, NoOpaqueKHR, CullOpaqueKHR, and CullNoOpaqueKHR", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpHitObjectTraceRayNV-07715", - "text": " For OpHitObjectTraceRayNV and OpHitObjectTraceRayMotionNV instructions, if the Rayflags operand contains SkipTrianglesKHR, the pipeline must not have been created with VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR set" + "text": "For OpHitObjectTraceRayNV and OpHitObjectTraceRayMotionNV instructions, if the Rayflags operand contains SkipTrianglesKHR, the pipeline must not have been created with VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR set", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpHitObjectTraceRayNV-07716", - "text": " For OpHitObjectTraceRayNV and OpHitObjectTraceRayMotionNV instructions, if the Rayflags operand contains SkipAABBsKHR, the pipeline must not have been created with VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR set" + "text": "For OpHitObjectTraceRayNV and OpHitObjectTraceRayMotionNV instructions, if the Rayflags operand contains SkipAABBsKHR, the pipeline must not have been created with VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR set", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-x-06429", - "text": " The x size in LocalSize or LocalSizeId must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupSize[0]" + "text": "In compute shaders using the GLCompute Execution Model the x size in LocalSize or LocalSizeId must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupSize[0]", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-y-06430", - "text": " The y size in LocalSize or LocalSizeId must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupSize[1]" + "text": "In compute shaders using the GLCompute Execution Model the y size in LocalSize or LocalSizeId must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupSize[1]", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-z-06431", - "text": " The z size in LocalSize or LocalSizeId must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupSize[2]" + "text": "In compute shaders using the GLCompute Execution Model the z size in LocalSize or LocalSizeId must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupSize[2]", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-x-06432", - "text": " The product of x size, y size, and z size in LocalSize or LocalSizeId must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupInvocations" + "text": "In compute shaders using the GLCompute Execution Model the product of x size, y size, and z size in LocalSize or LocalSizeId must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupInvocations", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-LocalSizeId-06434", - "text": " If {ExecutionMode} LocalSizeId is used, maintenance4 must be enabled" + "text": "If Execution Mode LocalSizeId is used, maintenance4 must be enabled", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-maintenance4-06817", - "text": " If maintenance4 is not enabled, any OpTypeVector output interface variables must not have a higher Component Count than a matching OpTypeVector input interface variable" + "text": "If maintenance4 is not enabled, any OpTypeVector output interface variables must not have a higher Component Count than a matching OpTypeVector input interface variable", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpEntryPoint-08743", - "text": " Any user-defined variables shared between the OpEntryPoint of two shader stages, and declared with Input as its {StorageClass} for the subsequent shader stage, must have all Location slots and Component words declared in the preceding shader stage’s OpEntryPoint with Output as the {StorageClass}" + "text": "Any user-defined variables shared between the OpEntryPoint of two shader stages, and declared with Input as its Storage Class for the subsequent shader stage, must have all Location slots and Component words declared in the preceding shader stage’s OpEntryPoint with Output as the Storage Class", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpEntryPoint-07754", - "text": " Any user-defined variables between the OpEntryPoint of two shader stages must have the same type and width for each Component" + "text": "Any user-defined variables between the OpEntryPoint of two shader stages must have the same type and width for each Component", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpVariable-08746", - "text": " Any OpVariable, Block-decorated OpTypeStruct, or Block-decorated OpTypeStruct members shared between the OpEntryPoint of two shader stages must have matching decorations as defined in interface matching" + "text": "Any OpVariable, Block-decorated OpTypeStruct, or Block-decorated OpTypeStruct members shared between the OpEntryPoint of two shader stages must have matching decorations as defined in interface matching", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-Workgroup-06530", - "text": " The sum of size in bytes for variables and padding in the Workgroup {StorageClass} in the GLCompute {ExecutionModel} must be less than or equal to maxComputeSharedMemorySize" + "text": "The sum of size in bytes for variables and padding in the Workgroup Storage Class in the GLCompute Execution Model must be less than or equal to maxComputeSharedMemorySize", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-shaderZeroInitializeWorkgroupMemory-06372", - "text": " If shaderZeroInitializeWorkgroupMemory is not enabled, any OpVariable with Workgroup as its {StorageClass} must not have an Initializer operand" + "text": "If shaderZeroInitializeWorkgroupMemory is not enabled, any OpVariable with Workgroup as its Storage Class must not have an Initializer operand", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpImage-06376", - "text": " If an OpImage*Gather operation has an image operand of Offset, ConstOffset, or ConstOffsets the offset value must be greater than or equal to minTexelGatherOffset" + "text": "If an OpImage*Gather operation has an image operand of Offset, ConstOffset, or ConstOffsets the offset value must be greater than or equal to minTexelGatherOffset", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpImage-06377", - "text": " If an OpImage*Gather operation has an image operand of Offset, ConstOffset, or ConstOffsets the offset value must be less than or equal to maxTexelGatherOffset" + "text": "If an OpImage*Gather operation has an image operand of Offset, ConstOffset, or ConstOffsets the offset value must be less than or equal to maxTexelGatherOffset", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpImageSample-06435", - "text": " If an OpImageSample* or OpImageFetch* operation has an image operand of ConstOffset then the offset value must be greater than or equal to minTexelOffset" + "text": "If an OpImageSample* or OpImageFetch* operation has an image operand of ConstOffset then the offset value must be greater than or equal to minTexelOffset", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpImageSample-06436", - "text": " If an OpImageSample* or OpImageFetch* operation has an image operand of ConstOffset then the offset value must be less than or equal to maxTexelOffset" + "text": "If an OpImageSample* or OpImageFetch* operation has an image operand of ConstOffset then the offset value must be less than or equal to maxTexelOffset", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-samples-08725", - "text": " If an OpTypeImage has an MS operand 0, its bound image must have been created with VkImageCreateInfo::samples as VK_SAMPLE_COUNT_1_BIT" + "text": "If an OpTypeImage has an MS operand 0, its bound image must have been created with VkImageCreateInfo::samples as VK_SAMPLE_COUNT_1_BIT", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-samples-08726", - "text": " If an OpTypeImage has an MS operand 1, its bound image must not have been created with VkImageCreateInfo::samples as VK_SAMPLE_COUNT_1_BIT" + "text": "If an OpTypeImage has an MS operand 1, its bound image must not have been created with VkImageCreateInfo::samples as VK_SAMPLE_COUNT_1_BIT", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-SampleRateShading-06378", - "text": " If the subpass description contains VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM, then the SPIR-V fragment shader Capability SampleRateShading must not be enabled" + "text": "If the subpass description contains VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM, then the SPIR-V fragment shader Capability SampleRateShading must not be enabled", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-SubgroupUniformControlFlowKHR-06379", - "text": " The {ExecutionMode} SubgroupUniformControlFlowKHR must not be applied to an entry point unless shaderSubgroupUniformControlFlow is enabled and the corresponding shader stage bit is set in subgroup supportedStages and the entry point does not execute any invocation repack instructions" + "text": "The Execution Mode SubgroupUniformControlFlowKHR must not be applied to an entry point unless shaderSubgroupUniformControlFlow is enabled and the corresponding shader stage bit is set in subgroup supportedStages and the entry point does not execute any invocation repack instructions", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-shaderEarlyAndLateFragmentTests-06767", - "text": " If shaderEarlyAndLateFragmentTests is not enabled, the EarlyAndLateFragmentTestsEXT {ExecutionMode} must not be used" + "text": "If shaderEarlyAndLateFragmentTests is not enabled, the EarlyAndLateFragmentTestsEXT Execution Mode must not be used", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-shaderEarlyAndLateFragmentTests-06768", - "text": " If shaderEarlyAndLateFragmentTests feature is not enabled, the StencilRefUnchangedFrontEXT {ExecutionMode} must not be used" + "text": "If shaderEarlyAndLateFragmentTests feature is not enabled, the StencilRefUnchangedFrontEXT Execution Mode must not be used", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-shaderEarlyAndLateFragmentTests-06769", - "text": " If shaderEarlyAndLateFragmentTests is not enabled, the StencilRefUnchangedBackEXT {ExecutionMode} must not be used" + "text": "If shaderEarlyAndLateFragmentTests is not enabled, the StencilRefUnchangedBackEXT Execution Mode must not be used", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-shaderEarlyAndLateFragmentTests-06770", - "text": " If shaderEarlyAndLateFragmentTests is not enabled, the StencilRefGreaterFrontEXT {ExecutionMode} must not be used" + "text": "If shaderEarlyAndLateFragmentTests is not enabled, the StencilRefGreaterFrontEXT Execution Mode must not be used", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-shaderEarlyAndLateFragmentTests-06771", - "text": " If shaderEarlyAndLateFragmentTests is not enabled, the StencilRefGreaterBackEXT {ExecutionMode} must not be used" + "text": "If shaderEarlyAndLateFragmentTests is not enabled, the StencilRefGreaterBackEXT Execution Mode must not be used", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-shaderEarlyAndLateFragmentTests-06772", - "text": " If shaderEarlyAndLateFragmentTests is not enabled, the StencilRefLessFrontEXT {ExecutionMode} must not be used" + "text": "If shaderEarlyAndLateFragmentTests is not enabled, the StencilRefLessFrontEXT Execution Mode must not be used", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-shaderEarlyAndLateFragmentTests-06773", - "text": " If shaderEarlyAndLateFragmentTests is not enabled, the StencilRefLessBackEXT {ExecutionMode} must not be used" + "text": "If shaderEarlyAndLateFragmentTests is not enabled, the StencilRefLessBackEXT Execution Mode must not be used", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpImageWeightedSampleQCOM-06979", - "text": " If an OpImageWeightedSampleQCOM operation is used, then the Texture Sampled Image and Weight Image parameters must both be dynamically uniform for the quad" + "text": "If an OpImageWeightedSampleQCOM operation is used, then the Texture Sampled Image and Weight Image parameters must both be dynamically uniform for the quad", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpImageWeightedSampleQCOM-06980", - "text": " If an OpImageWeightedSampleQCOM operation is used, then the Weight Image parameter must be of {StorageClass} UniformConstant and type OpTypeImage with Depth=0, Dim=2D, Arrayed=1, MS=0, and Sampled=1" + "text": "If an OpImageWeightedSampleQCOM operation is used, then the Weight Image parameter must be of Storage Class UniformConstant and type OpTypeImage with Depth=0, Dim=2D, Arrayed=1, MS=0, and Sampled=1", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpImageWeightedSampleQCOM-06981", - "text": " If an OpImageWeightedSampleQCOM operation is used, then the Weight Image parameter must be decorated with WeightTextureQCOM" + "text": "If an OpImageWeightedSampleQCOM operation is used, then the Weight Image parameter must be decorated with WeightTextureQCOM", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpImageBlockMatchSADQCOM-06982", - "text": " If an OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM operation is used, then the target sampled image, reference sampled image, and Block Size parameters must both be dynamically uniform for the quad" + "text": "If an OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM operation is used, then the target sampled image, reference sampled image, and Block Size parameters must both be dynamically uniform for the quad", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpImageBlockMatchSSDQCOM-06983", - "text": " If an OpImageBlockMatchSSDQCOM or OpImageBlockMatchSADQCOM operation is used, then target sampled image and reference sampled image parameters must be of storage class UniformConstant and type OpTypeImage with Depth=0, Dim=2D, Arrayed=0, MS=0, and Sampled=1" + "text": "If an OpImageBlockMatchSSDQCOM or OpImageBlockMatchSADQCOM operation is used, then target sampled image and reference sampled image parameters must be of storage class UniformConstant and type OpTypeImage with Depth=0, Dim=2D, Arrayed=0, MS=0, and Sampled=1", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpImageBlockMatchSSDQCOM-06984", - "text": " If an OpImageBlockMatchSSDQCOM or OpImageBlockMatchSADQCOM operation is used, then the target sampled image and reference sampled image parameters must be decorated with BlockMatchTextureQCOM" + "text": "If an OpImageBlockMatchSSDQCOM or OpImageBlockMatchSADQCOM operation is used, then the target sampled image and reference sampled image parameters must be decorated with BlockMatchTextureQCOM", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpImageBlockMatchSSDQCOM-06985", - "text": " If an OpImageBlockMatchSSDQCOM or OpImageBlockMatchSADQCOM operation is used, then target sampled image and reference sampled image parameters must have been created using an identical sampler object" + "text": "If an OpImageBlockMatchSSDQCOM or OpImageBlockMatchSADQCOM operation is used, then target sampled image and reference sampled image parameters must have been created using an identical sampler object", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpImageBlockMatchSSDQCOM-06986", - "text": " If an OpImageBlockMatchSSDQCOM or OpImageBlockMatchSADQCOM operation is used, then target sampled image and reference sampled image parameters must have been created with sampler object with unnormalizeCordinates equal to VK_TRUE" + "text": "If an OpImageBlockMatchSSDQCOM or OpImageBlockMatchSADQCOM operation is used, then target sampled image and reference sampled image parameters must have been created with a sampler object with unnormalizedCoordinates equal to VK_TRUE", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpImageBlockMatchSSDQCOM-06987", - "text": " If an OpImageBlockMatchSSDQCOM or OpImageBlockMatchSADQCOM operation is used, then target sampled image and reference sampled image parameters must have been created with sampler object with unnormalizeCordinates equal to VK_TRUE" + "text": "If an OpImageBlockMatchSSDQCOM or OpImageBlockMatchSADQCOM operation is used, then target sampled image and reference sampled image parameters must have been created with a sampler object with unnormalizedCoordinates equal to VK_TRUE", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpImageBlockMatchSSDQCOM-06988", - "text": " If an OpImageBlockMatchSSDQCOM or OpImageBlockMatchSADQCOM operation is used, then Block Size less than or equal to maxBlockMatchRegion" + "text": "If an OpImageBlockMatchSSDQCOM or OpImageBlockMatchSADQCOM operation is used, then Block Size less than or equal to maxBlockMatchRegion", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpImageBoxFilterQCOM-06989", - "text": " If an OpImageBoxFilterQCOM operation is used, then Box Size.y must be equal to or greater than 1.0 and less than or equal to maxBoxFilterBlockSize.height" + "text": "If an OpImageBoxFilterQCOM operation is used, then Box Size.y must be equal to or greater than 1.0 and less than or equal to maxBoxFilterBlockSize.height", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpImageBoxFilterQCOM-06990", - "text": " If an OpImageBoxFilterQCOM operation is used, then Sampled Texture Image and Box Size parameters must be dynamically uniform" + "text": "If an OpImageBoxFilterQCOM operation is used, then Sampled Texture Image and Box Size parameters must be dynamically uniform", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-OpEntryPoint-08727", - "text": " Each OpEntryPoint must not have more than one variable decorated with InputAttachmentIndex per image aspect of the attachment image bound to it, either explicitly or implicitly as described by input attachment interface" + "text": "Each OpEntryPoint must not have more than one variable decorated with InputAttachmentIndex per image aspect of the attachment image bound to it, either explicitly or implicitly as described by input attachment interface", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-shaderTileImageColorReadAccess-08728", - "text": " If shaderTileImageColorReadAccess is not enabled, OpColorAttachmentReadEXT operation must not be used" + "text": "If shaderTileImageColorReadAccess is not enabled, OpColorAttachmentReadEXT operation must not be used", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-shaderTileImageDepthReadAccess-08729", - "text": " If shaderTileImageDepthReadAccess is not enabled, OpDepthAttachmentReadEXT operation must not be used" + "text": "If shaderTileImageDepthReadAccess is not enabled, OpDepthAttachmentReadEXT operation must not be used", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-shaderTileImageStencilReadAccess-08730", - "text": " If shaderTileImageStencilReadAccess is not enabled, OpStencilAttachmentReadEXT operation must not be used" + "text": "If shaderTileImageStencilReadAccess is not enabled, OpStencilAttachmentReadEXT operation must not be used", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-minSampleShading-08731", - "text": " If sample shading is enabled and minSampleShading is 1.0, the sample operand of any OpColorAttachmentReadEXT, OpDepthAttachmentReadEXT, or OpStencilAttachmentReadEXT operation must evaluate to the value of the coverage index for any given fragment invocation" + "text": "If sample shading is enabled and minSampleShading is 1.0, the sample operand of any OpColorAttachmentReadEXT, OpDepthAttachmentReadEXT, or OpStencilAttachmentReadEXT operation must evaluate to the value of the coverage index for any given fragment invocation", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-minSampleShading-08732", - "text": " If sample shading is enabled and any of the OpColorAttachmentReadEXT, OpDepthAttachmentReadEXT, or OpStencilAttachmentReadEXT operations are used, then minSampleShading must be 1.0" + "text": "If sample shading is enabled and any of the OpColorAttachmentReadEXT, OpDepthAttachmentReadEXT, or OpStencilAttachmentReadEXT operations are used, then minSampleShading must be 1.0", + "page": "vkspec" + }, + { + "vuid": "VUID-RuntimeSpirv-MeshEXT-09218", + "text": "In mesh shaders using the MeshEXT or MeshNV Execution Model and the OutputPoints Execution Mode, if maintenance5 is not enabled, and if the number of output points is greater than 0, a PointSize decorated variable must be written to for each output point", + "page": "vkspec" + }, + { + "vuid": "VUID-RuntimeSpirv-maintenance5-09190", + "text": "If maintenance5 is enabled and a PointSize decorated variable is written to, all execution paths must write to a PointSize decorated variable", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-ShaderEnqueueAMDX-09191", - "text": " The ShaderEnqueueAMDX capability must only be used in shaders with the GLCompute execution model" + "text": "The ShaderEnqueueAMDX capability must only be used in shaders with the GLCompute execution model", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-NodePayloadAMDX-09192", - "text": " Variables in the NodePayloadAMDX storage class must only be declared in the GLCompute execution model" + "text": "Variables in the NodePayloadAMDX storage class must only be declared in the GLCompute execution model", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-maxExecutionGraphShaderPayloadSize-09193", - "text": " Variables declared in the NodePayloadAMDX storage class must not be larger than the maxExecutionGraphShaderPayloadSize limit" + "text": "Variables declared in the NodePayloadAMDX storage class must not be larger than the maxExecutionGraphShaderPayloadSize limit", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-maxExecutionGraphShaderPayloadSize-09194", - "text": " Variables declared in the NodeOutputPayloadAMDX storage class must not be larger than the maxExecutionGraphShaderPayloadSize limit" + "text": "Variables declared in the NodeOutputPayloadAMDX storage class must not be larger than the maxExecutionGraphShaderPayloadSize limit", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-maxExecutionGraphShaderPayloadSize-09195", - "text": " For a given entry point, the sum of the size of any variable in the NodePayloadAMDX storage class, and the combined size of all statically initialized variables in the NodeOutputPayloadAMDX storage class must not be greater than maxExecutionGraphShaderPayloadSize" + "text": "For a given entry point, the sum of the size of any variable in the NodePayloadAMDX storage class, and the combined size of all statically initialized variables in the NodeOutputPayloadAMDX storage class must not be greater than maxExecutionGraphShaderPayloadSize", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-maxExecutionGraphShaderPayloadCount-09196", - "text": " Shaders must not statically initialize more than maxExecutionGraphShaderPayloadCount variables in the NodeOutputPayloadAMDX storage class" + "text": "Shaders must not statically initialize more than maxExecutionGraphShaderPayloadCount variables in the NodeOutputPayloadAMDX storage class", + "page": "vkspec" }, { "vuid": "VUID-RuntimeSpirv-maxExecutionGraphShaderOutputNodes-09197", - "text": " Shaders must not include more than maxExecutionGraphShaderOutputNodes instances of OpInitializeNodePayloadsAMDX" + "text": "Shaders must not include more than maxExecutionGraphShaderOutputNodes instances of OpInitializeNodePayloadsAMDX", + "page": "vkspec" + }, + { + "vuid": "VUID-RuntimeSpirv-OpImageBlockMatchWindow-09219", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM operation is used, then the target sampled image, reference sampled image, and Block Size parameters must both be dynamically uniform for the quad", + "page": "vkspec" + }, + { + "vuid": "VUID-RuntimeSpirv-OpImageBlockMatchWindow-09220", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM operation is used, then target sampled image and reference sampled image parameters must be of storage class UniformConstant and type OpTypeImage with Depth=0, Dim=2D, Arrayed=0, MS=0, and Sampled=1", + "page": "vkspec" + }, + { + "vuid": "VUID-RuntimeSpirv-OpImageBlockMatchWindow-09221", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM operation is used, then the target sampled image and reference sampled image parameters must be decorated with BlockMatchTextureQCOM", + "page": "vkspec" + }, + { + "vuid": "VUID-RuntimeSpirv-OpImageBlockMatchWindow-09222", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM operation is used, then target sampled image and reference sampled image parameters must have been created using an identical sampler object", + "page": "vkspec" + }, + { + "vuid": "VUID-RuntimeSpirv-OpImageBlockMatchWindow-09223", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM operation is used, then target sampled image and reference sampled image parameters must have been created with a sampler object with unnormalizedCoordinates equal to VK_TRUE", + "page": "vkspec" + }, + { + "vuid": "VUID-RuntimeSpirv-OpImageBlockMatchWindow-09224", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM operation is used, then target sampled image and reference sampled image parameters must have been created with sampler object with unnormalizedCoordinates equal to VK_TRUE", + "page": "vkspec" + }, + { + "vuid": "VUID-RuntimeSpirv-maxBlockMatchRegion-09225", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM operation is used, then Block Size less than or equal to maxBlockMatchRegion", + "page": "vkspec" + }, + { + "vuid": "VUID-RuntimeSpirv-pNext-09226", + "text": "If a OpImageBlockMatchWindow*QCOM operation is used, then target sampled image must have been created using asampler object that included VkSamplerBlockMatchWindowCreateInfoQCOM in the pNext chain.", + "page": "vkspec" } ] }, @@ -77726,19 +100019,23 @@ "core": [ { "vuid": "VUID-vkCreateCuFunctionNVX-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkCreateCuFunctionNVX-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkCuFunctionCreateInfoNVX structure" + "text": "pCreateInfo must be a valid pointer to a valid VkCuFunctionCreateInfoNVX structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateCuFunctionNVX-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateCuFunctionNVX-pFunction-parameter", - "text": " pFunction must be a valid pointer to a VkCuFunctionNVX handle" + "text": "pFunction must be a valid pointer to a VkCuFunctionNVX handle", + "page": "vkspec" } ] }, @@ -77746,19 +100043,23 @@ "core": [ { "vuid": "VUID-VkCuFunctionCreateInfoNVX-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX" + "text": "sType must be VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX", + "page": "vkspec" }, { "vuid": "VUID-VkCuFunctionCreateInfoNVX-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkCuFunctionCreateInfoNVX-module-parameter", - "text": " module must be a valid VkCuModuleNVX handle" + "text": "module must be a valid VkCuModuleNVX handle", + "page": "vkspec" }, { "vuid": "VUID-VkCuFunctionCreateInfoNVX-pName-parameter", - "text": " pName must be a null-terminated UTF-8 string" + "text": "pName must be a null-terminated UTF-8 string", + "page": "vkspec" } ] }, @@ -77766,19 +100067,23 @@ "core": [ { "vuid": "VUID-vkDestroyCuFunctionNVX-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyCuFunctionNVX-function-parameter", - "text": " function must be a valid VkCuFunctionNVX handle" + "text": "function must be a valid VkCuFunctionNVX handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyCuFunctionNVX-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyCuFunctionNVX-function-parent", - "text": " function must have been created, allocated, or retrieved from device" + "text": "function must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -77786,19 +100091,23 @@ "core": [ { "vuid": "VUID-vkCreateCuModuleNVX-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkCreateCuModuleNVX-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkCuModuleCreateInfoNVX structure" + "text": "pCreateInfo must be a valid pointer to a valid VkCuModuleCreateInfoNVX structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateCuModuleNVX-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkCreateCuModuleNVX-pModule-parameter", - "text": " pModule must be a valid pointer to a VkCuModuleNVX handle" + "text": "pModule must be a valid pointer to a VkCuModuleNVX handle", + "page": "vkspec" } ] }, @@ -77806,19 +100115,23 @@ "core": [ { "vuid": "VUID-VkCuModuleCreateInfoNVX-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX" + "text": "sType must be VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX", + "page": "vkspec" }, { "vuid": "VUID-VkCuModuleCreateInfoNVX-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkCuModuleCreateInfoNVX-pData-parameter", - "text": " pData must be a valid pointer to an array of dataSize bytes" + "text": "pData must be a valid pointer to an array of dataSize bytes", + "page": "vkspec" }, { "vuid": "VUID-VkCuModuleCreateInfoNVX-dataSize-arraylength", - "text": " dataSize must be greater than 0" + "text": "dataSize must be greater than 0", + "page": "vkspec" } ] }, @@ -77826,19 +100139,23 @@ "core": [ { "vuid": "VUID-vkDestroyCuModuleNVX-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyCuModuleNVX-module-parameter", - "text": " module must be a valid VkCuModuleNVX handle" + "text": "module must be a valid VkCuModuleNVX handle", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyCuModuleNVX-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "vkspec" }, { "vuid": "VUID-vkDestroyCuModuleNVX-module-parent", - "text": " module must have been created, allocated, or retrieved from device" + "text": "module must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -77846,23 +100163,28 @@ "core": [ { "vuid": "VUID-vkCmdCuLaunchKernelNVX-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCuLaunchKernelNVX-pLaunchInfo-parameter", - "text": " pLaunchInfo must be a valid pointer to a valid VkCuLaunchInfoNVX structure" + "text": "pLaunchInfo must be a valid pointer to a valid VkCuLaunchInfoNVX structure", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCuLaunchKernelNVX-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "text": "commandBuffer must be in the recording state", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCuLaunchKernelNVX-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" + "text": "The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations", + "page": "vkspec" }, { "vuid": "VUID-vkCmdCuLaunchKernelNVX-videocoding", - "text": " This command must only be called outside of a video coding scope" + "text": "This command must only be called outside of a video coding scope", + "page": "vkspec" } ] }, @@ -77870,23 +100192,28 @@ "core": [ { "vuid": "VUID-VkCuLaunchInfoNVX-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX" + "text": "sType must be VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX", + "page": "vkspec" }, { "vuid": "VUID-VkCuLaunchInfoNVX-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkCuLaunchInfoNVX-function-parameter", - "text": " function must be a valid VkCuFunctionNVX handle" + "text": "function must be a valid VkCuFunctionNVX handle", + "page": "vkspec" }, { "vuid": "VUID-VkCuLaunchInfoNVX-pParams-parameter", - "text": " If paramCount is not 0, pParams must be a valid pointer to an array of paramCount bytes" + "text": "If paramCount is not 0, pParams must be a valid pointer to an array of paramCount bytes", + "page": "vkspec" }, { "vuid": "VUID-VkCuLaunchInfoNVX-pExtras-parameter", - "text": " If extraCount is not 0, pExtras must be a valid pointer to an array of extraCount bytes" + "text": "If extraCount is not 0, pExtras must be a valid pointer to an array of extraCount bytes", + "page": "vkspec" } ] }, @@ -77894,7 +100221,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceAmigoProfilingFeaturesSEC-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC", + "page": "vkspec" } ] }, @@ -77902,7 +100230,8 @@ "core": [ { "vuid": "VUID-VkAmigoProfilingSubmitInfoSEC-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC" + "text": "sType must be VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC", + "page": "vkspec" } ] }, @@ -77910,15 +100239,18 @@ "core": [ { "vuid": "VUID-vkGetDescriptorSetLayoutHostMappingInfoVALVE-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetDescriptorSetLayoutHostMappingInfoVALVE-pBindingReference-parameter", - "text": " pBindingReference must be a valid pointer to a valid VkDescriptorSetBindingReferenceVALVE structure" + "text": "pBindingReference must be a valid pointer to a valid VkDescriptorSetBindingReferenceVALVE structure", + "page": "vkspec" }, { "vuid": "VUID-vkGetDescriptorSetLayoutHostMappingInfoVALVE-pHostMapping-parameter", - "text": " pHostMapping must be a valid pointer to a VkDescriptorSetLayoutHostMappingInfoVALVE structure" + "text": "pHostMapping must be a valid pointer to a VkDescriptorSetLayoutHostMappingInfoVALVE structure", + "page": "vkspec" } ] }, @@ -77926,15 +100258,23 @@ "core": [ { "vuid": "VUID-vkGetDescriptorSetHostMappingVALVE-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": "device must be a valid VkDevice handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetDescriptorSetHostMappingVALVE-descriptorSet-parameter", - "text": " descriptorSet must be a valid VkDescriptorSet handle" + "text": "descriptorSet must be a valid VkDescriptorSet handle", + "page": "vkspec" }, { "vuid": "VUID-vkGetDescriptorSetHostMappingVALVE-ppData-parameter", - "text": " ppData must be a valid pointer to a pointer value" + "text": "ppData must be a valid pointer to a pointer value", + "page": "vkspec" + }, + { + "vuid": "VUID-vkGetDescriptorSetHostMappingVALVE-descriptorSet-parent", + "text": "descriptorSet must have been created, allocated, or retrieved from device", + "page": "vkspec" } ] }, @@ -77942,7 +100282,8 @@ "core": [ { "vuid": "VUID-VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE" + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE", + "page": "vkspec" } ] }, @@ -77950,15 +100291,18 @@ "core": [ { "vuid": "VUID-VkDescriptorSetBindingReferenceVALVE-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE" + "text": "sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorSetBindingReferenceVALVE-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorSetBindingReferenceVALVE-descriptorSetLayout-parameter", - "text": " descriptorSetLayout must be a valid VkDescriptorSetLayout handle" + "text": "descriptorSetLayout must be a valid VkDescriptorSetLayout handle", + "page": "vkspec" } ] }, @@ -77966,11 +100310,13 @@ "core": [ { "vuid": "VUID-VkDescriptorSetLayoutHostMappingInfoVALVE-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE" + "text": "sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE", + "page": "vkspec" }, { "vuid": "VUID-VkDescriptorSetLayoutHostMappingInfoVALVE-pNext-pNext", - "text": " pNext must be NULL" + "text": "pNext must be NULL", + "page": "vkspec" } ] } diff --git a/deps/vulkan-headers/share/vulkan/registry/video.xml b/deps/vulkan-headers/share/vulkan/registry/video.xml index bb534c39..a7e66dbe 100644 --- a/deps/vulkan-headers/share/vulkan/registry/video.xml +++ b/deps/vulkan-headers/share/vulkan/registry/video.xml @@ -39,7 +39,7 @@ The current public version of video.xml is maintained in the default branch // Vulkan 0.9 provisional Vulkan video H.264 encode std specification version number -#define VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_API_VERSION_0_9_10 VK_MAKE_VIDEO_STD_VERSION(0, 9, 10) +#define VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_API_VERSION_0_9_11 VK_MAKE_VIDEO_STD_VERSION(0, 9, 11) @@ -47,7 +47,7 @@ The current public version of video.xml is maintained in the default branch // Vulkan 0.9 provisional Vulkan video H.265 encode std specification version number -#define VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_API_VERSION_0_9_11 VK_MAKE_VIDEO_STD_VERSION(0, 9, 11) +#define VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_API_VERSION_0_9_12 VK_MAKE_VIDEO_STD_VERSION(0, 9, 12) @@ -298,7 +298,7 @@ The current public version of video.xml is maintained in the default branch uint16_t long_term_pic_num - StdVideoH264MemMgmtControlOp operation + StdVideoH264MemMgmtControlOp memory_management_control_operation uint16_t difference_of_pic_nums_minus1 uint16_t long_term_pic_num uint16_t long_term_frame_idx @@ -308,8 +308,8 @@ The current public version of video.xml is maintained in the default branch StdVideoEncodeH264ReferenceListsInfoFlags flags uint8_t num_ref_idx_l0_active_minus1 uint8_t num_ref_idx_l1_active_minus1 - uint8_t RefPicList0[STD_VIDEO_H264_MAX_NUM_LIST_REF]slotIndex as used in VkVideoReferenceSlotInfoKHR structures, 0xff for invalid slotIndex - uint8_t RefPicList1[STD_VIDEO_H264_MAX_NUM_LIST_REF]slotIndex as used in VkVideoReferenceSlotInfoKHR structures, 0xff for invalid slotIndex + uint8_t RefPicList0[STD_VIDEO_H264_MAX_NUM_LIST_REF]slotIndex as used in VkVideoReferenceSlotInfoKHR structures or STD_VIDEO_H264_NO_REFERENCE_PICTURE + uint8_t RefPicList1[STD_VIDEO_H264_MAX_NUM_LIST_REF]slotIndex as used in VkVideoReferenceSlotInfoKHR structures or STD_VIDEO_H264_NO_REFERENCE_PICTURE uint8_t refList0ModOpCount uint8_t refList1ModOpCount uint8_t refPicMarkingOpCount @@ -345,7 +345,8 @@ The current public version of video.xml is maintained in the default branch StdVideoH264SliceType slice_type int8_t slice_alpha_c0_offset_div2 int8_t slice_beta_offset_div2 - uint16_t reserved1Reserved for future use and must be initialized with 0. + int8_t slice_qp_delta + uint8_t reserved1Reserved for future use and must be initialized with 0. StdVideoH264CabacInitIdc cabac_init_idc StdVideoH264DisableDeblockingFilterIdc disable_deblocking_filter_idc const StdVideoEncodeH264WeightTable* pWeightTable @@ -698,9 +699,9 @@ The current public version of video.xml is maintained in the default branch int32_t PicOrderCntVal uint16_t NumBitsForSTRefPicSetInSlicenumber of bits used in st_ref_pic_set() when short_term_ref_pic_set_sps_flag is 0otherwise set to 0. uint16_t reserved - uint8_t RefPicSetStCurrBefore[STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE]slotIndex as used in VkVideoReferenceSlotInfoKHR structures representing pReferenceSlots in VkVideoDecodeInfoKHR, 0xff for invalid slotIndex - uint8_t RefPicSetStCurrAfter[STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE]slotIndex as used in VkVideoReferenceSlotInfoKHR structures representing pReferenceSlots in VkVideoDecodeInfoKHR, 0xff for invalid slotIndex - uint8_t RefPicSetLtCurr[STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE]slotIndex as used in VkVideoReferenceSlotInfoKHR structures representing pReferenceSlots in VkVideoDecodeInfoKHR, 0xff for invalid slotIndex + uint8_t RefPicSetStCurrBefore[STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE]slotIndex as used in VkVideoReferenceSlotInfoKHR structures representing pReferenceSlots in VkVideoDecodeInfoKHR or STD_VIDEO_H265_NO_REFERENCE_PICTURE + uint8_t RefPicSetStCurrAfter[STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE]slotIndex as used in VkVideoReferenceSlotInfoKHR structures representing pReferenceSlots in VkVideoDecodeInfoKHR or STD_VIDEO_H265_NO_REFERENCE_PICTURE + uint8_t RefPicSetLtCurr[STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE]slotIndex as used in VkVideoReferenceSlotInfoKHR structures representing pReferenceSlots in VkVideoDecodeInfoKHR or STD_VIDEO_H265_NO_REFERENCE_PICTURE uint32_t used_for_long_term_reference : 1A picture that is marked as "used for long-term reference", derived binary value from clause 8.3.2 Decoding process for reference picture set @@ -713,10 +714,10 @@ The current public version of video.xml is maintained in the default branch - uint16_t luma_weight_l0_flagbit 0 - num_ref_idx_l0_active_minus1 - uint16_t chroma_weight_l0_flagbit 0 - num_ref_idx_l0_active_minus1 - uint16_t luma_weight_l1_flagbit 0 - num_ref_idx_l1_active_minus1 - uint16_t chroma_weight_l1_flagbit 0 - num_ref_idx_l1_active_minus1 + uint16_t luma_weight_l0_flageach bit n represents the nth entry in reference list l0, n <= num_ref_idx_l0_active_minus1 + uint16_t chroma_weight_l0_flageach bit n represents the nth entry in reference list l0, n <= num_ref_idx_l0_active_minus1 + uint16_t luma_weight_l1_flageach bit n represents the nth entry in reference list l1, n <= num_ref_idx_l1_active_minus1 + uint16_t chroma_weight_l1_flageach bit n represents the nth entry in reference list l1, n <= num_ref_idx_l1_active_minus1 @@ -737,7 +738,7 @@ The current public version of video.xml is maintained in the default branch int8_t delta_chroma_offset_l1[STD_VIDEO_H265_MAX_NUM_LIST_REF][STD_VIDEO_H265_MAX_CHROMA_PLANES][i][j]: valid entry range for i is [0, num_ref_idx_l1_active_minus1]; j = 0 for Cb, j = 1 for Cr - + uint8_t num_long_term_sps uint8_t num_long_term_pics uint8_t lt_idx_sps[STD_VIDEO_H265_MAX_LONG_TERM_REF_PICS_SPS] @@ -775,7 +776,8 @@ The current public version of video.xml is maintained in the default branch int8_t slice_act_y_qp_offset int8_t slice_act_cb_qp_offset int8_t slice_act_cr_qp_offset - uint8_t reserved1[3]Reserved for future use and must be initialized with 0. + int8_t slice_qp_delta + uint16_t reserved1Reserved for future use and must be initialized with 0. const StdVideoEncodeH265WeightTable* pWeightTable @@ -787,8 +789,8 @@ The current public version of video.xml is maintained in the default branch StdVideoEncodeH265ReferenceListsInfoFlags flags uint8_t num_ref_idx_l0_active_minus1 uint8_t num_ref_idx_l1_active_minus1 - uint8_t RefPicList0[STD_VIDEO_H265_MAX_NUM_LIST_REF]slotIndex as used in VkVideoReferenceSlotInfoKHR structures, 0xff for invalid slotIndex - uint8_t RefPicList1[STD_VIDEO_H265_MAX_NUM_LIST_REF]slotIndex as used in VkVideoReferenceSlotInfoKHR structures, 0xff for invalid slotIndex + uint8_t RefPicList0[STD_VIDEO_H265_MAX_NUM_LIST_REF]slotIndex as used in VkVideoReferenceSlotInfoKHR structures or STD_VIDEO_H265_NO_REFERENCE_PICTURE + uint8_t RefPicList1[STD_VIDEO_H265_MAX_NUM_LIST_REF]slotIndex as used in VkVideoReferenceSlotInfoKHR structures or STD_VIDEO_H265_NO_REFERENCE_PICTURE uint8_t list_entry_l0[STD_VIDEO_H265_MAX_NUM_LIST_REF] uint8_t list_entry_l1[STD_VIDEO_H265_MAX_NUM_LIST_REF] @@ -815,8 +817,8 @@ The current public version of video.xml is maintained in the default branch uint8_t TemporalIdTemporal ID, as defined in 7.4.2.2 uint8_t reserved1[7]Reserved for future use and must be initialized with 0. const StdVideoEncodeH265ReferenceListsInfo* pRefLists - const StdVideoH265ShortTermRefPicSet*pShortTermRefPicSetMust be a valid pointer if short_term_ref_pic_set_sps_flag is not set - const StdVideoEncodeH265SliceSegmentLongTermRefPics*pLongTermRefPicsMust be a valid pointer if long_term_ref_pics_present_flag is set + const StdVideoH265ShortTermRefPicSet* pShortTermRefPicSetMust be a valid pointer if short_term_ref_pic_set_sps_flag is not set + const StdVideoEncodeH265LongTermRefPics* pLongTermRefPicsMust be a valid pointer if long_term_ref_pics_present_flag is set uint32_t used_for_long_term_reference : 1A picture that is marked as "used for long-term reference", derived binary value from clause 8.3.2 Decoding process for reference picture set @@ -1055,6 +1057,7 @@ The current public version of video.xml is maintained in the default branch + @@ -1101,8 +1104,8 @@ The current public version of video.xml is maintained in the default branch - - + + @@ -1145,6 +1148,7 @@ The current public version of video.xml is maintained in the default branch + @@ -1193,8 +1197,8 @@ The current public version of video.xml is maintained in the default branch - - + + @@ -1204,7 +1208,7 @@ The current public version of video.xml is maintained in the default branch - + diff --git a/deps/vulkan-headers/share/vulkan/registry/vk.xml b/deps/vulkan-headers/share/vulkan/registry/vk.xml index 28669af3..b3a939bc 100644 --- a/deps/vulkan-headers/share/vulkan/registry/vk.xml +++ b/deps/vulkan-headers/share/vulkan/registry/vk.xml @@ -175,11 +175,11 @@ 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 261 +#define VK_HEADER_VERSION 268 // Complete version of this file #define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 3, VK_HEADER_VERSION) // Version of this file -#define VK_HEADER_VERSION 12 +#define VK_HEADER_VERSION 13 // Complete version of this file #define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(VKSC_API_VARIANT, 1, 0, VK_HEADER_VERSION) @@ -190,7 +190,7 @@ branch of the member gitlab server. #ifndef VK_USE_64_BIT_PTR_DEFINES - #if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__) + #if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__) || (defined(__riscv) && __riscv_xlen == 64) #define VK_USE_64_BIT_PTR_DEFINES 1 #else #define VK_USE_64_BIT_PTR_DEFINES 0 @@ -478,6 +478,7 @@ typedef void* MTLSharedEvent_id; typedef VkFlags VkOpticalFlowUsageFlagsNV; typedef VkFlags VkOpticalFlowSessionCreateFlagsNV; typedef VkFlags VkOpticalFlowExecuteFlagsNV; + typedef VkFlags VkFrameBoundaryFlagsEXT; typedef VkFlags VkPresentScalingFlagsEXT; typedef VkFlags VkPresentGravityFlagsEXT; typedef VkFlags VkShaderCreateFlagsEXT; @@ -775,6 +776,7 @@ typedef void* MTLSharedEvent_id; + @@ -787,6 +789,9 @@ typedef void* MTLSharedEvent_id; + + + WSI extensions @@ -860,6 +865,8 @@ typedef void* MTLSharedEvent_id; + + Enumerated types in the header, but not used by the API @@ -1197,7 +1204,7 @@ typedef void* MTLSharedEvent_id; const void* pNext VkBufferCreateFlags flagsBuffer creation flags VkDeviceSize sizeSpecified in bytes - VkBufferUsageFlags usageBuffer usage flags + VkBufferUsageFlags usageBuffer usage flags VkSharingMode sharingMode uint32_t queueFamilyIndexCount const uint32_t* pQueueFamilyIndices @@ -4196,7 +4203,7 @@ typedef void* MTLSharedEvent_id; const void* pNext VkBool32 conditionalRenderingEnableWhether this secondary command buffer may be executed during an active conditional rendering - + VkStructureType sType void* pNext uint64_t externalFormat @@ -6972,10 +6979,10 @@ typedef void* MTLSharedEvent_id; VkStructureType sType - const void* pNext - uint32_t stdSPSCount + const void* pNext + uint32_t stdSPSCount const StdVideoH264SequenceParameterSet* pStdSPSs - uint32_t stdPPSCount + uint32_t stdPPSCount const StdVideoH264PictureParameterSet* pStdPPSsList of Picture Parameters associated with the spsStd, above @@ -7026,7 +7033,7 @@ typedef void* MTLSharedEvent_id; VkStructureType sType const void* pNext - VkVideoEncodeH264RateControlFlagsEXT flags + VkVideoEncodeH264RateControlFlagsEXT flags uint32_t gopFrameCount uint32_t idrPeriod uint32_t consecutiveBFrameCount @@ -7110,11 +7117,11 @@ typedef void* MTLSharedEvent_id; VkStructureType sType const void* pNext - uint32_t stdVPSCount + uint32_t stdVPSCount const StdVideoH265VideoParameterSet* pStdVPSs - uint32_t stdSPSCount + uint32_t stdSPSCount const StdVideoH265SequenceParameterSet* pStdSPSs - uint32_t stdPPSCount + uint32_t stdPPSCount const StdVideoH265PictureParameterSet* pStdPPSsList of Picture Parameters associated with the spsStd, above @@ -7158,7 +7165,7 @@ typedef void* MTLSharedEvent_id; VkStructureType sType const void* pNext - VkVideoEncodeH265RateControlFlagsEXT flags + VkVideoEncodeH265RateControlFlagsEXT flags uint32_t gopFrameCount uint32_t idrPeriod uint32_t consecutiveBFrameCount @@ -7766,6 +7773,18 @@ typedef void* MTLSharedEvent_id; size_t descriptorOffset uint32_t descriptorSize + + VkStructureType sType + void* pNext + VkBool32 nestedCommandBuffer + VkBool32 nestedCommandBufferRendering + VkBool32 nestedCommandBufferSimultaneousUse + + + VkStructureType sType + void* pNext + uint32_t maxCommandBufferNestingLevel + VkStructureType sType void* pNext @@ -8087,7 +8106,7 @@ typedef void* MTLSharedEvent_id; VkPipelineRobustnessImageBehaviorEXT images - VkStructureType sType + VkStructureType sType void* pNext VkPipelineRobustnessBufferBehaviorEXT defaultRobustnessStorageBuffers VkPipelineRobustnessBufferBehaviorEXT defaultRobustnessUniformBuffers @@ -8301,6 +8320,24 @@ typedef void* MTLSharedEvent_id; void* pNext VkBool32 shaderCoreBuiltins + + VkStructureType sType + const void* pNext + VkFrameBoundaryFlagsEXT flags + uint64_t frameID + uint32_t imageCount + const VkImage* pImages + uint32_t bufferCount + const VkBuffer* pBuffers + uint64_t tagName + size_t tagSize + const void* pTag + + + VkStructureType sType + void* pNext + VkBool32 frameBoundary + VkStructureType sType void* pNext @@ -8381,6 +8418,18 @@ typedef void* MTLSharedEvent_id; void* pNext VkRayTracingInvocationReorderModeNV rayTracingInvocationReorderReorderingHint + + VkStructureType sType + void* pNext + VkBool32 extendedSparseAddressSpace + + + VkStructureType sType + void* pNext + VkDeviceSize extendedSparseAddressSpaceSizeTotal address space available for extended sparse allocations (bytes) + VkImageUsageFlags extendedSparseImageUsageFlagsBitfield of which image usages are supported for extended sparse allocations + VkBufferUsageFlags extendedSparseBufferUsageFlagsBitfield of which buffer usages are supported for extended sparse allocations + VkStructureType sType void* pNext @@ -8475,18 +8524,18 @@ typedef void* MTLSharedEvent_id; const VkSpecializationInfo* pSpecializationInfo - VkStructureType sType - void* pNext - VkBool32 shaderTileImageColorReadAccess - VkBool32 shaderTileImageDepthReadAccess - VkBool32 shaderTileImageStencilReadAccess + VkStructureType sType + void* pNext + VkBool32 shaderTileImageColorReadAccess + VkBool32 shaderTileImageDepthReadAccess + VkBool32 shaderTileImageStencilReadAccess - VkStructureType sType - void* pNext - VkBool32 shaderTileImageCoherentReadAccelerated - VkBool32 shaderTileImageReadSampleFromPixelRateInvocation - VkBool32 shaderTileImageReadFromHelperInvocation + VkStructureType sType + void* pNext + VkBool32 shaderTileImageCoherentReadAccelerated + VkBool32 shaderTileImageReadSampleFromPixelRateInvocation + VkBool32 shaderTileImageReadFromHelperInvocation VkStructureType sType @@ -8593,6 +8642,143 @@ typedef void* MTLSharedEvent_id; VkDeviceOrHostAddressConstAMDX infos uint64_t stride + + VkStructureType sType + void* pNext + VkBool32 cubicRangeClamp + + + VkStructureType sType + void* pNext + VkBool32 ycbcrDegamma + + + VkStructureType sType + void* pNext + VkBool32 enableYDegamma + VkBool32 enableCbCrDegamma + + + VkStructureType sType + void* pNext + VkBool32 selectableCubicWeights + + + VkStructureType sType + const void* pNext + VkCubicFilterWeightsQCOM cubicWeights + + + VkStructureType sType + const void* pNext + VkCubicFilterWeightsQCOM cubicWeights + + + VkStructureType sType + void* pNext + VkBool32 textureBlockMatch2 + + + VkStructureType sType + void* pNext + VkExtent2D maxBlockMatchWindow + + + VkStructureType sType + const void* pNext + VkExtent2D windowExtent + VkBlockMatchWindowCompareModeQCOM windowCompareMode + + + VkStructureType sType + void* pNext + VkBool32 descriptorPoolOverallocation + + + VkStructureType sType + void* pNext + VkLayeredDriverUnderlyingApiMSFT underlyingAPI + + + VkStructureType sType + void* pNext + VkBool32 externalFormatResolve + + + VkStructureType sType + void* pNext + VkBool32 nullColorAttachmentWithExternalFormatResolve + VkChromaLocation externalFormatResolveChromaOffsetX + VkChromaLocation externalFormatResolveChromaOffsetY + + + VkStructureType sType + void* pNext + VkFormat colorAttachmentFormat + + + VkStructureType sType + const void* pNext + VkBool32 lowLatencyMode + VkBool32 lowLatencyBoost + uint32_t minimumIntervalUs + + + VkStructureType sType + const void* pNext + VkSemaphore signalSemaphore + uint64_t value + + + VkStructureType sType + const void* pNext + uint64_t presentID + VkLatencyMarkerNV marker + + + VkStructureType sType + const void* pNext + VkLatencyTimingsFrameReportNV* pTimings + + + VkStructureType sType + const void* pNext + uint64_t presentID + uint64_t inputSampleTimeUs + uint64_t simStartTimeUs + uint64_t simEndTimeUs + uint64_t renderSubmitStartTimeUs + uint64_t renderSubmitEndTimeUs + uint64_t presentStartTimeUs + uint64_t presentEndTimeUs + uint64_t driverStartTimeUs + uint64_t driverEndTimeUs + uint64_t osRenderQueueStartTimeUs + uint64_t osRenderQueueEndTimeUs + uint64_t gpuRenderStartTimeUs + uint64_t gpuRenderEndTimeUs + + + VkStructureType sType + const void* pNext + VkOutOfBandQueueTypeNV queueType + + + VkStructureType sType + const void* pNext + uint64_t presentID + + + VkStructureType sType + const void* pNext + VkBool32 latencyModeEnable + + + VkStructureType sType + const void* pNext + uint32_t presentModeCount + VkPresentModeKHR* pPresentModes + @@ -9806,6 +9992,7 @@ typedef void* MTLSharedEvent_id; + @@ -10236,6 +10423,9 @@ typedef void* MTLSharedEvent_id; + + + @@ -10315,6 +10505,7 @@ typedef void* MTLSharedEvent_id; + @@ -10357,6 +10548,8 @@ typedef void* MTLSharedEvent_id; + + @@ -10473,6 +10666,8 @@ typedef void* MTLSharedEvent_id; + + @@ -10667,6 +10862,38 @@ typedef void* MTLSharedEvent_id; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -11754,7 +11981,7 @@ typedef void* MTLSharedEvent_id; void vkCmdEndRenderPass VkCommandBuffer commandBuffer - + void vkCmdExecuteCommands VkCommandBuffer commandBuffer uint32_t commandBufferCount @@ -14497,11 +14724,11 @@ typedef void* MTLSharedEvent_id; VkShaderModuleIdentifierEXT* pIdentifier - void vkGetImageSubresourceLayout2KHR - VkDevice device - VkImage image - const VkImageSubresource2KHR* pSubresource - VkSubresourceLayout2KHR* pLayout + void vkGetImageSubresourceLayout2KHR + VkDevice device + VkImage image + const VkImageSubresource2KHR* pSubresource + VkSubresourceLayout2KHR* pLayout @@ -14680,6 +14907,36 @@ typedef void* MTLSharedEvent_id; VkDeviceAddress scratch VkDeviceAddress countInfo + + VkResult vkSetLatencySleepModeNV + VkDevice device + VkSwapchainKHR swapchain + const VkLatencySleepModeInfoNV* pSleepModeInfo + + + VkResult vkLatencySleepNV + VkDevice device + VkSwapchainKHR swapchain + const VkLatencySleepInfoNV* pSleepInfo + + + void vkSetLatencyMarkerNV + VkDevice device + VkSwapchainKHR swapchain + const VkSetLatencyMarkerInfoNV* pLatencyMarkerInfo + + + void vkGetLatencyTimingsNV + VkDevice device + VkSwapchainKHR swapchain + uint32_t* pTimingCount + VkGetLatencyMarkerInfoNV* pLatencyMarkerInfo + + + void vkQueueNotifyOutOfBandNV + VkQueue queue + const VkOutOfBandQueueTypeInfoNV* pQueueTypeInfo + @@ -16695,7 +16952,7 @@ typedef void* MTLSharedEvent_id; - + @@ -16739,7 +16996,7 @@ typedef void* MTLSharedEvent_id; - + @@ -16922,7 +17179,7 @@ typedef void* MTLSharedEvent_id; - + @@ -18821,16 +19078,10 @@ typedef void* MTLSharedEvent_id; - + - - - - - - @@ -19043,7 +19294,6 @@ typedef void* MTLSharedEvent_id; - @@ -19920,7 +20170,7 @@ typedef void* MTLSharedEvent_id; - + @@ -20087,13 +20337,13 @@ typedef void* MTLSharedEvent_id; - + - + @@ -20323,7 +20573,7 @@ typedef void* MTLSharedEvent_id; - + @@ -20355,6 +20605,7 @@ typedef void* MTLSharedEvent_id; + @@ -20417,13 +20668,13 @@ typedef void* MTLSharedEvent_id; - + - + @@ -20470,7 +20721,12 @@ typedef void* MTLSharedEvent_id; - + + + + + + @@ -21378,10 +21634,16 @@ typedef void* MTLSharedEvent_id; - + - - + + + + + + + + @@ -21799,13 +22061,13 @@ typedef void* MTLSharedEvent_id; - + - + @@ -22095,13 +22357,19 @@ typedef void* MTLSharedEvent_id; - + - - + + + + + + + + - + @@ -22256,7 +22524,7 @@ typedef void* MTLSharedEvent_id; - + @@ -22379,11 +22647,19 @@ typedef void* MTLSharedEvent_id; - + - - - + + + + + + + + + + + @@ -22703,8 +22979,9 @@ typedef void* MTLSharedEvent_id; - - + + + @@ -22808,10 +23085,14 @@ typedef void* MTLSharedEvent_id; - + - - + + + + + + @@ -22846,7 +23127,7 @@ typedef void* MTLSharedEvent_id; - + @@ -22902,13 +23183,38 @@ typedef void* MTLSharedEvent_id; - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -22923,7 +23229,7 @@ typedef void* MTLSharedEvent_id; - + @@ -22934,7 +23240,7 @@ typedef void* MTLSharedEvent_id; - + @@ -23001,31 +23307,52 @@ typedef void* MTLSharedEvent_id; - + - - + + + + + + + + + - + - - + + + + + + + + + - + - - + + + + + + - + - - + + + + + - + @@ -23089,10 +23416,13 @@ typedef void* MTLSharedEvent_id; - + - - + + + + + @@ -23173,7 +23503,7 @@ typedef void* MTLSharedEvent_id; - + @@ -23185,6 +23515,40 @@ typedef void* MTLSharedEvent_id; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -24780,6 +25144,9 @@ typedef void* MTLSharedEvent_id; + + + @@ -25260,6 +25627,9 @@ typedef void* MTLSharedEvent_id; + + + @@ -25343,7 +25713,7 @@ typedef void* MTLSharedEvent_id; - + @@ -25439,7 +25809,7 @@ typedef void* MTLSharedEvent_id; - +